Dokaz koji nitko ne zna verificirati
Ancoriranje hasha na lanac posao je jednog poslijepodneva. Ono što odlučuje je li išta vrijedilo jest put verifikacije: tko provjerava, s čime u rukama, za pet godina.
Ancoriranje decision ledgera na javni lanac postalo je gotovo trivijalna vježba. Uzmeš događaje, izgradiš Merkle stablo, upišeš root u transakciju. Jedno poslijepodne posla, jedan redak u changelogu, i od tog trenutka sustav "je ancoriran". Polovica koju gotovo nitko ne projektira s jednakom pažnjom dolazi kasnije: netko izvan tvrtke mora moći provjeriti jednu konkretnu tvrdnju bez da vjeruje tebi.
Četiri stvari, i moraju postojati zajedno
Verifikacija nije tvrdnja, nego račun koji netko drugi ponovi. Da bi se taj račun mogao napraviti, trebaju četiri elementa, a ključna riječ je zajedno.
Izvorni entry, bajt po bajt kakav je bio kad je hashiran. Ne zapis ponovno pročitan iz baze i reserijaliziran novijom verzijom aplikacije: to proizvodi drugačiji hash, a drugačiji hash ne razlikuje se od manipulacije.
Inclusion proof za taj entry — put susjednih čvorova od lista do roota. Mora biti pohranjen, ili ga mora moći regenerirati svatko tko ima ledger, ne samo interni tool koji vrti na jednom računalu u timu.
Root, na visini bloka koju se može imenovati. "Na lancu je" nije koordinata; broj bloka i hash transakcije jesu.
I način čitanja tog lanca koji nije tvoj API. To je točka koja najčešće pukne. Ako revizor mora zvati tvoj server da bi provjerio tvoju tvrdnju, opet vjeruje tebi — samo kroz druga vrata i s više dijelova u sredini. Treba javni node, nezavisni explorer, nešto što ti ne kontroliraš.
Načini na koje se gubi su dosadni
Nijedan od tih kvarova nije dramatičan, i upravo zato prolaze nezapaženo do krivog trenutka.
Entry se reserijalizira nakon refactoringa i hash se pomakne. Proof generira skripta koja postoji samo u mapi onoga tko ju je napisao. Root stoji na lancu koji tim više ne financira, ili na testnetu koji je u nekom trenutku ugašen. Aplikacija koja je proizvodila log se ugasi i sa sobom odnese jedini dio sposoban išta dokazati.
U svim tim slučajevima podatak je još tu. Nestao je put verifikacije, a bez njega ancoriranje je potvrda koju si sam sebi napisao.
Verifier je deliverable
Praktična posljedica, za svakoga tko gradi ovakve sustave, jest da verifier nije dodatak koji se ubaci ako ostane vremena. To je dio isporuke: zamrznut i verzioniran format serijalizacije, proofovi koji se mogu izvesti, on-chain koordinate spremljene uz zapis, i alat za verifikaciju koji radi izvan tvog perimetra — idealno nešto što revizor može pokrenuti sam.
Za tvrtke u regiji zaključak je vrlo konkretan. Revizor, banka ili strani partner ne traže povjerenje, traže dokaz koji stoji i kad tebe nema u sobi. Regulative za sustave visokog rizika traže zapise koji ostaju upotrebljivi kroz vrijeme, ne samo jednom upisani. Zapis koji nitko više ne zna otvoriti zadovoljava slovo i promašuje smisao.
Projektno pitanje, dakle, nikad nije bilo "što ancoriramo". Nego tko će verificirati, s čime u rukama, i radi li taj put i dalje kad tvoje tvrtke nema u sobi.
Da te revizor danas pita, bi li mogao verificirati jedan entry bez tebe?