Beginnersgids voor Tendermint: Byzantine Fault Tolerant Blockchain Engine

Wat is Tendermint

Tendermint is een low-level blockchain-engine die veilige en consistente statusreplicatie op veel machines biedt. Het is een zwak synchrone (meestal asynchrone), Byzantine Fault Tolerant (BFT) tool die wordt gebruikt als een plug-and-play-consensus voor willekeurige applicatiestatussen en gedistribueerde systemen.

Tendermint is in de eerste plaats ontworpen als een efficiënter en veiliger consensusmechanisme voor het proof of work-protocol van Bitcoin, en is in de loop van zijn bestaan ​​geëvolueerd en is nu de onderliggende consensus-engine van het Cosmos Network..

Wat is Tendermint

Achtergrond van Tendermint

Tendermint is een open-sourceproject dat in 2014 door Jae Kwon is voorgesteld in een academische vorm publicatie dat is nu verouderd maar is een boeiende lezing als je de tijd hebt. Het pakt het probleem aan van veilige en consistente replicatie in toestandsmachines die inherent moeilijk te realiseren zijn.

In blockchain-systemen is de noodzaak om kwaadwillende actoren te tolereren die knooppunten compromitteren en valse berichten verspreiden een kritieke functie waarmee ze kunnen functioneren en tot een eerlijke consensus kunnen komen over de toestand van het netwerk. De middelen om deze consensus te bereiken met het proof of work-model van Bitcoin zijn echter inefficiënt en arbeidsintensief. Tendermint stelde een nieuw BFT-model voor, met name gericht op het mogelijk maken dat de primaire consensus-engine van de Tendermint-software in verschillende andere blockchain-netwerken wordt gebruikt en universeel compatibel is met andere programmeertalen..

Praktische Byzantijnse fouttolerantie

Lezen: Wat is Nakamoto Consensus?

Als gevolg hiervan is het oorspronkelijke concept van Tendermint in de loop der jaren geoptimaliseerd om het gebruik ervan als een algemene blockchain-consensus-engine met een eigen applicatie-interface te vergemakkelijken. Momenteel is Tendermint de infrastructuurmotor van het Cosmos Network – een multi-chain framework-platform – algemeen bekend als het ‘internet van blockchains’.

Over het algemeen heeft Tendermint een aantal unieke mogelijkheden en intrigerende technologie. Dus hoe werkt het??

Hoe werkt het?

Tendermint is een blockchain-engine voor algemeen gebruik die willekeurige applicatiestatussen kan hosten en die voornamelijk bestaat uit 2 hoofdcomponenten:

  1. Tendermint Core – De consensusmotor van Tendermint BFT
  2. Application BlockChain Interface (ABCI) – Maakt BFT-replicatie van apps mogelijk die in elke programmeertaal zijn geschreven

Tendermint functioneert als een bewijs van inzet protocol dat BFT is. Ontworpen als een plug-and-play-tool, is het zowel intuïtief in gebruik als gemaakt voor efficiënte interoperabiliteit. Het kan effectief worden geïmplementeerd als het consensusmechanisme voor elk blockchain-netwerk. De ABCI ontkoppelt het consensusmechanisme van de P2P-laag van de applicatiestatus en maakt een schone interface mogelijk tussen de applicatielogica en de consensus-engine.

Tendermint gebruikt een proof of stake-mechanisme, dat van cruciaal belang is om in gedachten te houden bij het lezen van het onderstaande gedeelte. Laten we eens kijken naar de twee belangrijkste componenten.

Tendermint Core

De onderliggende consensus-engine van de algehele Tendermint-software, Tendermint Core, zorgt ervoor dat de machines in het gedistribueerde netwerk de volgorde van transacties op dezelfde manier registreren. Aangezien Tendermint een BFT-consensusmechanisme is, gaat het uit van dezelfde aannames als andere BFT-systemen, met name dat niet meer dan ⅓ van de knooppunten in het netwerk op een bepaald moment byzantijns kunnen zijn.

