7.6 - Independent Chain Coin (IDC)


7.6.1 Descrizione


Perché è stato introdotto e perché in T.R.I.N.C.I. viene incentivato l’uso di Independent Chain con il Independent Chain Coin?

In tutte le blockchain note, normalmente, per registrare una transazione si deve pagare qualcosa. In Bitcoin è una fee sui bitcoin stessi, in Ethereum esiste una moneta dedicata (il Gas).

Queste monete sono atte a finanziare i miners che tengono notte e giorno accesi i propri computer, cioè i propri nodi, per tenere in vita tutto il sistema e permettere agli utenti di poter registrare transazioni. Questo è un ruolo importante ed è quindi importante che queste monete vengano direzionate verso chi effettua un lavoro così importante. Alcune blockchain note stanno pensando di azzerare tali fee, ma se questo è un vantaggio a breve termine, sarà un grosso svantaggio a lungo termine perché non permetterà ai minatori di svolgere il loro ruolo molto importante.




7.6.2 Chi è il beneficiario delle transazioni.


Nel caso delle blockchain note si tende a fondere due aspetti: l’aspetto della validazione, quindi l’aspetto tecnologico che consente la scelta del nodo di validazione, e l’aspetto del beneficiario delle fees. Quindi: colui che diventa un nodo di validazione per quello specifico blocco prende anche il guadagno delle fees di quello specifico blocco.

In T.R.I.N.C.I. è stata fatta una scelta diversa, motivata da tanti aspetti. Sono state separate in due layers quelle che sono la validazione tecnologica e la distribuzione delle monete, creando appunto l’algoritmo di distribuzione POP : Proof of Play.

Questo consente di:

  • allineare i nodi usando uno dei migliori algoritmi di consenso noti, RAFT, rivisitato tecnologicamente per adattarlo al meglio al contesto creato: algoritmo di consenso molto efficiente, veloce, stabile, Anti-Fork.
  • Distribuire i profitti tramite l’algoritmo di distribuzione dei profitti POP, basato sullo stake.



7.6.3 Proof of Stake, il problema.


Oggi, nel mondo blockchain, è molto seguita la via del Proof of Stake da svariati soggetti, ma le tecnologie blockchain di nuova generazione per questioni di prestazioni ed efficienza si portano dietro un problema abbastanza noto: l’utilizzo dei numeri a virgola mobile.

I calcoli che vengono fatti con l’uso della virgola possono essere diversi da computer a computer.




7.6.4 Esempio.


Se svolgo un'operazione di frazione su un numero primo come 1/17, otterrò un certo numero con la virgola. la stessa frazione eseguita da un computer Intel, Mac o da un cellulare può dare come rappresentazione visiva finale un risultato differente, risultando modificati gli ultimi numeri dopo la virgola secondo arrotondamenti effimeri.

Sono arrotondamenti effimeri, si, ma quanto basta per effettuare un disallineamento di hash. Quindi, se io vado a creare un numero a virgola mobile deterministico ho delle complessità di carattere tecnologico che derivano dall’uso intimo che fa la blockchain del processore. Per motivi prestazionali, oggi la blockchain è un prodotto compilato e parla direttamente con il processore; addirittura a seconda del processore che opera esistono delle operazioni di compilazione diverse per motivi di prestazioni. Questo però fa sì che se si calcola 1/17 su due nodi che hanno due hardware diversi ho un’alta probabilità che il risultato sia leggermente diverso, quanto basta per creare degli hash completamente diversi.




7.6.5 Algoritmo di distribuzione: la soluzione POP & DRAND


In alcune tecnologie vengono fatti alcuni arrotondamenti che comportano comunque delle complessità; in T.R.I.N.C.I. abbiamo deciso di conservare quello che è l’anima intima di una blockchain utilizzando solo numeri interi, non a virgola mobile.

Questa scelta ci permette comunque di fare simulazioni a virgola mobile, ma la parte pura rimane a numeri interi. Questo rende complessa la suddivisione delle commissioni in maniera efficace.

Se lo smart contract deve dividere 23,00 € di fees per 17 persone, deve necessariamente entrare in merito ai numeri a virgola mobile necessari per gli arrotondamenti, poiché 23 diviso 17 non restituisce un numero intero. Questo porta a delle complessità nella distribuzione dei profitti.

