Blockchain & gedistribueerd vertrouwen, deel 3/3: Het blockchain trilemma

Posted on: 18/09/2018 by: Kristof Verslype

Deel 1 in onze reeks ging in op wat we bedoelen met gedistribueerd vertrouwen en wat blockchain wel en niet kan. Deel 2 ging over het moeilijke evenwicht tussen transparantie en confidentialiteit. In dit derde en laatste deel bekijken we het spanningsveld tussen drie concepten: veiligheid, schaalbaarheid en distributie van vertrouwen. Als we een van deze drie aspecten verbeteren, gaat dit ten koste van minstens een van de andere aspecten. Vitalik Buterin, de man achter Ethereum, spreekt van een trilemma. Samengevat is het niet mogelijk dat iedereen alles valideert, indien er veel participanten en hoge transactievolumes zijn. Dit artikel gaat in op dit trilemma en onderbouwt het met diverse voorbeelden.

Wat bedoel ik met de drie termen?

  • Distributie van vertrouwen. Het aantal participanten betrokken in het consensusmechanisme en de graad waarin die macht evenredig verdeeld is over deze participanten. Of anders geformuleerd: het aantal partijen dat de blockchain veilig houdt en verifieert of de regels gerespecteerd worden. En heeft elk van die participanten daarbij een even zware stem?
  • Schaalbaarheid. Het aantal transacties dat per seconde door het netwerk verwerkt kan worden.
  • Veiligheid. Veiligheid bestaat uit diverse componenten. Traditioneel spreekt met over CIA, wat staat voor confidentiality, integrity en availability. Blockchain technologie scoort slecht op het vlak van confidentialiteit (zie vorige blogpost), goed op het vlak van integriteit, en, afhankelijk van de invalshoek, goed of slecht op het vlak van beschikbaarheid; er is enerzijds geen single point of failure (SPOF), maar anderzijds zal in een blockchain benadering “pur sang” de participant zijn geheime sleutel moeten beschermen om toegang tot zijn op de blockchain geregistreerde activa te behouden.

Er zijn dus drie wederzijdse spanningen: 1) distributie van vertrouwen Vs. schaalbaarheid, 2) schaalbaarheid Vs. veiligheid en 3) veiligheid Vs. distributie van vertrouwen. We illustreren in wat volgt elk van deze spanningsvelden alvorens naar de afronding te gaan.

Distributie van vertrouwen Vs. Schaalbaarheid

Permissionless blockchains hebben een beperkte capaciteit. Bitcoin kan naar schatting 3,3 tot 7 transacties per seconde verwerken. Voor Ethereum ligt dit rond de 15. Permissioned (afgeschermde) blockchain technologieën zoals Multichain en BigChainDB 2.0 claimen een duizendtal transacties per seconde, wat al aanzienlijk hoger ligt. In dergelijke afgeschermde netwerken is er dan ook een veel kleinere en permanentere set validatoren. Als we naar gecentraliseerde oplossingen gaan dan ligt de verwerkingscapaciteit nog eens vele malen hoger. VISA kan bijvoorbeeld 65 000 transacties per seconde aan.

Om de capaciteit te verhogen is bovenop Bitcoin een extra laag, het Lightning Network, gebouwd. Het claimt miljarden bliksemsnelle transacties per dag, door een groot deel off-chain te behandelen. Toch wordt er gevreesd dat dit opnieuw tot centralisatie zal leiden: "What it doesn’t tell you is that this can only be accomplished by using large, centralized 'banking' hubs." Bovendien moet je eerst virtueel geld vastzetten vooralleer je het Lightning Network kunt gebruiken en lijkt het systeem vooral nuttig in situaties waarbij een vaste groep van entiteiten geregeld met elkaar financiële transacties doet.