Evenzo gebruikt het een op ronde gebaseerd stemmechanisme zoals andere BFT-mechanismen. Om het concept beter in context te plaatsen, vindt u hieronder een lijst met vergelijkbare BFT-mechanismen voor het selecteren van het leiderknooppunt in elke ronde:

  • Praktische BFT gebruikt een round-robin-stijlformaat voor het selecteren van het leader-knooppunt voor elke ronde.
  • Proof of Elapsed Time maakt gebruik van een gerandomiseerde timer binnen SGX voor het selectieproces voor leiders.
  • Bitcoin gebruikt Nakamoto Consensus, waar een rekenpuzzel voor bewijs van werk wordt opgelost in een loterijachtig formaat om de leider van elke ronde te bepalen (mijnbouw).

Tendermint gebruikt een geoptimaliseerde versie die is ontworpen om te schalen naar duizenden transacties per seconde en voor eenvoudige plug-and-play-functionaliteit. We kunnen de ronde in Tendermint BFT opsplitsen in 3 fasen:

  • Voorstel blokkeren
  • Voorstemmen
  • Vooraf vastleggen

Deelnemers aan het protocol zijn validators. Validators stellen blokken in het netwerk voor en stemmen erover op basis van hun totale aandeel in de ronde. Daarom is de ⅓ BFT-aanname gebaseerd op het ‘gewicht’ van elke validator – bepaald door hun gecorreleerde inzet – in plaats van ⅓ van het totale aantal deelnemende nodes.

Validators onderhouden een full-client node met een kopie van de blockchain en gebruiken openbare sleutels als hun ID’s. De voorstel blokkeren fase is wanneer een validator een nieuw blok in een ronde voorstelt.

De voorstemmen fase is waar de validators stemmen over het voorgestelde blok en doorgaan naar de pre-vastleggingsfase als meer dan ⅔ van de validators vooraf stemmen over het voorgestelde blok. Dit staat bekend als een polka.

Als in de pre-commit-ronde meer dan ⅔ van de validators het voor-gestemde block pre-commit, dan wordt het block toegewezen aan de blockchain. Met name moet elke pre-commit gerechtvaardigd worden door een polka in dezelfde ronde.

Validators die mislukte blokken voorstellen of ongepaste blokken ondertekenen, riskeren hun inzet gesneden. Het hierboven beschreven proces in drie stappen wordt als één ronde beschouwd.

Tendermint is meestal asynchroon (of zwak synchroon), dus het kan meerdere ronden duren voordat een blok is vastgelegd. Het voorstelproces is gedeeltelijk synchroon, terwijl het stemproces asynchroon is. Volgens Tendermint:

“Validators kunnen om een ​​aantal willekeurige redenen een blok niet vastleggen; d.w.z. de huidige aanbieder kan offline zijn, of een netwerk kan latentie ondervinden. Bij Tendermint kan een validator worden overgeslagen. Validators wachten een korte tijd om een ​​volledig voorstelblok van de indiener te ontvangen voordat ze stemmen om door te gaan naar de volgende ronde. Door deze afhankelijkheid van een time-out is Tendermint eerder een zwak synchroon dan een asynchroon protocol. De rest van het protocol is echter asynchroon en validators boeken pas vooruitgang nadat ze meer dan ⅔ van de validatorset hebben gehoord. “

Door het ontwerp garandeert Tendermint dat de veiligheid nooit zal worden geschonden, dus een Tendermint blockchain zal nooit splitsen. Het netwerk kan echter stoppen vanwege de vereiste dat een overgrote meerderheid van de validators 100% uptime heeft.

Over het algemeen offert het consensusmechanisme een zekere mate van levendigheid op voor consensusveiligheid en onmiddellijke finaliteit.

Applicatie BlockChain Interface (ABCI)

De ABCI is een cruciaal onderdeel van de flexibiliteit van Tendermint en maakt het mogelijk om BFT-replicatie van applicaties in elke programmeertaal te schrijven.

Tendermint beschrijft de motivatie achter de ABCI als het monolithische stapelontwerp van huidige cryptocurrency-platforms zoals Bitcoin en Ethereum. Monolithische ontwerpen leiden tot onderhoudscomplexiteit van het protocol en beperken het vermogen van andere programmeertalen om te communiceren met de blockchain. Ethereum ondersteunt bijvoorbeeld een Turing-complete bytecode virtuele machine, maar programmeertalen zijn beperkt tot diegene die kunnen compileren tot die bytecode, zoals Solidity en Vyper.

