Elrond π Model & Bitcoin Halvings

MGStaking
MGStaking
Published in
8 min readSep 12, 2021

--

Tipuri de tranzacții, hashing algorithms sau consensus models, toate acestea reprezintă criterii pe care fiecare dintre noi le luăm în considerare mai mult sau mai puțin în momentul în care alegem în ce proiecte investim. La fel de important pe termen lung, dar mai puțin discutat, este modelul economic al monedei native care stă la baza unui blockchain. Rata de emisie a monedelor nou-intrate în circulație, în principal pentru block rewards, poate reprezenta un vis foarte frumos pentru validatori/ mineri pe termen scurt, dar în același timp un coșmar pentru holderi. Diluția masei monetare ar trebui să fie îndeajuns de mică pentru a nu penaliza holderii și totodată suficient de mare pentru a recompensa utilizatorii care participă la securizarea rețelei.

Unul dintre cele mai așteptate evenimente în spațiul crypto este halving-ul pe care Bitcoin îl are la fiecare 210 000 de blocuri (aproximativ 4 ani) și care are ca rezultat înjumătățirea reward-urilor per block.

Din 2009 și până în prezent, la fiecare aproximativ 10 minute, mineri din toată lumea sunt într-o continuă cursă în încercarea de a include propriul block în blockchain-ul Bitcoin. Practic fiecare miner are sarcina de a aduna tranzacții din memory pool pe care trebuie să le includă într-un candidate block și de îndată ce un miner găsește un nonce (număr arbitrar obținut prin hash-uire de tip SHA256) mai mic decât ceea ce numim difficulty target, atunci minerul în cauză poate să trimită block-ul către toți ceilalți mineri. Aceștia se opresc din căutare, verifică block-ul și dacă este valid îl includ în propria versiune a blockchain-ului.

În schimbul muncii depuse minerul poate crea o tranzacție unică numită coinbase prin care colectează fee-urile fiecărei tranzacții incluse în block și face mint la subsidy, iar în funcție de numărul halving-urilor curente o cantitate fixă de Bitcoin intră în circulație reprezentând block reward-ul minerului.

Cu siguranță ai auzit de numărul de 21 de milioane ca referință pentru supply-ul finit al Bitcoin, dar pentru a înțelege mai bine impactul halving-ului și cum se ajunge la acest număr, haide să aruncăm o privire peste liniile de cod care stabilesc block reward-ul și halving-urile în protocolul Bitcoin.

Fiindcă în codul protocolului nu este definită nicăieri unitatea de masură în Bitcoin toate calculele sunt realizate în COIN (satoshi) = 100 000 000 unități, iar din CAmount nSubsidy = 50 * 100 000 000 putem să observăm că reward-ul inițial per block a fost de 5 000 000 000 sats = 50 BTC.

La data scrierii articolului ultimul block inclus în blockchain-ul Bitcoin are block height-ul cu numărul 697822 și pentru a afla numărul de halving-uri realizate până în prezent trebuie să calculăm raportul dintre block height-ul curent și cele 210 000 de blocuri despre care am discutat anterior.

nSubsidy >>= 697822/ 210000 care este egal cu 3.32, dar fiindcă este definit ca un număr întreg trebuie să scăpăm de zecimalele de după virgulă și să rotunjim la partea inferioară ajungând la numărul de 3 halving-uri la data de 1 Septembrie 2021.

Acum că am văzut valoarea inițială a block reward-ului și numărul de halving-uri curente nu ne mai rămâne decât să vedem cum se ajunge la înjumătățirea reward-ului per block.

Valoarea inițială a block reward-ului, 5 000 000 000 sats, o convertim în binary si obținem 33 de biți:

100101010000001011111001000000000

Numărul de 33 de biți este foarte important deoarece cu fiecare halving este tăiat câte un bit de la coadă, iar după 33 de halving-uri, nemaivând ce să tăiem, block reward-ul devine 0 și supply-ul total al Bitcoin iși atinge maximul de:

Pentru a afla block reward-ul din prezent, după cele 3 halving-uri, trebuie să tăiem 3 (numărul de halving-uri curente) biți de la coadă și obținem valoarea 100101010000001011111001000000 pe care o transformăm în reprezentarea decimală → 625,000,000 sats sau 6.25 BTC.

Reducerea block reward-ului ca urmare a halving-urilor, privind în istoric, a avut ca efect de fiecare dată scăderea presiunii de vânzare din partea minerilor și la scurt timp am asistat la un răspuns din partea prețului la supply shock-ul generat. Astfel, într-o piață liberă în care prețul este dictat de cerere și ofertă, un model economic care controlează în mod eficient emisia de monede noi în circulație este probabil unul dintre cei mai importanți factori in ceea ce privește traiectoria prețului, dar și a numărului de utilizatori care participă la securizarea rețelei.

Elrond π model

Elrond π, modelul economic al monedei EGLD implementat la lansarea rețelei Elrond, aduce aproximativ aceleași principii ca modelul economic Bitcoin și este probabil primul model economic cu maxim supply creat peste un sistem Proof of Stake completat de o arhitectură blockchain capabilă în prezent de peste 15000 de tranzacții pe secundă prin 3 shard-uri de execuție și care poate scala liniar.

În fiecare an diluția masei monetare reprezentate de block rewards pentru validatori scade treptat ajungând la 0 după 10 ani. Prin urmare, moneda rețelei Elrond o să aibă 10 evenimente similare halving-ului Bitcoin și o să ajungă la un supply maxim teoretic de 31 415 927 (numărul π) în 10 ani.

