Wat is Tendermint?
Tendermint is een protocol op laag niveau dat uit twee hoofdonderdelen bestaat: een blockchain-consensus-engine en een generieke applicatie-interface. Tendermint Core, de blockchain-consensus-engine, faciliteert het peer-to-peer-netwerk en biedt een proof-of-stake (PoS) consensus. De Application BlockChain Interface (ABCI) daarentegen fungeert als een tool voor blockchains om te linken naar het Tendermint Core-protocol.
Het doel van Tendermint is om een blockchain-motor. Het is bedoeld als een tool die ontwikkelaars kunnen gebruiken om de vervelende en technische cryptografie over te slaan en naar het hogere niveau van blockchain en applicatie-ontwikkeling te springen.
Tendermint Core
Tendermint Core is een verpakte open-source software die uit twee hoofdonderdelen bestaat. Voornamelijk een Byzantijnse fouttolerante blockchain-consensus-engine. Ten tweede een p2p-netwerkprotocol.
Een algemene consensus
Het fundamentele concept van Byzantijnse fouttolerantie (BFT) is ingebakken in het consensusalgoritme van Tendermint. Om BFT te begrijpen, is het nodig om een overzicht te hebben van wat het oplost: het Byzantijnse generaals-probleem.
Lang geleden probeerden een handvol generaals en hun legers een stad aan te vallen. Om de stad te verslaan, moesten alle generaals tegelijkertijd aanvallen – minder dan volledige deelname zou betekenen dat de generaals zouden verliezen. Het probleem is dat geen van de generaals op betrouwbare wijze kon weten wanneer ze de stad moesten aanvallen. Ze waren allemaal afgezonderd aan elke kant van de stad en de communicatie tussen hen was onmogelijk te synchroniseren. Berichten kunnen verloren gaan, beschadigd raken of vervalst worden.
The Tendermint Whitepaper door Jae Kwon
De uitdaging waarmee de generaals werden geconfronteerd, wordt exponentieel groter als er rekening wordt gehouden met meer mensen of berichten. Tendermint’s BFT Proof-of-Stake stelt honderd validators in staat om hun grootboeken snel en veilig tegen elkaar te bevestigen. Met andere woorden, alle validators weten wanneer ze de stad moeten aanvallen.
Een BFT Proof-of-Stake-algoritme overwint het Byzantijnse generaalsprobleem door een gedeeltelijk synchroon netwerkmodel te gebruiken. Dit betekent in feite dat de generaals die de stad omringen – of de validators die op een blok stemmen – niet op een vooraf ingesteld tijdstip hoeven te handelen. Blokken worden niet gestemd volgens een schema of een vooraf bepaalde grootte.
Dit bereikt Tendermint door validators eerst willekeurig het recht toe te kennen om een blok voor te stellen. Nadat blokken zijn voorgesteld, stemmen validators in een deterministisch proces met meerdere ronden. Dit betekent dat de eerste stap tamelijk willekeurig is en de tweede een voorgeschreven volgorde volgt.
Met Tendermint worden validators geroteerd op een deterministisch gewogen round-robin-formaat. Hoe meer inzet een validator heeft, hoe vaker ze als leider kunnen worden gekozen. Momenteel is het protocol beperkt tot honderd validators, maar het is mogelijk om het aantal validators indien nodig uit te breiden.
De Applications Blockchain-interface
Bovenop de Tendermint Core is de Application BlockChain Interface (ABCI) gestapeld. De ABCI is een Byzantijnse fouttolerante replicator van applicaties die in elke taal zijn geschreven. U kunt uw blockchain-applicaties die zijn geschreven in C ++, Python, Solidity of een andere taal repliceren naar een prefab BFT blockchain-engine.
De ABCI is de vertaler, wrapper en socket tussen blockchain-applicaties en de Tendermint blockchain-engine waarop ze zitten.
De monolieten aanpakken
ABCI over de Tendermint Core heen leggen is een belangrijke stap in de richting van het verlagen van de toegangsbarrières rond het ontwikkelen met blockchains.
De meeste blockchain-systemen hebben een monolithische architectuur, waardoor vaak de talen die erop kunnen worden geschreven worden beperkt. De virtuele machine Ethereum Turing-complete bytecode beperkt u bijvoorbeeld tot talen die neerwaarts compatibel zijn met bytecode. Momenteel is dat alleen Slang en Soliditeit.
Daarentegen zorgt de ABCI ervoor dat elke programmeertaal erboven wordt gestapeld en toch volledig compatibel is met de onderliggende Tendermint Core-engine. Ontwikkelaars hoeven niet de enkele monolithische stapel van de blockchain die ze kiezen te volgen. In plaats daarvan kunnen ze zich concentreren op de applicatielogistiek en vrijwel blockchain-agnostisch blijven.
Het Cosmos Ecosystem inclusief Tendermint
De toekomst van Tendermint is in de kosmos
De makers van de open-source Tendermint hebben een veel groter project genaamd Cosmos geïmplementeerd. Cosmos is ontworpen als een internet van blockchains en verbindt op Tendermint gebaseerde applicaties.
Een interessant onderdeel van Cosmos is dat applicaties oorspronkelijk niet bovenop Tendermint hoeven te worden gebouwd om binnen de Cosmos-ecosystemen te werken. Cosmos maakt gebruik van de applicatiereplicator van Tendermint door hard lepelen bestaande blockchains op Tendermint Core. Tendermint is niet alleen een broedplaats voor modulaire blockchain-apps, maar ook een blockchain-kloonmachine.
Ter verduidelijking, hier is hoe Jae Kwon, oprichter van Tendermint, een harde lepel beschrijft.
“Harde lepel: een nieuwe ketting die rekening houdt met de toestand van een bestaande ketting; niet om te concurreren, maar om brede toegang te bieden. ” – Jae Kwon
Een paar prominente projecten die hun weg naar Cosmos willen lepelen, zijn OmiseGo, 0x en FOAM. Het token van elk project zal dan bovenop Tendermint bestaan en vervolgens worden gekoppeld aan het Cosmos-netwerk van blockchains.
Gevolgtrekking
Tendermint Core en ABCI vormen samen Tendermint – een open-source blockchain-engine waarop ontwikkelaars van elke programmeertaal kunnen bouwen. Tendermint verschuift de focus van ontwikkelaars weg van de low-level cryptografie naar de applicatielaag.
Een analogie van wat Tendermint is met blockchain, zou zijn om het te vergelijken met het canvas van een kunstenaar. Je kunt een eindeloos aantal ideeën op canvas uitdrukken, maar een moderne kunstenaar hoeft zelden na te denken over het bouwen en ontwikkelen van zijn eigen ideeën. Tendermint is, net als een canvas, de basis waarop je eindeloze blockchaintoepassingen kunt bedenken.