De Ethereum community werkt volop aan Plasma, waarbij het mogelijk wordt om nieuwe blockchain netwerken aan te maken die verankert worden in de Ethereum blockchain. Virtueel geld (ether) zal transfereerbaar worden tussen de Ethereum blockchain en het kind-blockchain. Die laatste kan zijn eigen smart contracts bevatten. Enkel de validatoren van het kind-blockchain verifiëren alle transacties gerelateerd aan dit smart contract. Het totale netwerk, dus de Ethereum blockchain en alle kind-blockchainnetwerken samen, heeft zo een grotere capaciteit, maar niet iedereen verifieert nog alles.

Onder meer door Zilliqa en Ethereum wordt gewerkt aan sharding van blockchains, waarbij validerende participanten niet langer de volledige maar slechts een deel van de blockchain hoeven te valideren en bewaren, wat de schaalbaarheid ten goede komt. Ook dit vermindert de distributie van vertrouwen. Net zoals bij Plasma wordt een smart contract niet langer gevalideerd door alle validatoren, maar door een subset.

Sommige publieke blockchain netwerken hebben een lagere graad van distributie van vertrouwen, waardoor ze wel efficiënter zijn. Een voorbeeld is Ripple, waar de validatie gebeurt door een beperkt – weliswaar groeiend – aantal bedrijven. Het recentere EOS gebruikt DPoS (Delegated Proof of Stake), waarbij een beperkt aantal validatoren verkozen wordt.

Wanneer het aantal transacties per seconde verhoogd wordt, betekent dit meer werk voor de validatoren, meer bandbreedte die vereist zal zijn en meer opslagcapaciteit. Wanneer het aantal transacties per seconde te snel verhoogd wordt, zullen de infrastructuurkosten om een validerende node te draaien stijgen, waardoor een deel zal afhaken en je dus een centralisatiebeweging krijgt. Een beperkt aantal validatoren zal snelle onderlinge connecties opzetten, waardoor het voor anderen nog moeilijker wordt te participeren. Deze vrees werd reeds uitgedrukt voor Ethereum. Ook in de Bitcoin community was er een heftige discussie omtrent het al dan niet vergroten van de maximum blok grootte. Grotere blokken betekenen meer transacties per seconde, maar ook meer werk - en dus kosten - voor de validatoren.

Schaalbaarheid Vs. Veiligheid

Dit is een wat bijzondere categorie vanuit blockchain standpunt, gezien datgene waar blockchain goed in is, distributie van vertrouwen, hier niet aan bod komt. Toch hebben we ook hier een mooi blockchain-voorbeeld.

BigChainDB 1.0 noemde zichzelf een blockchain database; een database met blockchain eigenschappen. Het claimde tot 1 miljoen schrijfoperaties per seconde. Toch bleek dat het een aantal ernstige security zwakheden kende. Zo kon een hacker alles verwijderen door slechts één participant te hacken. BigChainDB 2.0 is midden 2018 uitgebracht, waarbij deze security kwetsbaarheden verholpen zijn. De verwerkingssnelheid die ze claimen zakte daarmee tot "duizenden transacties per seconde".

Een concept om Bitcoin te ontlasten zijn sidechains, blockchain netwerken die naast de hoofd-blockchain bestaan. Bitcoins kunnen getransfereerd worden tussen de hoofdblockchain en de sidechain. Goed voor de schaalbaarheid, gezien de hoofd-blockchain niet meer alles moet doen. Maar ook daarrond werden bedenkingen over de veiligheid geformuleerd.

Veiligheid Vs. Distributie van vertrouwen

Om hun virtueel geld te beschermen, maken velen gebruik van een vertrouwd, centraal platform. Verschillende van die platformen zijn reeds gehackt, met soms zware financiële verliezen tot gevolg, net doordat een centrale, regulerende autoriteit ontbreekt. Maar toch kunnen deze platformen veiliger zijn dan het zelf bewaren van de geheime sleutel op je computer zonder meer. Dit zal sterker het geval zijn eens centrale platformen gereguleerd zullen zijn, wat in Europa slechts een kwestie van tijd is.

