Bitcoin neomejeno, eden od Bitcoin jedro programske vilice, predstavljene konec leta 2015, so v zadnjih mesecih vzbudile veliko pozornosti. Projekt je dobil podporo za razpršeno moč iz več novih bazenov za rudarjenje Bitcoinov, vključno ViaBTC, GBMiners in BTC.TOP, medtem sprejetje vozlišča zdi se, da je tudi v porastu.
Osrednja ideja Bitcoin Unlimited – navedena v “Predlog za izboljšanje Bitcoin neomejene 001«(BUIP001) – je predaja nadzora nad omejitvijo velikosti blokov Bitcoin uporabnikom in rudarjem. Ali morda natančneje, da bi bil ta nadzor bolj jasen in lažji za uporabo.
Vendar ta nadzor prihaja na račun močnega in avtomatiziranega mehanizma soglasja Bitcoinov. Z BUIP001 obstaja več scenarijev, v katerih se različni uporabniki znajdejo v različnih verigah – bodisi začasno bodisi trajno..
Tu je (verjetno nepopoln) pregled.
(Opomba: Če niste prepričani, kako deluje Bitcoin Unlimited, najprej preberite »Podrobnejši pogled na predlog o nastavljivi velikosti bloka Bitcoin Unlimited«.)
Če ne, vsi preklopijo na Bitcoin Unlimited
Prvi primer je tudi najbolj očiten.
Trenutno se zdi zelo malo verjetno, da bi različne izvedbe Bitcoinov – na primer Bitcoin jedro, Libbitcoin, BTCD ali Bcoin – bo sprejel BUIP001 ali nekaj združljivega. To še posebej velja, ker ekipa Bitcoin Unlimited ni predložila BUIP001 postopku medsebojne implementacije predloga za izboljšanje Bitcoin-a (BIP); večina izvedb zato niti nima obravnavanega predloga.
Če pa vse pomembnejše implementacije Bitcoina ne sprejmejo BUIP001 ali združljive rešitve, se veriga blokov ne more zbližati tako, kot predvidevajo zagovorniki Bitcoin Unlimited. Če večina rudarjev (z zgoščeno močjo) poveča največjo generirano velikost (MG) in prekomerno velikost bloka (EB), da ustvari bloke, večje od enega megabajta, bi se Bitcoin razdelil na dve nezdružljivi mreži in valuti, za razliko od Ethereum in Ethereum Classic.
Ker pa ta delitev ne bi bila usklajena ali ne bi vključevala varnostnih ukrepov, bi bile posledice lahko veliko slabše od delitve med Ethereum in Ethereum Classic.
Uporabniki z enim megabajtom bi imeli neprijetnosti, še bolj pa, če bi njihova hash moč sprva predstavljala manjšo manjšino. To bi vključevalo (veliko) počasnejše potrditve blokov, morda celo do točke, ko njihova veriga postane skoraj neuporabna (vsaj začasno). Poleg tega so v nevarnosti ponovitev napadov če želijo uporabiti tudi »verigo Bitcoin Unlimited«.
Uporabniki Bitcoin Unlimited bi imeli podobne nevšečnosti, čeprav njihove potrditve začetnih blokov ne bi bile tako počasne, saj bi imeli podporo večine hash-power.
V nasprotju s tem pa uporabniki Bitcoin Unlimited ne bi bili prepričani, ali bo “njihova” veriga sploh še obstajala. Če bi veriga z enim megabajtom po dolžini kdaj prehitela »verigo Bitcoin Unlimited« (v resnici: popoln dokaz o delu), bi vozlišča Bitcoin Unlimited samodejno preklopila nazaj na verigo z enim megabajtom. V skladu s tem bi odsvojili (»siroto«) celotno verigo »Bitcoin Unlimited« od razpada, četudi je ta veriga globoka na tisoče blokov. Vse “njihove” transakcije bi bile pozabljene, kar bi marsikoga stalo veliko denarja.
Če lahko skupina trdih zagovornikov in špekulantov z enim megabajtom zdi, da je ta scenarij celo nekoliko verjeten, lahko samoizpolnjujoča se dinamika prerokb predstavlja eksistencialno grožnjo za “Bitcoin Unlimited chain”: nihče ne želi držati vrednosti v verigi, ki bi lahko bila zavrženo.
Če vsi preklopijo na Bitcoin Unlimited
A domnevamo, da gre prehod na BUIP001 nemoteno. Vse pomembne implementacije Bitcoinov sprejmejo nove nastavljive možnosti in vsi uporabniki in rudarji ustrezno posodobijo svojo programsko opremo.
Še enkrat – tudi v tem primeru – ni nobenega tehničnega razloga, da bi se vsi uporabniki smiselno zbližali v eni sami verigi. Različni uporabniki lahko svoja vozlišča konfigurirajo tako, da ostanejo neskladni do konca življenja.
Kot preprost primer lahko manjšina rudarjev tako MG kot EB konfigurira na en megabajt, medtem ko prekomerno globino sprejemljivosti (AD) nastavi na 10.000.000. Z drugimi besedami, ta vozlišča bodo približno dve stoletji posnemala trenutno omejitev velikosti enega megabajta – ne glede na to, kaj počne preostalo omrežje.
Medtem lahko večina rudarjev nastavi MG in EB, da ustvarjajo in sprejemajo bloke do dveh megabajtov.
Zdaj, ko bo en rudar izkopal blok z dvema megabajtoma, bo večina rudarjev zgradila ta blok in razširila to verigo. Manjšina rudarjev pa to verigo praktično za vedno ignorira: natančno tako, kot je opisano v prejšnjem oddelku tega članka.
Vključeval bi tudi enaka tveganja, kot so bila prej opisana. Če veriga z enim megabajtom po dolžini kdaj prehiti verigo z dvema megabajjema, je veriga z dvema megabajtoma popolnoma zavržena. Tudi po tisočih blokih.
Če vsi omejijo AD na štiri potrditve
Uporabniki Bitcoin Unlimited imajo lahko večjo stopnjo konvergence v eni verigi s tehničnimi sredstvi, če ohranjajo svojo nastavitev AD relativno nizko. Privzeta nastavitev v Bitcoin Unlimited je štiri: Čezmerni blok zahteva, da so štirje bloki, ki so izkopani na njem, veljavni.
Toda to predstavlja tudi težave.
Prva težava je, da je tudi pri tej nizki privzeto vsaka transakcija z manj kot petimi potrditvami veliko manj varna kot zdaj. Recimo, da transakcija prikazuje tri potrditve v uporabniški denarnici. Ta uporabnik nikakor ne more vedeti, ali se s konkurenčno (dvojno porabljeno) transakcijo kopa nadomestna veriga blokov, ki ima že štiri potrditve. To se lahko zgodi kadar koli.
Če ta alternativna veriga najprej doseže peto potrditev, se uporabnikova veriga zavrže, njegova dohodna transakcija pa se izgubi – čeprav je imela tri potrditve.
Seveda “osiroteli bloki” že obstajajo in uporabniki, ki potrebujejo več varnosti, bi morali počakati na več potrditev.
Toda brez ogroženih eksotičnih in dragih vrst zlonamernih napadov so trije osiroteli bloki v resnici lahko le naključna naključja. Različne skupine rudarjev morajo po naključju poiskati tri bloke skoraj povsem istočasno, tri ločena in naslednja naključja, da lahko mreža doživi toliko sirot..
Bitcoin Unlimited pa v mešanico vrže nov dejavnik in doda razlog, da omrežje doživi tri osirotele bloke. Rudarji ne tekmujejo le za podaljšanje najdaljše veljavne verige, ampak tudi glasujejo o protokolarnih pravilih med verigami. Ta postopek bi bil tudi viden in povsem predvidljiv za napadalce, zato ga je mogoče zlahka izkoristiti.
Druga težava je, da je treba zaradi varnostnih razlogov ohraniti AD privzeto za štiri potrditve, kar v bistvu premaga namen BUIP001. Medtem ko naj bi Bitcoin Unlimited nadzor nad omejitvijo velikosti bloka preusmeril na uporabnike in (vse) rudarje, nizke ravni AD zagotavljajo, da lahko tudi najmanjša večina rudarjev vedno preglasi lokalne nastavitve velikosti bloka s preprostim rudarjenjem večjih blokov. Zaradi tega sta MG in EB nesmiselna za vse ostale: “placebo kontrole.”
Dejansko AD ponuja nenavadno izbiro: bodisi vozlišča in rudarji postavljajo visoko AD za relativno avtonomijo, vendar tvegajo razdelitev omrežja s potencialno škodljivimi posledicami; ali ta vozlišča in rudarji izberejo nizek AD za izboljšanje stopnje konvergence – vendar le zato, ker se dejansko odpovedo nadzoru večini rudarjev. (In če naj bi se večini rudarjev odpovedali nadzoru, je na voljo več neposrednih rešitev.)
Pod kontradiktornimi pogoji
Stvari se v kontradiktornih razmerah poslabšajo.
Če vsi ne želijo najboljšega za Bitcoin in namesto tega nekateri subjekti – iz kakršnega koli razloga – raje vidijo, da Bitcoin propade, varnostne predpostavke BUIP001 še poslabšajo. In kolikor več sredstev ima na voljo nasprotnik, da povzroči pretres, slabši bi bil konvergenčni mehanizem Bitcoin Unlimited.
Najprej se signalizacija vozlišč trivialno prevara. Vsakdo, ki ima vire za zavijanje “ponarejenih” (ekonomsko nepomembnih) vozlišč, se lahko pretvarja, da obstaja široka uporabniška podpora za določeno mejno velikost bloka, v resnici pa je ni. Če rudarji upoštevajo te signale, lahko verigo razcepijo z manj uporabniške podpore, kot je bilo pričakovano.
Poleg tega lahko zlonamerni rudar pogosto razdeli omrežje. Tak rudar bi lahko spremljal ravni EB, ki jih signalizirajo drugi rudarji (kar ni tako enostavno zavajati), in namerno miniral blok, ki spada ravno med tisto, kar bodo sprejeli ti rudarji. Če kakih 50 odstotkov razpršene moči sprejme bloke do dveh megabajtov, preostalih 50 odstotkov pa podpira večje bloke, bi blok z 2,01 megabajta ignoriral prvih 50 odstotkov, ostalih 50 odstotkov pa bi ga sprejel..
Ob predpostavki, da se ohrani privzeti AD štirih, se veriga lahko razcepi več kot uro. Kot je bilo pojasnjeno v prejšnjem oddelku, bi bila mreža Bitcoin v tem obdobju zelo nezanesljiva, saj lahko verigo na obeh straneh razdelka zavržemo.
Nasprotnik, ki nadzoruje le 0,7 odstotka globalne razpršene moči, bi lahko povzročil to raven pretresov približno enkrat na dan. In razen če se velika večina rudarjev že tako ali tako ne strinja s svojim EB, bi morala ta sladka točka za zlorabo omrežja vedno obstajati.
Poleg tega bi kot rezultat tega napada polovica rudarjev dosegla prag AD in odprla svoja “lepljiva vrata”. To lahko omogoči drugi val napadov. Zlonamerni rudar ima zdaj približno 24 ur časa, da izkoplje še večji blok, ki bi ga – ironično – sprejela le sprva manjša blokasta stran verige, ker so njihova lepljiva vrata odprta, prvotno večja blokasta stran verige pa bi zavrni. To bi ustvarilo še en razkol.
Nazadnje, če in ko ta nova “lepljiva veriga vrat” doseže prage AD preostalih vozlišč, vse lepljiva vrata so odprta in velikost bloka sploh ni omejena. Zdaj lahko nasprotnik mine tako velike bloke Drobec verige, saj je ne morejo slediti vsa vozlišča – morda zaradi omejitev pasovne širine, zakasnitve ali drugih strojnih omejitev.
Nujno soglasje
Čeprav Bitcoin Unlimited uporabnikom nedvomno ponuja več osebne avtonomije, ne zagotavlja tehnične konvergence verig blokov. A to ni novo. Do neke mere se ga celo dotakne Bitcoin Unlimited Pogosta vprašanja.
Vendar zagovorniki Bitcoin Unlimited pričakujejo, da se bodo uporabniki zbližali na enem bloku. To je razloženo s tem, kar je mogoče najbolje šteti za osnovno filozofijo Bitcoin Unlimited: “Emergent Consensus.”
Namesto zgolj tehničnega mehanizma je Emergent Consensus prepričanje, da imajo vsi udeleženci v Bitcoin ekosistemu dovolj močno (ekonomsko) spodbudo, da najdejo soglasje o enem bloku, tudi če njihova programska oprema tega ne naredi samodejno..
Naslednji članek bo podrobneje preučil to filozofijo nastajajočega konsenza.
Opomba avtorja: Ta članek ni popoln pregled vseh težav, ki bi lahko nastale zaradi BUIP001. Najpomembneje pa je, da ignorira kompromise in slabosti, ki izhajajo iz same prevelike (ali plavajoče) omejitve velikosti bloka, kot je vozlišče centralizacija, rudar centralizacija, ali pristojbina ekonomija, namesto tega se osredotočiti na (pomanjkanje) konvergence verig blokov.
K temu članku je prispeval »Jonny1000«.