Het eUTXO-model van Cardano uitgelegd aan een vijfjarige
Cardano verschilt fundamenteel van Ethereum in zijn boekhoudmodel. Terwijl Cardano het uitgebreide UTXO-model (eUTXO) gebruikt, gebruikt Ethereum een rekening model. In dit artikel zullen we het verschil tussen deze benaderingen op een vereenvoudigde manier uitleggen.
Boekhoudkundig model
Je kunt een blockchain zien als een grootboek, een geschiedenis van de boekhouding geschreven door een boekhouder. Het grootboek is open, dus alle gegevens kunnen door alle accountants, maar ook door alle gebruikers op elk moment worden ingezien. In onze analogie stellen de boekhouders het netwerk voor. Stel je voor dat accountants in een bank zitten en benaderd worden door cliënten (gebruikers) die hen vragen boekingen (transacties) te doen. Alle accountants delen één grootboek dat zij gebruiken voor boekingen.
In blockchainnetwerken zijn de gebruikers eigenaar van de munten. Ook al staan de records in een grootboek, wanneer gebruikers naar de accountant komen met een verzoek om een record te wijzigen, moeten zij dat bevestigen met een duimafdruk (analogie met een digitale handtekening van een transactie). Stel je ADA- en ETH-munten voor als stukjes papier die gebruikers in een houten doos stoppen (portemonnees). De stukjes papier zitten fysiek in het grootboek en vormen samen de afzonderlijke pagina’s van het grootboek, maar dankzij de doos kunnen gebruikers ze bekijken en aan de boekhouder overhandigen als ze een wijziging in een record willen aanbrengen (een transactie versturen).
Cardano en Ethereum verschillen in de manier waarop de gegevens in het grootboek worden geschreven, en dus in de manier waarop klanten de munten houden.
Cardano werkt met ADA-munten vergelijkbaar met bankbiljetten, behalve dat de denominatie elke waarde kan zijn. Bijvoorbeeld 12 ADA, 3,5 ADA en 0,3 ADA. De gebruiker heeft 3 stukjes papier in zijn doos met deze waarden erop geschreven (hij heeft 3 UTXO’s). Dat is een totaal van 15,8 ADA. In tegenstelling tot Ethereum heeft Cardano de extra mogelijkheid dat er meerdere kleinere vakjes in de doos kunnen zitten die individuele stukjes papier bevatten (de kleinere vakjes staan voor blockchainadressen). Er kunnen meer stukjes papier in één kleinere doos zitten.
Als Alice 14 ADA naar Bob zou willen sturen, zou ze de boekhouder 2 stukjes papier moeten geven met 12 ADA en 3,5 ADA. De boekhouder maakt een nieuw stuk papier (een nieuwe UTXO) en schrijft daarop 14 ADA. Hij stopt dit papier in de doos van Bob. Vervolgens maakt hij nog een nieuw stuk papier met een waarde van 1,5 ADA, dat hij teruglegt in de doos van Alice.
Wanneer de boekhouder de boeking in het grootboek voltooit (een transactie verwerkt), heeft Alice 2 stukken papier in de doos met een waarde van 0,3 ADA en 1,5 ADA. De doos van Bob was leeg voordat de boeking werd gedaan. Na de boeking heeft hij 14 ADA.
We hebben de analogie wat vereenvoudigd. De boekhouder zou een vergoeding (transactievergoeding) nemen voor het schrijven van een boeking in het grootboek, zeg 0,2 ADA, dus zou hij slechts 1,3 ADA terugstorten in de doos van Alice.
In het Ethereum boekhoudmodel hebben gebruikers altijd slechts een enkel papiertje in de doos met een waarde erop geschreven. Dit is vergelijkbaar met het huidige saldo op een bankrekening. In het geval van Cardano had Alice 15,8 ADA in haar doos. Stel dat ze 15,8 ETH in Ethereum heeft, dan heeft ze een enkel papiertje met die waarde in haar doos.
In het geval van Ethereum overschrijft de boekhouder, wanneer hij een nieuwe boeking wil doen, tegelijkertijd de gegevens op het papiertje van Alice en Bob. Als Alice 14 ETH naar Bob stuurt, zoals in het vorige voorbeeld, overschrijft de boekhouder de waarde 15,8 naar 1,8 op het papiertje van Alice. Tegelijkertijd overschrijft zij het stuk papier van Bob en maakt van de waarde 0 14. In dit voorbeeld hebben we ook de accountantskosten weggelaten.
We hebben voorbeelden gebruikt om te laten zien hoe gebruikers naar accountants gaan en hen vragen een boeking in het grootboek te maken, wat analoog is aan het versturen van een transactie. Het zou zeer vergelijkbaar werken als gebruikers de accountants om een complexere operatie zouden vragen, zoals een lening of de uitwisseling van twee activa (uitvoering van slimme contracten).
In Ethereum wordt een nieuw record gecreëerd door stukken papier te herschrijven (balanswijziging), terwijl in het Cardano-netwerk afzonderlijke nieuwe stukken papier worden gecreëerd die voortbouwen op eerdere stukken papier. Het creëren van nieuwe stukken papier in plaats van het herschrijven ervan is een belangrijk verschil tussen de boekhoudmodellen.
Het verschil in het gebruik van het grootboek
Het boekhoudmodel beïnvloedt hoe Cardano en Ethereum het grootboek gebruiken, of hoe accountants een nieuwe boeking kunnen maken. Een boekhouder op het Ethereum-netwerk moet het grootboek uit de kluis halen wanneer hij een nieuw record (of meerdere records) aanmaakt en het naar zijn bureau brengen om met alle dozen tegelijk te werken (gedeelde globale staat).
Om de nieuwe boeking te kunnen maken, moet de accountant overzicht hebben over alle vakken en er zeker van zijn dat op het moment van zijn invoer een andere accountant niet zal proberen de boeking te maken. Door het grootboek naar zijn bureau te brengen, geeft de boekhouder aan de andere boekhouders het signaal dat alleen hij nu boekingen kan verrichten.
Andere boekhouders in het netwerk kunnen hun boekingen niet in het grootboek invoeren omdat een andere boekhouder het voor zichzelf heeft. Zij kunnen zelfs geen nieuwe boekingen vooraf voorbereiden omdat zij niet weten welke nieuwe boekingen in het grootboek zullen worden gedaan. Zodra het grootboek weer in de kluis ligt, kan een andere boekhouder het meenemen. Alle boekhouders kunnen de nieuwe boekingen bekijken en nagaan of ze correct zijn (blokvalidatie).
Het voordeel is dat de boekhouder, die het boek voor zichzelf heeft, alle wijzigingen in alle vakken kan aanbrengen. Hij kan zelfs meer dan één keer achter elkaar een stuk in een vak wijzigen (herschrijven). Het nadeel is dat de volgorde waarin de nieuwe boekingen worden geschreven belangrijk is. Als een boekhouder 20 nieuwe boekingen invoert, moeten de andere boekhouders deze volgorde respecteren. De afzonderlijke boekingen zijn van elkaar afhankelijk.
Het kan gebeuren dat er meer gebruikers in de rij staan die een boeking in het grootboek willen maken. Zelfs als hun verzoek geldig was op het moment dat zij in de wachtrij stonden, is het mogelijk dat de boekhouder, wanneer zij aan de beurt zijn, het verzoek niet kan verwerken. Toch moet de gebruiker de accountant een vergoeding betalen voor de poging tot verwerking. Het niet kunnen uitvoeren van de boekhoudkundige handeling is te wijten aan het feit dat deze afhankelijk was van vakjes (stukjes papier in de vakjes) die veranderden toen een andere boekhouder het grootboek voor zich had. Helaas hebben gebruikers niet de kans om vooraf te controleren of hun verzoek geldig zal zijn voordat ze in de rij gaan staan.
De accountant in het Cardano-netwerk moet ook het grootboek uit de kluis naar zijn bureau brengen wanneer hij nieuwe boekingen wil doen, maar hij belet andere accountants niet hun werk te doen. De accountant hoeft niet alle andere dozen bij te houden, want hij werkt alleen met de stukken papier die de klant op zijn bureau heeft gelegd. De accountant kan de geldigheid van de vereiste boekhoudkundige transactie controleren ongeacht de andere vakjes (geen globale toestand).
Cliënten kunnen vooraf controleren of hun gevraagde transactie geldig is (off-chain validatie) en zo ja, dan kunnen zij er zeker van zijn dat wanneer zij in de wachtrij komen, de accountant hun transactie zal accepteren en uitvoeren. Ze kunnen er ook zeker van zijn dat de vergoeding hetzelfde blijft.
De afzonderlijke stukken papier zijn niet van elkaar afhankelijk, dus de volgorde van de boekingen door de accountant die het grootboek voor zichzelf heeft, is niet belangrijk. Wanneer de boekhouder het grootboek teruggeeft aan de kluis, kunnen de andere boekhouders de boekingen parallel valideren.
De onafhankelijkheid van een bepaalde boekhoudkundige handeling van andere vakken (stukken papier in de vakken) heeft het voordeel dat deze vrijwel zeker slaagt als zij de lokale validatie door de gebruiker heeft doorstaan. De gebruiker kan zelf voor boekhouder spelen om te zien of zijn verzoek geldig is. Dit is vooral belangrijk voor complexere operaties zoals leningen en de uitwisseling van activa (smart contracts).
Het nadeel is dat, vooral bij complexere boekhoudkundige operaties, twee boekhouders tegelijkertijd aan hetzelfde stuk papier willen werken, maar dat slechts één van hen daarin kan slagen. In sommige gevallen moet een speciale synchronisatie tussen de boekhouders worden ingevoerd.
Momenteel werken de accountants in het Cardano-netwerk op dezelfde manier als in het Ethereum-netwerk. Het belangrijkste verschil is dat accountants niet de context van alle papiertjes in de dozen van andere gebruikers hoeven te kennen om hun werk te doen. Het principe van het creëren van een nieuwe reeks boekingen en de daaropvolgende validatie is vergelijkbaar met hoe het in het Ethereum-netwerk gebeurt. Een gekozen boekhouder haalt het grootboek uit de kluis naar zijn bureau om nieuwe boekingen te doen. We zullen grotere verschillen zien wanneer we overgaan naar de nieuwe versie van de Ouroboros PoS-consensus.
Schaalbaarheidsopties met betrekking tot het boekhoudmodel
Boekhouders in het Ethereum-netwerk kunnen niet parallel werken aan individuele boekhoudoperaties. Op elk moment kan slechts één boekhouder het grootboek uit de kluis halen. Dan kan hij veilig werken met alle stukken papier in de dozen. Omdat de andere boekhouders altijd de laatste boeking in het grootboek moeten volgen om hun werk te kunnen voortzetten, kunnen zij niet werken met cliënten die in de wachtrij staan. Zij moeten altijd wachten tot het grootboek terug is in de kluis om de vorige boekingen te bekijken. Die moeten zij valideren en pas dan kan een andere boekhouder aan de slag met de volgende cliënten in de wachtrij. Dit verhindert in wezen de parallelle verwerking van boekhoudoperaties en vormt een grote belemmering voor schaalbaarheid.
In het Cardano-netwerk zal het mogelijk zijn dat meerdere boekhouders tegelijkertijd werken en elk verzoeken van cliënten in hun eigen wachtrij kunnen afhandelen. Deze mogelijkheid zal worden gebruikt in een PoS-consensus genaamd Leios. Het Cardanonetwerk zal de accountants vooraf boekingen kunnen laten voorbereiden voor één hoofdboekhouder om de voorbereide boekingen te beoordelen.
Wanneer de accountant het grootboek voor zichzelf neemt, schrijft hij steeds meer nieuwe boekingen (creëert een nieuw blok). Zo ontstaat een lijst van boekingen die vervolgens door andere boekhouders moet worden gecontroleerd (netwerkconsensus). Dit proces neemt gewoonlijk enige tijd in beslag (bloktijd) en het aantal nieuwe boekingen is beperkt (blokgrootte). Accountants delen het grootboek om de beurt met tussenpozen van ongeveer 20 seconden. Zelfs als een boekhouder bijvoorbeeld één seconde werkt, duurt het de rest van de tijd voor andere boekhouders om de boekingen te verifiëren.
Cardano zal de gekozen boekhouder (of eventueel meer boekhouders) elke seconde nieuwe boekingen laten voorbereiden en vervolgens de hoofdboekhouder de belangrijkste controle laten uitvoeren (dubbele uitgaven vinden en verwijderen, dubbele boekingen verwijderen, enz.) Dit is alleen mogelijk omdat het werk van individuele boekhouders grotendeels onafhankelijk is van het resultaat van het werk van andere boekhouders en de hoofdboekhouder. De onafhankelijkheid komt voort uit het feit dat de stukken papier in de dozen onafhankelijk van elkaar zijn.
In het Ethereum-netwerk zal de schaalbaarheid anders moeten worden aangepakt. Dezelfde aanpak kan niet worden gebruikt omdat het werk van individuele boekhouders onderling afhankelijk is. Elke boekhouder moet precies weten wat de vorige heeft gedaan. Deze informatie kan echter niet voor hen beschikbaar zijn vanwege de tijd die nodig is om de gegevens over het netwerk te verspreiden. Een beperking is de noodzaak om het grootboek vast te zetten voor een enkele boekhouder die met alle vakken moet werken en de onmogelijkheid voor andere boekhouders om in de tussentijd iets nuttigs te doen. Het aanmaken en vervolgens valideren van nieuwe records (blok) duurt 20 seconden en gedurende die tijd kan slechts één boekhouder werken. De rest van de accountants zit stil.
Conclusie Wij hopen dat onze analogie u heeft geholpen het verschil in de boekhoudmodellen van Cardano en Ethereum te begrijpen. Het verschil is op het eerste gezicht niet zo groot, maar in werkelijkheid beïnvloedt het boekhoudmodel de schaalbaarheid, de voorspelbaarheid van de uitkomst van de gewenste boekhoudoperatie, de voorspelbaarheid van het vergoedingsbedrag, de veiligheid, enz.
Originele tekst: https://cardanians.io/en/explaining-cardano-s-eutxo-model-for-a-five-year-old-218
Geef een reactie