Naar de content

De keten zonder zwakste schakel

Banken omarmen blockchain-techniek

Blockchain Lab

De blockchain-techniek werd bekend doordat hij een onderdeel is van bitcoin, de cybermunt waar veel ophef over was. Maar blockchain is veel breder toepasbaar. De ware blockchainiacs koesteren visioenen hoe deze techniek alle banken en centrale autoriteiten overbodig gaat maken. Maar onder meer ABN AMRO gaat er nu zelf mee aan de slag.

4 november 2016

De ware blockchainiac hoopt dat blockchain-technology de macht van de banken en alle overige grote financiële instellingen gaat breken, wat hem ideologisch verwant maakt met aanhangers van de Occupy-beweging. Hoofd van het Delftse Blockchain-Lab, Johan Pouwelse: “We zitten nu wel op de top van die hype, maar in de verre toekomst kijken doen wij hier niet al te veel. Wij gaan met ABN AMRO gewoon iets bouwen wat werkt.”

David Shankbone CC 3.0

Of de bitcoin ten ondergang gedoemd is, daarover valt te twisten, maar in ieder geval heeft deze de techniek van de blockchain blijvend op de kaart gezet. De bitcoin is een virtuele munt die niet door een centrale autoriteit – zoals een bank – in omloop wordt gebracht, maar die door slimme crypto-techniek en een netwerk van gebruikers wordt gewaarborgd. (lees hier over de ups en downs van de bitcoin).

Niet ingehaald

Een wezenlijk onderdeel van zo’n decentrale cybermunt is de blockchain, een keten van bestanden waarvan de integriteit wordt gezekerd door er telkens een hash aan toe te voegen (zie kader ‘Hoe werkt een hash?’). Banken willen weinig van de bitcoin weten, maar zien wel wat in de blockchain-techniek. Vorige week maakten ANB AMRO en het Blockchain-lab van de TU Delft bekend dat ze gaan samenwerken om praktisch bruikbare blockchain-toepassingen te ontwikkelen. Johan Pouwelse, hoofdonderzoeker van het Blockchain-Lab: “De banken willen voorkomen dat ze worden ingehaald door deze ontwikkelingen.”

Blockchain-technologie zou de financiële rompslomp die gepaard gaat met de internationale handel sneller en goedkoper kunnen maken. Met elke container of lading correspondeert dan een blok data dat wordt ingevoegd in een beveiligde keten van data die nooit meer veranderd of vervalst kan worden.

Wikemedia Commons 3.0 Frank Grunwald

Ariën Bikker, woordvoerder van ABN op dit gebied, verwacht dat er over een half jaar met een concrete toepassing geëxperimenteerd kan worden. Hij denkt niet in eerste instantie aan een consumentenproduct: “ABN financiert veel internationale handel. Stel, er gaat een lading graan per schip van Brazilië naar China. Daar zijn veel partijen bij betrokken; er zijn allerlei regels waaraan voldaan moet worden; er moeten veel papieren worden uitgewisseld. Het zou een flinke besparing op kunnen leveren als dat allemaal vanuit dezelfde database gebeurt, waar iedereen bij kan, maar wel op een veilige manier.”

Hash je testament

Een hash wordt al lange tijd gebruikt om de integriteit van data te waarborgen. Hoe werkt dat? Stel, je hebt je testament gedeponeerd bij de notaris, maar wilt niet dat je erfgenamen al te weten komen wat er in staat. Dan moet je vertrouwen op de integriteit van de notaris. Helaas is een van je kleindochters wel erg dik met hem bevriend. Wie garandeert dat die niet met hem onder één hoedje speelt en het testament in haar voordeel laat veranderen? De overige erfgenamen weten van niets, en jij kan niet meer protesteren als het testament geopend wordt.

De oplossing is dat je de hash van het testament berekent, en die alvast aan al je erfgenamen stuurt. De hash verraadt niets van de inhoud van het testament. Maar als de notaris het testament bekendmaakt, kan iedereen opnieuw de hash daarvan bepalen, en als die niet exact hetzelfde is, heeft de notaris aan het testament zitten knoeien.

Helaas is dit een fictief voorbeeld, want het notariaat loopt nu juist niet voorop met zulke slimme digitale technieken. Dit kan immers een flink deel van hun duurbetaalde diensten overbodig maken. Hashen wordt wel al veel gebruikt voor data die over het internet verstuurd worden. Als je behalve een groot bestand, ook de hash ervan verstuurt, kan de ontvanger controleren of er onderweg geen data verloren zijn gegaan. Ook voor data die in de cloud worden bewaard, geeft hashen een verzekering tegen geknoei door derden.

Keten van bestanden

Een blockchain voert dit principe nog een stap verder door. Als verschillende partijen op verschillende tijdstippen bestanden in een database zetten, kan iedere keer als er een bestand bijkomt, de hash berekend worden van het totaal van alle bestanden (inclusief hun hash) tot dan toe. Je kunt dit zien als een keten van bestanden, waarbij de laatste schakel de integriteit van alle eerdere schakels borgt.

Een bankrekening met alle af- en bijschrijvingen is een voor de hand liggend voorbeeld van data die geschikt zijn om te beveiligen als een blockchain. In wezen is dat ook de manier waarop bitcoin verhindert dat iemand dezelfde bitcoin twee keer uitgeeft; het totaal van alle bitcoin-transacties zit in de blockchain, en daar kun je achteraf niets meer aan veranderen.