Uit de Bitcoin blockchain kan informatie afgeleid worden, die soms aan personen of organisaties gelinkt kan worden. Dit is negatief voor de confidentialiteit (van persoonsgegevens). Zoals in de vorige blogpost besproken, lost zCash dit op. Maar het valideren van een zCash transactie vereist meer rekenkracht, en het opslaan ervan in de blockchain meer schijfruimte (en dus bandbreedte). Dit zijn aspecten die negatief zijn voor de distributie van het vertrouwen (en voor de schaalbaarheid). Je hebt immers een zwaardere machine nodig om eenzelfde aantal transacties per seconde te kunnen verwerken, en wellicht zullen bij een stijgend aantal transacties minder participanten over een voldoende zware machine beschikken.

Permissioned blokchain netwerken worden afgeschermd door een toegangscontrolelaag. In Hyperledger Fabric is dit bijvoorbeeld een top-down hiërarchische PKI (public key infrastructure). Het gevaar dat je je sleutel verliest kan zo opgevangen worden, wat dus de security ten goede komt, maar we moeten wel een gecentraliseerde dienst vertrouwen, wat het gedistribueerde karakter vermindert.

In Hyperledger Fabric kun je enkel een beperkte, geselecteerde set van participanten laten instaan voor de correcte uitvoering van een smart contract. De rest van het netwerk heeft geen toegang tot de betrokken gegevens. Dit komt de confidentialiteit (veiligheid) ten goede, maar reduceert de graad van distributie van vertrouwen.

Meerdere participanten in een afgeschermd blockchain netwerk hebben toegang tot dezelfde data. Afhankelijk van de gegevens en hoe blockchain gebruikt wordt, is het dus mogelijk dat uit die blockchain gevoelige gegevens afgeleid kunnen worden. Elk van de participanten moet in dat geval dus voldoende beveiligd zijn. Als de kans op een ernstig lek in een gecentraliseerde aanpak x% per jaar is, dan stijgt dit bij een gedistribueerde aanpak met y participanten tot x*y% per jaar, en dit in de optimistische veronderstelling dat alle participanten even goed beveiligd zijn als bij een gecentraliseerde aanpak. Distributie van vertrouwen komt hier dus met een verhoogd veiligheidsrisico.

Het opzetten, onderhouden en veilig houden van een afgeschermde blockchain infrastructuur is niet eenvoudig. Om dit te vergemakkelijken bieden een aantal cloud providers vandaag Blockchain-as-Service (BaaS) aan. Daar kan je snel en goedkoop een blockchain netwerk opzetten. Enige probleem: je wordt afhankelijk van de BaaS provider. Het is niet nodig dat participanten elkaar vertrouwen, maar ze moeten wel allemaal de BaaS provider vertrouwen. In ruil daarvoor krijgen we o.a. snel & goedkoop een goed beveiligd en afgeschermd blockchain netwerk.

Afronding

Soms hoor ik blockchain believers het volgende verkondigen: “Alle problemen waar blockchain vandaag mee te kampen heeft, zoals schaalbaarheid, veiligheid en privacy, zullen binnen afzienbare tijd door erg slimme mensen opgelost worden.” Dit heb ik steeds een enorm zware aanname gevonden.

In dit artikel bekeken we het spanningsveld tussen schaalbaarheid, veiligheid en distributie van vertrouwen. De talrijke voorbeelden in het artikel bevestigen dat het erg moeilijk is om tot een oplossing te komen die op de drie punten erg sterk scoort. Dit hoeft geenszins te betekenen dat blockchain technologie naar de prullenmand verwezen moet worden, maar enkel dat gewoon niet alles tegelijkertijd mogelijk is. Het zet misschien een domper op het idee dat er voor platformen met enorm hoge volumes zoals zoals eBay en Facebook, sterk gedistribueerde en tegelijkertijd zeer veilige alternatieven mogelijk zijn. Maar laat ons eerlijk zijn, veelal is dit ook niet nodig. Het zal er dus op aankomen om de juiste keuzes te maken.