De primaire implementatie van de ABCI is het Tendermint Socket Protocol (TSP) en is hoe Tendermint Core communiceert met de applicatie. Terwijl Tendermint Core verantwoordelijk is voor het onderhouden en verifiëren van de canonieke volgorde van transacties in de blokken van de blockchain, valideert de ABCI cryptografische handtekeningen, onderhoudt de transactiedatabase en stelt klanten in staat om de transactiedatabase te doorzoeken..

De ABCI gebruikt 3 primaire berichttypen:

  • DeliverTX
  • CheckTX
  • Commit

De DeliverTX bericht vergezelt elke transactie in de blockchain en kan de applicatiestatus pas bijwerken na validatie.

De CheckTX bericht is voor het valideren van transacties en wordt eerst geverifieerd door de mempool van Tendermint Core. Alleen geldige transacties worden over het netwerk verspreid.

De Commit bericht berekent een verbintenis met de huidige applicatiestatus, waardoor Merkle-bewijzen kunnen worden geverifieerd aan de hand van een blokhash die is ondertekend door een quorum.

De ABCI is verbindingsgericht en Tendermint Core onderhoudt drie ABCI-verbindingen met de applicatie.

  • Mempool-verbinding
  • Consensusverbinding
  • Vraag verbinding

De Mempool-verbinding gebruikt het CheckTX-bericht en is bedoeld om te verifiëren of transacties moeten worden doorgestuurd voordat ze worden vastgelegd.

De Consensusverbinding voert transacties uit die zijn vastgelegd.

De Vraag verbinding stelt klanten in staat de applicatiestatus op te vragen.

De ABCI is een dynamisch onderdeel van de Tendermint-software en is een integraal onderdeel van de multi-chain framework-capaciteit van het Cosmos Network, dat het aandrijft als de onderliggende blockchain-engine van het netwerk..

Image Credit – Tendermint-documentatie

Tendermint & Het Cosmos-netwerk

Het Cosmos-netwerk is een multi-chain blockchain-framework dat zich richt op het aanpakken van de belangrijkste problemen van schaalbaarheid en interoperabiliteit van blockchain-systemen.

Blockchain-interoperabiliteit

Lezen: Blockchain-interoperabiliteit: problemen & Toekomstige oplossingen

Het wordt aangedreven door de klassieke BFT-blockchain-engine van Tendermint en fungeert als een bredere structuur voor onafhankelijke blockchains om aan te sluiten en te functioneren binnen een gestandaardiseerde communicatieomgeving. Het netwerk stelt zowel publieke als private blockchains in staat om met elkaar te communiceren en waarde uit te wisselen, en maakt gebruik van interoperabele schaalbaarheid via Tendermint’s proof of stake consensusmechanisme.

Verder stelt de ABCI van Tendermint ontwikkelaars in staat om eenvoudig verschillende blockchains te bouwen als onderdeel van het ecosysteem, met behulp van elke programmeertaal. De Cosmos SDK is een ABCI-framework geschreven in de programmeertaal Go, en Lotion JS is een ABCI-framework geschreven in JavaScript.

Er is aanzienlijke opwinding rond multi-chain frameworks zoals Cosmos en Polkadot. Je kunt meer informatie en bronnen over Cosmos en de integratie met Tendermint vinden in hun documentatie.

Conclusie

Tendermint vertegenwoordigt een nieuwe stap in het onderzoek naar en de ontwikkeling van Byzantijnse fouttolerantie in gedistribueerde netwerken, met name blockchain-systemen. Dit soort innovaties zijn cruciaal voor de ontwikkeling van meer schaalbare en interoperabele blockchain-netwerken zoals Cosmos.

Tendermint en soortgelijke progressies in BFT-consensus zijn uitstekende voorbeelden van hoe ver de cryptocurrency-industrie is gekomen met het verleggen van de grenzen van de allernieuwste technologieën. Er is veel meer innovatie nodig om het bredere concept achter blockchain-technologie zijn ware potentieel te laten bereiken, maar projecten zijn op de goede weg en veranderen dynamisch het gedistribueerde computerlandschap.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me