Supply-ul maxim menționat este teoretic deoarece 90% din comisioanele tranzacțiilor realizate pe rețea (10% se duc către Protocol Treasury) diminuează emisia de monede noi și e posibil, daca rețeaua are parte de o adopție accelerată în primii ani, să nu se mai emită monede noi după 5 ani și supply-ul maxim să fie 26 500 000 (este doar un exemplu).

Fiindcă la prima vedere tabelul poate părea complicat o să explicăm cele mai importante coloane și anume, Mass to add (totalul de monede noi emise într-un an pentru staking rewards în condițiile în care nu se realizează nici o tranzacție pe rețea) și Tx/s to zero issuance (numărul constant de tranzacții necesare într-un an specific pentru a avea inflație 0).

Începând cu prima coloană menționată, Mass to Add, vedem cum de la an la an numărul de monede emise pentru staking rewards scade. Această scădere are ca efect diminuarea APR-ului pentru validatori si pentru a vedea mai bine care o să fie impactul de la an la an o să calculăm APR-ul din anul curent pentru staking pool-ul MGStaking.

  • Pentru început scriem datele stake-ului pe rețea

Numărul total de noduri = 3200

Total Stake = 12 009 024

Total Base Stake = 2500 x 3200 =8 000 000

Total Top Up Stake = 12 009 024 - 8 000 000 = 4 009 024

Limit Factor pentru TopUp Rewards = 50%

Gradient Point pentru TopUp Rewards = 2 000 000

  • Urmând să scriem datele staking pool-ului MGStaking

Total Pool Stake = 149 634

Active Nodes = 34

Top Up Stake Per Node = 1775

Service fee = 13% = 0.13

  • Transformăm reward-ul anual în reward-ul per epocă (24h) și aflăm cum se împarte reward-ul între top up și base stake, cel din urmă având o pondere mai mare deoarece protocolul încurajează validatorii să ruleze mai multe noduri în locul unuia singur dacă dețin cantitatea necesară de EGLD.

Reward per epocă validatori = 1940707 x 0.9 / 365 = 4785.304932 (cantitatea anuală se îmulțește cu 0.9 fiindcă 10% merg către Protocol Treasury).

Rewards Limit pentru Top Up = Reward per epocă validatori x Limit Factor pentru Top Up Rewards = 4785.30 x 0.5 = 2392.6524

Reward per epocă pentru top up= [(2 x Rewards Limit pentru Top Up ) / π] x ATAN [Total Top Up Stake / (2 x Gradient Point pentru TopUp Rewards)] = [(2392.6524 x 2) / 3.14] x ATAN [4 009 024 / (2 x 2 000 000)] = 1198.042477

Reward per epocă pentru base stake = Reward per epocă validatori - Reward per epocă pentru top up = 4785.304932 - 1198.042477 = 3587.262455

  • Calculul mult așteptat, aflarea APR-ului

APR = {[(TopUp Stake Per Node x Active Nodes / Total Top Up Stake) x Reward per epocă pentru top up] + [(Active Nodes x Stake Per Node / Total Base Stake) x Reward per epocă pentru base stake]} x 365x (1 - Service Fee) / Total Pool Stake

APR = {[(1775 x 34 / 4 009 024) x 1198.042477] + [(34 x 2500 / 8 000 000) x 3587.262455]} x 365 x (1 - 0.13) / 149 634

APR = 11.91

Trecând la explicațiile pentru cea de-a doua coloană, Tx/s to zero issuance, trebuie menționat faptul că în tabel calculele sunt realizate luând în considerare doar tranzacții simple (0.00005 egld per tranzactie), dar pentru a înțelege mai bine cum se realizează calculul o să trecem, așa cum v-am obișnuit deja, printr-un exemplu practic, cât mai apropiat de realitate.

În exemplul următor o să calculăm numărul de tranzacții necesare într-o zi din anul 3 pentru a avea inflație 0 (staking rewards sunt plătite integral din fee-urile tranzacțiilor și nu se mai emit monede noi) + o creștere a APR-ului astfel încât trecerea din anul 2 în anul 3 să fie insesizabilă din punct de vedere al reward-ului pentru validatori (același APR de 11.91 pentru pool-ul MGStaking).

Fiindcă pe rețea, pe lângă tranzacții simple, se pot executa diferite tranzacții cu date adiționale sau API calls spre SC-uri o să folosim o medie de 0.00015 EGLD per tranzacție. Pentru a conserva APR-ul din anul 2 în anul 3 avem nevoie de 4785.304932 EGLD (Reward per epocă validator din anul 2) / 0.9 = 5317 EGLD strânși zilnic în medie din comisioanele tranzacțiilor.

Cei 5317 EGLD pot fi traduși în 5317 / 86400 (secunde intr-o zi) / 0.00015 (media comisionului per tranzacție) = 410.26 TPS necesare pentru a conserva APR-ul din anul 2 în anul 3 (aceeași stare a stake-ului pe rețea și în pool) având inflație 0.

Așadar, cu timpul, comisioanele tranzacțiilor realizate pe rețea o să înlocuiască treptat inflația ajungând în anul 11 ca reward-urile pentru staking să fie plătite integral din tranzacții.

Resurse: src/validation.cpp, Elrond Economic Paper

Ne găsești și pe

--

--