Lohkoketju fiksuille ihmisille*

*Jotka putoavat kärryiltä jonkun mainitessa sanan “lohkoketju”

Lohkoketju yhdellä silmäyksellä

Blockchain eli lohkoketju on nimitys teknologialle, joka otettiin ensimmäisen kerran käyttöön vuonna 2009 ja joka tunnetaan parhaiten sen käytöstä kryptovaluutan yhteydessä. Lohkoketjusta on tullut laajalti käytetty tekniikka, joka on mullistanut nopeasti niinkin monipuolisia aloja kuin kyberturvallisuus, vaalit, kiinteistöt, analytiikka sekä kimppakyydit.

Kryptovaluuttaa varten lohkoketju toimii yleisenä julkisena pääkirjana ja turvallisena menetelmänä vertaisverkkokauppojen kirjaamisessa, tehden niistä julkisesti todennettavia. Lohkoketju ei luota viranomaisiin ja, mikä tärkeintä, se tekee päällekkäisen kuluttamisen sekä väärentämisen mahdottomiksi. Teoriassa päällekkäinen kuluttaminen ja väärentäminen ovat mahdollisia, mutta niiden onnistumiseen vaadittava aika olisi pidempi kuin maailmankaikkeuden nykyinen ikä.

Lohkoketjuteknologian perusteellinen selittäminen tämän artikkelin sallimassa kokorajoituksessa olisi vieläkin mahdottomampaa! Sen sijaan selitämme muutamia peruskäsitteitä liittyen siihen, kuinka Scrive käyttää lohkoketjua. Teknisestä osaamisestasi riippuen seuraava on joko korkean tason simäys tai rakeisen syvä sukellus tähän aiheeseen.

Miksi Scrive käyttää lohkoketjua

Scrive takaa asiakirjallesi eheyden sinetöimällä sen digitaalisella allekirjoituksella. Lohkoketjuteknologia tarjoaa digitaalisen allekirjoittamisen turvaamismenetelmän tekemällä siitä pysyvän, todennettavissa olevan julkisen tietueen. Tämä tarkoittaa sitä, että kiistatapauksissa voit todistaa, että asiakirjasi:

  • on pysynyt muuttumattomana
  • ei ole väärennetty
  • on luotu tarkalleen samana päivänä ja samaan aikaan kuin mikä käy ilmi digitaalisesta allekirjoituksesta

Kryptografinen hajautus

Mistä tahansa digitaalisesta tiedostosta on mahdollista luoda ainutlaatuinen, väärentämiseltä suojattu sormenjälki. Tämä tapahtuu käyttämällä binääritietoihin algoritmia. Lopputuloksena saatava sormenjälki on arvo, jota kutsutaan kryptografiseksi hajautukseksi.

Esimerkki hyvin yksinkertaisesta hajautustoiminnosta:

  • käytä joka toista kirjainta
  • hajautuksessa enintään 6 kirjainta
  • täytä tarvittaessa välilyönnit X-kirjaimella

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

Mahdolliset kirjainyhdistelmät huomioonottaen tämä algoritmi ei pystyisi luomaan todella ainutlaatuisia sormenjälkiä näille tekstiketjuille. On kuitenkin olemassa huomattavasti hienostuneempiakin tapoja toteuttaa tämä. Voit käyttää binääristä kirjainten esittelyä ja valita käyttöösi paljon mielenkiintoisempiakin toimintoja kuin “joka toinen kirjain”. Kun otetaan huomioon, että yksinkertainen 100 Kb:n tiedosto voidaan esittää 800 000 -numeroisena, lukuja 1 ja 0 sisältävänä merkkijonona, ei ole lainkaan yllättävää, että ihmiset tekevät tohtorintutkinnon tasoisia projekteja hajautustoiminnoista.

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.

Merkle-puu

Useiden tiedostojen eheyden turvaamiseksi voit sisällyttää niiden hajautusarvot Merkle-puuna tunnettuun tietueeseen. Puukaaviossa jokainen hajautus on oma solmunsa.

Jokainen Merkle-puun lehti (solmut puun alimmalla tasolla) on hajautus, joka edustaa digitaalista tiedostoa (ei itse tiedostoa). Voit yhdistää kahden vierekkäisen lehden hajautukset (Hash G ja Hash H) ja käyttää samaa hajautusfunktiota (SHA-256-algoritmi) laskeaksesi kolmannen hajautusarvon, luomalla solmun yhden tason ylemmäksi puussa (Hash C). Jatkamalla tätä prosessia kulkien puussa ylöspäin voit laskea huipputason hajautuksen (Top).

Kaikki puun solmut (niin lehdet kuin keskitason hajautusarvotkin) ovat suhteessa toisiinsa siten, että niistä voi laskea oikean huipputason arvon, mikäli kaikki puun sisältämät hajautukset ovat oikeat. Tämä tarkoittaa sitä, ettei niitä ole muutettu tai väärennetty. Tämä laskentamenetelmä tekee väärentämisen mahdottomaksi, sillä jos yhtäkään hajautusta on muutettu, sitä ei pysty kompensoimaan muuttamalla jotakin toista puun sisältämää hajautusta, saavuttaakseen lopulta oikean huipputason hajautuksen.