Schema van een blockchain met vertakkingen, die wordt gewaarborgd door telkens de hash van de data te berekenen. ‘Tx’ staat voor ‘transactie’. Als de blockchain dient om een cybermunt als bitcoin te beveiligen, is een transactie een betaling. Maar een transactie kan ook het downloaden van een contract, of de toegangscode voor een online muziekstuk of een film zijn. De TU Delft heeft sinds 2007 een Blockchain-Lab waar een cybermunt en andere blockchain-toepassingen verder worden ontwikkeld.

Blockchain Lab

Het grote voordeel is dat er geen centrale autoriteit meer nodig is om alle transacties te registreren. De notaris hoeft de testamenten niet meer in een kluis te bewaren, die zet je gewoon in de cloud; bankieren gaat niet meer via de site van de bank maar peer-to-peer.

Maar een nadeel is er ook. In gedecentraliseerde systemen moet een heel netwerk van deelnemers elke transactie bevestigen eer die in de blockchain kan worden opgenomen. Zo kan bitcoin wereldwijd maximaal maar zeven transacties per seconde aan. Pouwelse: “De schaalbaarheid van zulke systemen is een complex probleem. Voor een grote bank praat je over een systeem dat tien- tot twintigduizend transacties per seconde aan moet kunnen.”

Blockchainiacs, mensen die heilig geloven in deze technologie, willen van zo ongeveer elk maatschappelijk verkeer een blockchain maken. Niet alleen geld wordt in hun visie gedecentraliseerd, maar ook de aandelenhandel, verzekeringen, sociale voorzieningen, het crowdfunden van allerlei projecten, en zelfs eigendom. Een auto, bijvoorbeeld, – tegen die tijd natuurlijk zelfrijdend – wordt dan een zelfstandige entiteit die iedereen voor een tijdje kan leasen en die jou geld in rekening brengt om zichzelf in stand te houden. Soms is de link met blockchain ronduit vergezocht. Pouwelse: “Alleen al in de VS is nu ruim een miljard dollar geïnvesteerd in start-ups die iets met blockchain doen. We zitten nu wel op de top van die hype. Maar in de verre toekomst kijken doen wij hier op het Blockchain-Lab niet al te veel. Wij gaan met ABN AMRO gewoon iets bouwen wat werkt.”

Hoe werkt een hash?

Een hashfunctie reduceert een klein of groot digitaal bestand tot één uniek getal, de hash, met een vaste lengte. Er zijn meerdere systemen, maar de vaste lengte is vaak 256 bits; decimaal is dit een getal van 78 cijfers. Dit bestand kan tekst, beeld en/of geluid zijn; in digitale vorm maakt dat niets uit.

Een goede hashfunctie zorgt ervoor dat als je ook maar één bit in het bestand verandert, de nieuwe hash totaal niet lijkt op de oude. Verder moet het in de praktijk onmogelijk zijn om bij een gegeven hash een bestand te construeren dat precies die hash heeft.

Een speeltuin-voorbeeld van een hashfunctie:

We berekenen van een bestand met decimale cijfers een viercijferige hash. Verdeel het bestand in blokjes van vier:

3934 8612 0499 2700 6801

de hash van de eerste twee blokjes, 3934 en 8612, is:

3934 × 8612 + 4393 × 2168 = 43.403.632 => 3632

(vermenigvuldig de getallen, vermenigvuldig ze ook met de cijfers in omgekeerde volgorde, en neem alleen de laatste vier cijfers van de som mee)

De hash van de eerste drie blokjes is de hash van het derde blokje met de eerdere hash:

3632 x 0499 + 2363 × 9940 = 25.300.588 => 0588

enzovoort

Zo kun je eindeloos blokken toevoegen en voor de hele keten één hash berekenen. Dit is de essentie van een blockchain. Je kunt zelf controleren dat als je één cijfer in een van de blokjes wijzigt, vanaf daar elke hash totaal anders wordt. Ook is het – zonder computer – best lastig om bij een gegeven hash, zeg 8976, twee getallen van vier cijfers te vinden die deze hash opleveren.

Echte hashfuncties mixen de bits van een digitaal bestand nog veel grondiger door elkaar. Omdat een echte hash groot is (78 cijfers), kan zelfs een supercomputer bij een gegeven hash geen bestand verzinnen dat precies die hash oplevert; daarvoor moet hij te veel mogelijkheden proberen.

Doordenkertje

Er zijn allerlei websites waar je on line een bestand kunt laten hashen, bijvoorbeeld deze.
Je hebt de keus uit diverse hashfuncties, die op hetzelfde bestand allemaal een compleet verschillende hash geven. Wij kozen sha256, dit geeft een hash van 256 bits, die gepresenteerd wordt als 64 hexadecimale tekens (de cijfers 0 t/m 9, en a=10, b =11,…., f=15, zodat je 16 = 24 mogelijkheden hebt, 4 bits per teken).

: waarom kan onderstaande bewering niet kloppen?
De hash van dit artikel is: 2dd69af37fc5cbd97e6d9820243928165a3f93ee78c6da6a76d8394a25e3d1b4

ReactiesReageer