søndag 28. juli 2019

Endring av historia i Bitcoin

Vekslingstenesta Binance vart utsett for svindel og mista ca. 7000 bitcoin ($40 mill. i starten av mai, verdt rundt $70 mill. med dagens kurs). I motsetnad til Bitcoin Norway og ei rekkje andre vekslingstenester, har Binance djupe lommer og sikringsfondet deira dekka alle tap. Det spesielle med svindelen var at eigaren CZ (Changpeng Zhao) lufta tanken om ei omgjering av transaksjonen. I Bitcoin-leiren er det som å banna i kyrkja.

Men tanken opnar for ein del interessante refleksjonar. Det som høyrdest ut som ei relativt lett omskriving av historia, er i realiteten veldig vanskeleg å gjennomføra takka vera Bitcoin sin konstruksjon. Og det er først og fremst kombinasjonen av "proof of work" og spelteori som er sikringsmekanismane. Bitcoin er konstruert slik at det skal vera svært vanskeleg å endra historia, og slik sett konstruert for å sikra status quo.

Ei omgjering av tjuveriet ville vore vanskeleg av fleire grunnar:

1. Energiinnsatsen nødvendig
Ei omgjering av tjuveriet måtte teknisk sett ha vorte omgjort ved hjelp av eit 51%-angrep og "double spending". Gravarane måtte ha gått tilbake til den opprinnlege blokka der tjuveritransaksjonen var gjort, og gjort om att denne transaksjonen og gjennom dobbel bruk sendt bitcoin til ei anna adresse. CZ ville at bitcoin skulle "brennast", dvs. sendast til ei adresse som det ikkje var muleg å henta dei tilbake frå, ev. delast mellom gravarane. I begge tilfella måtte kjeda "rekkjast opp" tilbake til utgangsblokka og energiinnsats brukast på nytt til å laga nye blokker. Det ville i praksis bli dobbel energiinnsats for gravarane med usikker kompensasjon.

2. Tid er pengar!
Til lenger tid det ville gått før reorganisering, til vanskelegare ville det bli fordi bitcoin som vart stolne ville vore omsette gjennom fleire ledd, og folk som hadde handla desse bitcoina i god tru, ville ha mista dei att.

Ein viktig grunn til at omgjering av transaksjonar er vanskelegare i Bitcoin enn t.d. i Ethereum, er at transaksjonar i Bitcoin er baserte på UXO (Unspent Transaction Outpus), medan Ethereum opererer med saldoprinsipp meir på linje med vanlege banksystem. I eit UTXO-system er det ingen saldo pr. brukar/konto, den må lagast ved å gå gjennom alle ubrukte transaksjonar (UTXO) for ei gitt adresse.

3. Mottrekk frå "tjuven"
Tjuven kunne vore smart og lova ein dusør til gravarane som heldt seg rolege og ikkje deltok i reorganiseringa. Han kunne ha sloppe unna med langt mindre bestikkelse enn kostnaden med reorganiseringa ville vore. Det er her spelteorien kjem til syne.

4. Brukarane kunne ha nekta reorganisering
Eit anna spelteori-scenario er at brukarane kunne ha nekta å bli med på reoganiseringa gjennom ei såkalla brukarstyrt mjuk splitting (User-activated soft-fork - UASF). Det ville garantert vore brukarane som ville mislika sterkt eit forsøk på reorganisering av blokkjeda frå gravarane si side, og som ville ha lansert ei endring av programvara som eit mottiltak mot endringane.

5. Forsøk på svartelisting av adresser
Eit forsøk på svartelisting av adressa/adressene brukte av tjuven, ville også vore vanskeleg å gjennomføra, enten det vart gjort på gravar-nivå eller på protokoll-nivå. Det ville også ha opna for uføresette hendingar i framtida. Dersom det i det heile ville vorte gjort, ville det fort vorte eit massivt krav frå styresmakter og andre om å svartelista ei lang rekkje adresser. Som Andreas Antonopoulos & co. i "Let's Talk Bitcoin!" uttrykkjer det:

Availability -> Responsibility -> Liabililty

Med ein gang du gjer endringar muleg, får du med eitt eit stort ansvar og blir til slutt stilt ansvarleg for å gjera tilsvarande endringar seinare.

Alt i alt ville ei reorganisering vore utenkjeleg, og det er veldig merkeleg at ein så opplyst person som CZ i det heile lufta dette som muleg. Bitcoin er konstruert for å bevara historia som den er, og gjera det svært vanskeleg å gå tilbake og endra. Her kjem PoW sin styrke til syne, saman med spelteori der ulike aktørar har mange mulege mottiltak mot eit forsøk på reorganisering. Til samanlikning ville det vore mykje lettare å gjera dette i ei blokkjede med ein annan konsensusmetode, t.d. Proof of Stake.

Dette blogginnlegget er basert på episode #399 av "Let's Talk Bitcoin!", med Adam B. Levine, Stephanie Murpy og Andreas M. Antonopoulos.

Ingen kommentarer:

Legg inn en kommentar