Mikäli asiakirjasi on kaavion kohdassa Hash G, tarvitsisit myös arvot Hash H, Hash D ja Hash B päästäksesi laskemaan Top-arvon.

Lohkoketju: turvallista tallennusta

Lohkoketju on tehokas ja turvallinen tapa tallentaa useampien Merkle-puiden tietueita. Lohkoketjua voi ajatella tietokantana. Toisin kuin useimmat tavanomaiset tietokannat, joiden taulukot koostuvat sarakkeista ja riveistä, lohkoketju koostuu peräkkäisistä lohkoista, jotka linkittyvät toisiinsa turvallisesti kryptografian avulla. Ainoa ero on siinä, ettei turvallisuus riipu käyttöoikeuksista, vaan sen sijaan tiedot varmennetaan itsenäisesti.

Useimmissa tavanomaisissa tietokannoissa on neljän tyyppisiä toimintoja, jotka voit suorittaa: luominen, lukeminen, päivittäminen ja poistaminen (CRUD), mutta lohkoketjussa on mahdollista ainoastaan luoda ja lukea. Uuden datan luomiseksi ketjuun lisätään lohko siten, että ketjun viimeinen lohko on uusin. Kun ketjuun lisätään uusi lohko, samalla useampi toisistaan riippumaton osapuoli vahvistaa ketjua suojaten sen petoksilta.

KSI-lohkoketju on itse asiassa yksi suuri, jatkuvasti kasvava Merkle-puu. Jokainen lohko on hajautusarvo, joka linkittyy edelliseen lohkoon siten, että jos ketjun tietuetta muutetaan, myöhemmin lisättyjen lohkojen hajautusarvoja olisi mahdotonta voida laskea oikein.

Uuden datan lisääminen lohkoketjuun tarkoittaa siis samaa kuin uuden solmun luominen Merkle-puuhun. Merkle-puun (jota ei ole vielä yhdistetty lohkoketjuun) juuren sisältämä hajautus yhdistetään edellisen lohkon hajautukseen. Seuraavaksi käytetään jälleen samaa hajautusfunktiota (SHA-256-algoritmi), jonka avulla lasketaan uuden lohkon sisältämä hajautus. Viimeisin lohko on näin ollen ketjutettu murtamattomasti edelliseen lohkoon, kuten myös juuri lohkoketjuun lisättyyn Merkle-puuhun.

Palataksemme vielä kryptovaluuttaa koskevaan esimerkkiin, jokainen Merkle-puun lehti sisältää pääkirjatiedot. Koska pääkirja on julkinen ja mahdoton muuttaa, kuka tahansa voi laskea yksittäisen tilin saldon, mutta kukaan ei voi mielivaltaisesti muuttaa saldoa.

Asiakirjan todennus

Scrive-asiakirjan sinetöinnin ja todentamisen yhteydessä Guardtime julkaisee säännöllisin väliajoin (kerran kuukaudessa) jatkuvasti kasvavan Merkle-puun huipputason hajautuksen. Tämä hajautus linkittyy kaikkien edellisen kuukauden aikana allekirjoitettujen ja sinetöityjen Scrive-asiakirjojen hajautuksiin.

Vahvistaakseen uuden lohkon, Guardtime julkaisee hajautuksen Financial Times -sanomalehdessä, joka täyttää “laajalti todistetun tiedotusvälineen” lailliset standardit. Toisin sanoen hajautus tulee julkiseen tietueeseen. Yhden Merkle-puun yksittäisen lehden muuttaminen rikkoisi lohkoketjun. Hajautuksen julkaiseminen Financial Times -lehdessä on keino minkä tahansa lohkon arvon tarkastamiseen, Scrivesta tai Guardtimesta riippumatta.

Julkaisun yhteydessä kaikki uuden hajautuksen sisältämät Scrive-asiakirjat sinetöidään toistamiseen. Toinen sinetöinti sisältää reitin puun latvaan, toisin sanoen keskitason hajautusarvoihin, joita tarvittaisiin julkaistun hajautuksen uudelleen laskemiseen.

Vahvistaminen vaatii sinetöidyn asiakirjan sekä pääsyn Financial Times -lehden julkaisemaan hajautukseen. Tämä prosessi olisi seuraavanlainen:

  • Asiakirjan hajautuksen uudelleen laskeminen.
  • Merkle-puun uudelleen luominen sinetin sisältämiä tietoja käyttäen.
  • Huipputason hajautuksen vertaaminen Financial Times -lehden julkaisemaan hajautukseen.

Eikä siinä vielä kaikki

Koska lohkoketjujen sovellukset, toteutukset sekä uudet teknologiset kehitykset ovat erilaisia, näille aiheille löytyy mitä todennäköisimmin erilaisia selityksiä. Lohkoketjuteknologian ymmärtämiseen ei ole olemassa nopeaa ja helppoa tietä, ja useimmat meistä eivät tule koskaan ymmärtämään sen hienoimpia yksityiskohtia. Jos siis olet kiinnostunut aiheesta, suo sille hieman aikaa tutkien asiaa useammasta lähteestä.