Wat is Tendermint?
Door een innovatieve benadering van blockchain-ontwikkeling biedt Tendermint een flexibel alternatief voor de gevestigde structuren die we kennen en waarderen. Als ontwikkelaar opent dit twee wegen: of je beperkt je applicaties tot een beperkende omgeving, of je kiest voor code-forks om je eigen blockchain te creëren. Die laatste route is echter allesbehalve eenvoudig: het betekent niet alleen een netwerk opzetten, maar ook de complexe taak van het kiezen van een geschikt consensusmechanisme.
Maak kennis met Tendermint – een open-source softwareoplossing die specifiek is ontworpen om blockchains te lanceren. Deze baanbrekende technologie stelt ontwikkelaars in staat applicaties in elke programmeertaal te bouwen en bevrijdt hen van eerdere beperkingen. De kracht van Tendermint reikt echter verder dan individuele blockchains; het faciliteert naadloze communicatie en interactie tussen onderling verbonden blockchain-netwerken.
Basisprincipes
Het creëren van een robuuste cryptocurrency of blockchain-netwerk omvat veel meer dan alleen het initialiseren van een database. Het vraagt om een zorgvuldig evenwicht en het navigeren van het ingewikkelde samenspel van prikkels en compromissen tussen veiligheid, decentralisatie en schaalbaarheid.
Het is dan ook geen verrassing dat talloze teams verschillende benaderingen hebben onderzocht, elk met de ambitie de best mogelijke blockchain-ecosystemen te bouwen. In de wereld van blockchain-ontwikkeling springt één aanpak eruit: Tendermint. In dit uitgebreide artikel duiken we dieper in Tendermint, ontrafelen we de onderscheidende eigenschappen en verkennen we het potentieel als baanbrekende oplossing.
Wat is Tendermint?
Om Tendermint echt te begrijpen is het nuttig om kort terug te blikken op enkele kernbegrippen van blockchain. Voordat we dieper ingaan op de details, vatten we de fundamentele principes samen.
De essentie van blockchain-architectuur begrijpen
Tendermint hoort, net als Bitcoin en Ethereum, bij de categorie blockchain-stacks. Het is meer dan een database: het omvat het peer-to-peer netwerk van nodes, hun interacties en het domein van transacties en slimme contracten. Het uiteindelijke doel is consensus bereiken over de status van het systeem, ongeacht de onderliggende vertrouwensrelaties.
Moderne prominente blockchains hebben de formule ontgrendeld om dit te realiseren. Vaak vertrouwen ze echter op monolithische architecturen, waarbij sterk gekoppelde en onderling afhankelijke componenten flexibiliteit beperken. Een modulaire architectuur daarentegen maakt het mogelijk individuele componenten te wijzigen zonder dat dit tot brede verstoringen leidt. In een monolithische structuur is het essentieel dat alle leden compatibel blijven bij het upgraden van een enkel onderdeel. Met dit onderscheid in gedachten verkennen we nu het Tendermint-protocol.
Byzantijnse fouttolerantie (BFT)
Bitcoins baanbrekende innovatie in het oplossen van het Byzantijnse generaalsprobleem blijft een mijlpaal. Zonder in te gaan op alle details draait het probleem om gedistribueerde communicatie tussen deelnemers die elkaar mogelijk niet volledig kunnen vertrouwen. Byzantijnse fouttolerantie (BFT) beschrijft het vermogen van een systeem om consensus te bereiken ondanks dergelijke uitdagingen.
In een gedecentraliseerde omgeving kan het belang van deze prestatie niet worden overschat. Cryptocurrencies zonder Byzantijnse fouttolerantie vereisen een gecentraliseerde autoriteit, wat de essentie van decentralisatie ondermijnt. Net als veel andere digitale valuta lost Bitcoin dit probleem op met behulp van het Proof of Work (PoW)-consensusalgoritme.
De drie fundamentele lagen van een blockchain
Nadat we het verschil tussen monolithische en modulaire architecturen hebben gezien en het belang van Byzantijnse fouttolerantie in gedecentraliseerde netwerken begrijpen, bekijken we de drie primaire lagen die een blockchain vormen: de applicatie-, consensus- en netwerklaag.
De consensus- en netwerklaag zorgen ervoor dat netwerk-nodes met elkaar communiceren en het eens worden over een gedeelde set feiten. De applicatielaag stelt gebruikers in staat uiteenlopende activiteiten uit te voeren, van gedecentraliseerde applicaties en slimme contracten in Ethereum tot op maat gemaakte transacties binnen het Bitcoin-ecosysteem.
Tendermint Core
Voordat we ingaan op de fascinerende details van Tendermint Core, is het handig de terminologie te verduidelijken. In dit artikel worden "Tendermint" en "Tendermint Core" vaak door elkaar gebruikt, en richten we ons op de technologische aspecten.
Het is belangrijk onderscheid te maken tussen Tendermint als bedrijf, opgericht door Jae Kwon, de ontwikkelaar die het oorspronkelijke whitepaper schreef, en Tendermint Core, de daadwerkelijke software die het hart vormt van het bedrijf. Deze opmerkelijke software bestaat uit twee kerncomponenten: de consensus-engine zelf, genaamd Tendermint Core, en de applicatie-interface, bekend als ABCI.
De kracht van Tendermint Core benutten
In essentie is Tendermint Core een fouttolerant systeem dat een gesynchroniseerde staat over een gedistribueerd netwerk tot stand brengt, effectief functionerend als een grote, gedeelde computer. Zolang ten minste twee derde van de deelnemers eerlijk handelt, verloopt alles soepel. Maar dat geldt voor veel blockchains — wat maakt Tendermint Core dan anders?
Allereerst gebruikt de consensusmechaniek het innovatieve Proof of Stake (PoS)-principe. Tijdens elke periode stelt een willekeurige node uit een set validators het volgende blok voor, volgens een round-robin-systeem. Na goedkeuring door de andere validators wordt het nieuwe blok toegevoegd, met onmiddellijke finaliteit. In tegenstelling tot Bitcoin of Ethereum hoeven gebruikers niet te wachten op meerdere bevestigingen om transacties als zeker te beschouwen.
Daarnaast is de architectuur van Tendermint Core modulair: het scheidt de applicatielaag van de consensus- en netwerklaag. Met andere woorden, ontwikkelaars kunnen hun eigen applicatielaag naadloos in de stack integreren, zonder zich zorgen te maken over incentives of consensusalgoritmes.
Voor eindgebruikers is dit misschien minder zichtbaar, maar voor ontwikkelaars is het een enorme vrijstelling. Dankzij het bestaande raamwerk kunnen ontwikkelaars zich richten op applicatieontwikkeling zonder de zware last van het opstarten van een volledig netwerk. Blockchain-gegevens kunnen gemakkelijk naar de geïntegreerde laag worden geleid, zodat ontwikkelaars software kunnen bouwen in hun favoriete programmeertaal.
De Application Blockchain Interface (ABCI) ontketend
De sleutel tot dit gemak is de Application Blockchain Interface, beter bekend als ABCI. Zie het als de GPIO-pinnen op een Raspberry Pi: ze maken het mogelijk veel externe componenten aan te sluiten, van simpele LED's tot geavanceerde irrigatiesystemen. Evenzo is de ABCI de cruciale grenslaag tussen de blockchain en de applicaties die erop draaien, waardoor ontwikkelaars efficiënt kunnen aansluiten en de volledige kracht van Tendermint Core benutten.
De opmerkelijke voordelen van Tendermint Core
De mogelijkheden van Tendermint Core openen een breed spectrum aan toepassingen. De scheiding van de applicatie-interface en het consensusmechanisme geeft gedecentraliseerde applicaties ongekende flexibiliteit, en maakt integratie van verschillende programmeertalen in businesslogica mogelijk.
Kracht van Ethermint
Een goed voorbeeld van het potentieel is Ethermint. Dit project nam de Ethereum-codebase, verving Proof of Work door Proof of Stake en plaatste de Ethereum Virtual Machine bovenop de Tendermint-foundatie.
De implicaties waren groot. Ethereum-ontwikkelaars konden hun bestaande smart contracts moeiteloos migreren naar deze nieuwe engine of nieuwe contracts schrijven in Solidity. Ethermint biedt volledige Ethereum-functionaliteit als een PoS-gebaseerde variant en geeft daarmee een voorproefje van de richting die ook Ethereum 2.0 (o.a. met Casper) opgaat.
Blockchain-interoperabiliteit
Het vooruitzicht van een groot, onderling verbonden netwerk van blockchains is één van de belangrijkste aantrekkingskrachten van Tendermint-gebaseerde protocollen. Blockchain-interoperabiliteit — een lang verwachte doorbraak — belooft cross-compatibiliteit tussen talloze individuele blockchains.
Er is veel werk gestoken in de ontwikkeling van het Cosmos SDK, een open-source framework dat het mogelijk maakt application-specific publieke of private blockchains te bouwen. Deze integreren soepel in het bredere Cosmos-netwerk via de Cosmos Hub, waardoor verschillende chains met elkaar kunnen communiceren.
Het Cosmos SDK heeft meerdere bekende projecten voortgebracht die zijn mogelijkheden benutten, zoals BNB Smart Chain (BSC), KAVA, Band Protocol, Terra en IRISnet. Deze projecten laten het potentieel van het Cosmos SDK zien en drijven de groei van een steeds meer verbonden blockchain-landschap aan.
Conclusie
Tendermint, een invloedrijke blockchain-engine, trekt veel belangstelling binnen de cryptocurrency-wereld, van ontwikkelaars tot eindgebruikers. Als deze software zijn ontwikkeling voortzet, heeft het het potentieel de ruggengraat te vormen van een revolutionair "internet of blockchains." Zoals de huidige adoptie door enkele visionaire projecten laat zien, komen we stap voor stap dichter bij die ambitie.