Questa situazione viene risolta con l’algoritmo di distribuzione POP che fondamentalmente utilizza dei principi diversi, vediamoli:

  1. viene estratto a sorte un beneficiario sulla base degli stakers, quindi sulla base delle persone che hanno deciso di minare quel tipo di moneta facendo un investimento meccanico cioè acquistando moneta e mettendola in stake per diventare miner;
  2. chiaramente in un algoritmo di stake ci saranno diversi stakers con diverse monete. Ci sarà qualcuno che avrà messo in stake 100, qualcuno 1000 e così via;
  3. tirare a caso tra questi soggetti in realtà non sarebbe democratico poiché la probabilità di uno dei soggetti di diventare minatore (riscuotendo il compenso) dovrebbe esser influenzata dalla quantità di monete che ha/hanno messe in stake;
  4. su questo la stocastica ci offre varie soluzioni: quella adottata in T.R.I.N.C.I. è una soluzione di “Random Deterministico Pesato”:
    • è molto complicato in un sistema deterministico creare un numero randomico;
    • in T.R.I.N.C.I. abbiamo risolto questo problema creando un algoritmo di D Random che significa “Random Deterministico”;
    • può sembrare un ossimoro (D Random), ma nella praticità siamo in grado di far lanciare una moneta, un dado, quindi creare un numero randomico in un nodo in un determinato momento e tutti i nodi in quel determinato momento ottengono lo stesso numero randomico anche se sono disallineati temporaneamente o dislocati in posti diversi del globo;
    • con questo algoritmo, che avrà in questo documento una spiegazione dedicata, in T.R.I.N.C.I. siamo in grado di generare un numero randomico imprevedibile, ma deterministico, su tutti i nodi che in un determinato momento vanno a richiedere un numero randomico;
    • questo ci aiuta ad estrarre a caso un destinatario delle fees, senza andare a dividere le fees con tutti gli stakers:
    • per ogni transazione, quindi, si estrae a caso con il DRAND uno staker e lui si prende tutte le fees;
    • il problema è stato risolto, ma la soluzione potrebbe sembrare non democratica: in realtà è stato studiato che il fatto di estrarre “a caso” gli utenti alla fine porta ad una distribuzione effettivamente stocastica. Se io lanciassi una moneta per 100.000 volte la probabilità che mi esca testa o croce è del 50%. Questa cosa non sarà certamente vera nei primi 2 o 3 lanci, ma mano a mano che il numero dei lanci diventa enorme la curva converge verso la distribuzione 50 e 50;
    • ma in T.R.I.N.C.I. non cerchiamo un algoritmo che distribuisca le fees delle transazioni 50 e 50 tra 2 miners, bensì di un algoritmo che nella distribuzione tenga conto anche del peso di chi ha messo in stake più monete di un altro;
    • ecco che l’algoritmo POP propone un approccio stocastico deterministico creando una sorta di “dado truccato” nel senso buono del termine: la probabilità che esca uno staker è proporzionale rispetto a quante monete ha in stake;
    • esempio: se un soggetto avesse il 50% dello stake e altri 2 soggetti 25% e 25%, la probabilità che esca il primo è del 50%, mentre la probabilità che esca il secondo o il terzo è del 25%. Sui primi lanci la distribuzione così fatta potrebbe risultare letta come non così discreta, ma a lungo termine lanci e distribuzione diverranno distribuiti.

Il processo fin qui spiegato rende molto efficiente la distribuzione dei profitti; non c’è un algoritmo scalare interno, come per esempio il Round Robin. Il problema di sistemi meccanici come il Round Robin è che possono funzionare bene solo in un sistema centralizzato: questo vorrebbe dire che in un sistema distribuito dovrebbe esistere un soggetto centralizzato che tiene in ordine il round robin, quindi si ricadrebbe di nuovo nel problema di essere di fatto in un sistema distribuito, ma con un'autorità centrale.

Ad oggi, quindi, il POP rappresenta secondo T.R.I.N.C.I. quello che è la punta di diamante di tutte quelle che sono le tecnologie e la scienza intorno alla materia della stocastica, messe a frutto in un sistema distribuito, tenendo conto delle enormi complessità che un sistema distribuito si porta necessariamente dietro per motivi tecnologici.




7.6.6 Diventare un miner


Per diventare un miner è necessario acquistare i “gettoni” del miner, cioè gli Independent Chain Coin. Questo dà diritto a ricevere una percentuale di profitto tramite l’algoritmo appena spiegato su tutto il “Gas Fee” consumato all’interno della blockchain di T.R.I.N.C.I.




7.6.7 Come funziona: il BitBel.


Oggi il miner è proprietario di una fetta dei guadagni. Dove sono i guadagni? Gli utenti interessati a far lavorare le transazioni in blockchain devono acquistare questo BitBel per poter permettere di validare una o più transazioni.

