Blockchain voor slimme mensen*

*Wie zich een dummie voelt als iemand het woord blockchain gebruikt.

Blockchain in een notedop

Blockchain is de term voor een technologie die voor het eerst werd geïmplementeerd in 2009 en vooral bekend is vanwege het gebruik ervan met cryptovaluta (bijvoorbeeld de Bitcoin). Blockchain is inmiddels een technologie die wereldwijd gebruikt wordt in verschillende sectoren, zoals IT-beveiliging, verkiezingen, onroerend goed, analyse en ridesharing (bijvoorbeeld Uber).

Bij het gebruik van cryptovaluta fungeert een blockchain als een openbaar grootboek, een veilige methode voor het registreren transacties en deze openbaar controleerbaar maken. Blockchain is onafhankelijk van een centrale autoriteit en bovendien maakt het dubbele uitgaven en vervalsing onmogelijk. Theoretisch zijn dubbele uitgaven en vervalsing mogelijk in Blockchain, maar de benodigde tijd is langer dan de huidige leeftijd van het heelal.

De blockchain-technologie in dit artikel helemaal uitleggen zou zelfs nóg onmogelijker zijn! In plaats daarvan zullen we met een aantal basisprincipes uitleggen hoe Scrive blockchain gebruikt. Afhankelijk van hoe ervaren u bent in de wereld van de technologie, is het volgende ofwel een tipje van de sluier ofwel een diepe duik.

Waarom Scrive blockchain gebruikt

Scrive garandeert de integriteit van uw document door het te verzegelen met een digitale handtekening. De blockchain-technologie biedt een methode voor het beveiligen van de digitale handtekening door deze in een permanent, verifieerbaar openbaar bestand in te voeren. Dit betekent dat u in geval van een geschil kunt bewijzen dat uw document:

  • niet is gewijzigd
  • niet is vervalst
  • is gemaakt op de exacte datum en tijd, zoals aangegeven wordt door de digitale handtekening

Cryptografische hash

Het is mogelijk om een unieke vingerafdruk van elk digitaal bestand te maken door een algoritme op de binaire gegevens toe te passen. Deze unieke vingerafdruk noemen we een cryptografische hash, oftewel een versleutelde reeks cijfers en/of letters.

Een voorbeeld van een zeer eenvoudige hashfunctie:

  • gebruik elke tweede letter
  • maximaal 6 letters in de hash
  • Vul indien nodig spaties in met X

Blockchain –> BOKHIX
To be, or not to be, that is the question –> TBONTO

Given the possible combinations of letters, this algorithm would fail to create truly unique fingerprints for these text chains. However, there are much more sophisticated ways of doing it. You could use binary representation of letters and apply functions far more interesting than “every other letter”. Considering that a simple file of 100 Kb can be represented by an 800,000-digit string of 1’s and 0’s, it’s no surprise that people do PhD projects on hashing functions.

In the case of a Scrive document, the file is a PDF of the electronically signed document, the Evidence Package and any attachments. To seal an electronically signed document, Scrive uses the SHA-256 algorithm, which makes it impossible to generate an identical hash from any other document or file. And the nature of a cryptographic hash is such that it’s impossible to use it to re-create the document’s content. The hash is then submitted to Scrive’s supplier and partner Guardtime.

Hash-boom of Merkle-boom

Om de integriteit van meerdere bestanden te beveiligen, kunt u de hash-waarden van deze bestanden opnemen in een structuur die een hash-boom of Merkle-boom wordt genoemd. Elke hash is een knooppunt in de boomstructuur.

Elk van de takken (de knooppunten op het laagste niveau van de boom) is een hash die een digitaal bestand vertegenwoordigt (niet het bestand zelf). U kunt de hashes van twee aangrenzende takken (Hash G en Hash H) combineren en dezelfde hash-functie (het SHA-256-algoritme) gebruiken om een derde hash-waarde te berekenen, waardoor een knooppunt een niveau hoger op de boom ontstaat (Hash C). Door dit proces in de structuur voort te zetten, kunt u de hash op het hoogste niveau berekenen (Top).

Alle knooppunten in de boom (zowel de takken als de tussenliggende hash-waarden) zijn op zo’n manier aan elkaar verbonden dat u alleen de juiste hoogste niveauwaarde kunt berekenen als alle hashes in de boom correct zijn. Dat betekent: ze zijn niet gewijzigd of vervalst. Deze berekeningsmethode maakt vervalsing onmogelijk. Wanneer een enkele hash namelijk wordt gewijzigd, kunt u dit niet compenseren door een andere hash in de boom te wijzigen om bij de juiste hash op het hoogste niveau te komen.