Tramite l’algoritmo POP, questi BitBel vengono distribuiti a pioggia da parte di tutti i possessori degli Independent Chain Coin secondo la distribuzione stocastica di cui abbiamo parlato. Il miner può prendere questi BitBel e rivenderli sul mercato per guadagnare dai BitBel ottenuti. Il sistema funziona indipendente dal fatto che un miner abbia un hardware suo dedicato per fare mining.




7.6.8 Il problema dei costi delle fees.


Il modello di prezzo del BitBel è diverso da quello del classico gas fees delle altre tecnologie blockchain. Nella maggior parte delle tecnologie blockchain come Ethereum o Bitcoin, il prezzo di queste monete cresce all’aumentare dell’uso di questa tecnologia.

Questo è certamente un buon modello, funziona, ma che tende a diventare proibitivo per tutti coloro che usano la blockchain per fare business. Se oggi devo fare un’unica transazione, pagarla 1€ o 5€ non è molto oneroso, ma ripetiamo, una singola transazione. Se invece devo sviluppare un modello di business che può generare 100.000 transazioni, pagare 1€ o 5€ per singola transazione cambia molto il costo totale.

Quindi, in un contesto in cui il prezzo non è prevedibile, moltissime aziende si trovano a dover affrontare da subito un ostacolo molto importante in relazione all’uso della tecnologia blockchain nel proprio ambito di business.




7.6.9 La soluzione in T.R.I.N.C.I.


In T.R.I.N.C.I. abbiamo creato, per questo, un modello opposto: se l’azienda vuole fare semplicemente delle prove, dei test e quindi ha bisogno di poche transazioni, quelle poche transazioni costano tanto. In T.R.I.N.C.I. “tanto” corrisponde a 25 centesimi di Euro a transazione.

Ma nel momento in cui l’azienda avesse necessità di fare molte transazioni, può acquistare preventivamente grandi quantità di BitBel ed il modello di vendita di essi offre un prezzo sempre minore in relazione a quanti più BitBel vengono acquistati.

Questo modello sta in piedi poiché l’algoritmo di consenso di T.R.I.N.C.I. non è energivoro come in BitCoin o in Ethereum. Il costo di un nodo è pressoché indipendente dal fatto che sia acceso o spento, visto che il nodo consuma 15 watt, un cellulare in carica consuma molto di più.

Per un miner è interessante sapere se qualcuno ha investito 1 milione di Euro in gas all’anno per i prossimi 3 anni ed il miner avrà tutto l’interesse a tener acceso e funzionante il proprio nodo, per incassare quei 3 milioni di Euro. In questo senso il miner si accontenterà di aver venduto BitBel ad un prezzo più basso poiché in questo modo si è garantito i guadagni futuri derivanti dall’azienda che ha acquistato i BitBel che immetterà per far lavorare le transazioni ad essa necessarie.

Diversamente, se arriva un utente che acquista solo 100 monete, il miner non avrà la stessa garanzia di continuità rispetto all’utente che ne ha acquistate 1 milione all’anno; quindi, il miner venderà quei 100 BitBel ad un prezzo più alto rispetto al prezzo per i 3 milioni di Bitbel dell’altro utente.

Per chiarezza, il prezzo dei BitBel oscilla tra 25 centesimi di € a transazione ai 5 millesimi di € a transazione, rendendo di fatto possibile la notarizzazione ad aziende che hanno bisogno di notarizzare milioni di transazioni.




7.6.10 L’hardware di mining.


Per essere minatore nelle HDSB di classe Beta, avendo un riferimento costante alla classe Alfa, di per sé non è necessario comprare un hardware di mining, poiché è opzionale l’anchoring ad Alfa Independent Chain.

Qualora, invece, si volesse fare anchoring su Independent Chain diventa necessario avere un hardware certificato, questo perché quest’ultimo ha delle caratteristiche importanti; una su tutte è l’avere il modulo TPM a bordo.

Questa è una caratteristica non necessariamente presente ad oggi su tutti gli hardware in commercio: se per esempio un utente accende un nodo su docker, essendo un nodo virtuale non avrà un modulo TPM a bordo nonostante esistano driver (o trucchi vari) per tentare di farlo funzionare.

Affidaty stessa vende questi tipi di hardware: sono dei piccoli hardware che consumano 15 watt di potenza, già pronti all’uso. Non esiste una obbligatorietà al loro uso, ma esistono una serie di caratteristiche necessarie di tipologia e specifica di hardware. Se queste specifiche non vengono rispettate, nel momento in cui le perde, il nodo viene interrotto dal sistema e viene blacklistato come nodo di validazione all’interno di Independent Chain