Als uw document wordt weergegeven door Hash G in het diagram, dan hebt u dus de waarden voor Hash H, Hash D en Hash B nodig om de Top te berekenen.

Blockchain: veilige opslag

Een blockchain is een efficiënte en veilige manier om de gegevens van meerdere Merkle-bomen op te slaan. U kunt een blockchain beschouwen als een database. Er zijn echter twee verschillen. In tegenstelling tot de meeste conventionele databases, die bestaan uit tabellen met kolommen en rijen, bestaat een blockchain uit opeenvolgende blokken die veilig met elkaar zijn verbonden met behulp van cryptografie. Een ander verschil is dat de beveiliging niet afhankelijk is van toegangsmachtigingen; in plaats daarvan worden de gegevens onafhankelijk gecontroleerd.

In de meeste conventionele databases zijn er vier soorten acties die u kunt uitvoeren: maken, lezen, bewerken en verwijderen. Maar met blockchain is het alleen mogelijk om te maken en te lezen. Om nieuwe gegevens te maken, wordt een nieuw blok aan de keten toegevoegd, dus het laatste blok in de keten is het meest recente. Elk nieuw blok dat wordt toegevoegd, wordt gecontroleerd door meerdere onafhankelijke partijen om fraude te voorkomen.

Een KSI-blockchain is eigenlijk één grote, continue groeiende Merkle-boom. Elk blok is een hash-waarde, die gekoppeld is aan het vorige blok. Dit gebeurt zodanig, dat als er gegevens in het keten zouden worden gewijzigd, het onmogelijk zou zijn om de hash-waarden van de later toegevoegde blokken correct te berekenen.

Het toevoegen van nieuwe gegevens aan de blockchain is hetzelfde als het maken van een nieuwe tak in een hash-boom. De hash van de wortel van een hash-boom (die nog niet is verbonden met de blockchain) wordt gecombineerd met de hash van het vorige blok. Vervolgens gebruikt u dezelfde hashfunctie (het SHA-256-algoritme) om de hash van de nieuwe tak te berekenen. De nieuwste tak is onbreekbaar geketend aan de vorige tak en aan de hash-boom die zojuist is toegevoegd aan de blockchain.

Terugkerend naar het voorbeeld van cryptovaluta, bevat elk van de takken in de Merkle-boom grootboekinformatie. Omdat het grootboek openbaar en onveranderlijk is, kan iedereen het saldo van een individuele rekening berekenen en kan niemand willekeurig een saldo wijzigen.

Documentverificatie

In het geval van het verzegelen en verifiëren van een Scrive-document, publiceert Guardtime periodiek (eenmaal per maand) de hash van het hoogste niveau van de continu groeiende Merkle-boom. Deze hash is gekoppeld aan de hashes van alle Scrive-documenten die in de voorgaande maand zijn ondertekend en verzegeld.

Om het nieuwe blok te valideren, publiceert Guardtime de hash in de krant “Financial Times”, die voldoet aan de wettelijke norm van ‘veel geziene media’. In principe is de hash daarmee openbaar gemaakt. De wijziging van een enkele tak van één hash-boom zou namelijk de blockchain breken. Het publiceren van de hash in Financial Times is een manier om de correctheid van dit nieuwe blok onafhankelijk van Scrive of Guardtime te verifiëren.

Na deze publicatie worden alle Scrive-documenten die te maken hebben met de nieuwe hash voor een tweede keer verzegeld. De tweede verzegeling biedt een weg naar de bovenkant van de boom, d.w.z. de tussenliggende hash-waarden die u nodig zou hebben om de gepubliceerde hash opnieuw te berekenen.

Verificatie vereist alleen het verzegelde document en toegang tot de hash die is gepubliceerd in de Financial Times. Het proces zou als volgt zijn:

  • Bereken de hash van het document opnieuw.
  • Genereer de Merkle-boom opnieuw met behulp van de informatie in de verzegeling.
  • Vergelijk de hash op het hoogste niveau met de hash die is gepubliceerd in de Financial Times.

Niet het einde

Gezien de verscheidenheid aan blockchain-toepassingen, implementaties en nieuwe ontwikkelingen in de technologie, vindt u waarschijnlijk een verscheidenheid aan verklaringen voor deze onderwerpen. Er is geen snelle en gemakkelijke manier om blockchain-technologie te begrijpen en de meesten van ons zullen de exacte details nooit begrijpen. Dus als u geïnteresseerd bent, neem dan de tijd en raadpleeg meerdere bronnen.