Decentralizacija, n. Predpostavka varnosti, da se devetnajstletnik v Hangzhouu in nekdo, ki je morda v Veliki Britaniji in se morda še ni odločil za medsebojno dogovarjanje.
V zadnjem tednu je prišlo do velikega razburjenja glede vprašanja centralizacije rudarjenja v Bitcoin omrežju. Videli smo en sam rudarski bazen, GHash.io, ki je več ur zbral več kot 45 heš-moči in v nekem trenutku celo zrasel in postal 51 celotne mreže. Celotna prva stran Bitcoin reddita je gorela v intenzivni razpravi in redkem spopadu samozadovoljstva in strahu, rudarji so se hitro mobilizirali, da bi odvzeli svojo moč z GHash-a, in presenetljivo pametne strategije so bile uporabljene, da bi vzpostavili ravnovesje med različnimi bazeni. , vključno z enim rudarjem z rudarjenjem »med 50 TH / s in 2 PH / s« na GHash, vendar zavrnitev posredovanja veljavnih blokov, v bistvu sabotiral vse mine v bazenu do stopnje do 4. Zdaj se je situacija nekoliko umirila, z GHash do 35 omrežnih moči in drugouvrščeni, Discus Fish, do 16 let in verjetno bo stanje ostalo vsaj kratek čas, preden se bodo stvari spet segrele. Je težava rešena? Seveda ne. Ali je težavo mogoče rešiti? To bo glavna tema tega prispevka.
Bitcoin rudarstvo
Najprej razumejmo težavo. Namen rudarjenja Bitcoinov je ustvariti decentraliziran sistem časovnega označevanja z uporabo mehanizma večinskega glasovanja, da se ugotovi, v kakšnem vrstnem redu so nekatere transakcije prišle kot rešitev problema dvojne porabe. Težavo z dvojno porabo je enostavno razložiti: če pošljem transakcijo, v kateri pošljem svojih 100 BTC, in nato en dan kasneje pošljem transakcijo, v kateri pošljem istih 100 BTC, obe transakciji očitno ne moreta hkrati obdelati. Zato mora eden od obeh “zmagati”, in intuitivno pravilna transakcija, ki bi morala dobiti to čast, je tista, ki je bila prva. Vendar transakcije ni mogoče pogledati in kriptografsko določiti, kdaj je bila ustvarjena. Tu vstopi rudarstvo Bitcoinov.
Bitcoin rudarstvo deluje tako, da vozlišča, imenovana “rudarji”, združujejo nedavne transakcije in proizvajajo pakete, imenovane “bloki”. Da je blok veljaven, morajo biti veljavne vse transakcije, ki jih vsebuje, “usmeriti mora” (tj. Vsebovati razpršitev) prejšnjega veljavnega bloka in mora izpolnjevati “dokaz o stanju dela” ( in sicer SHA2562 (block_header) <= 2190, tj. dvojno razpršitev glave bloka se mora začeti z velikim številom ničel). Ker je SHA256 psevdonaključna funkcija, je edini način za izdelavo takšnih blokov večkratni poskus, da bi jih ustvarili, dokler eden ne izpolni pogoja. “Cilj” 2190 je prilagodljiv parameter; samodejno se prilagodi tako, da mora povprečno celotno omrežje delovati deset minut, preden se enemu vozlišču posreči in uspe; ko se to zgodi, na novo proizvedeni blok postane “zadnji” blok in vsi začnejo poskušati izkopati blok, ki kaže na ta blok kot na prejšnji blok. Ta postopek, ki se ponavlja vsakih deset minut, predstavlja primarno delovanje Bitcoin omrežja in ustvarja vedno daljšo verigo blokov (“blockchain”), ki po vrsti vsebuje vse transakcije, ki so se kdajkoli zgodile.
Če vozlišče vidi dve ali več konkurenčnih verig, šteje tisto, ki je najdaljša, tj. tisti, ki ima za seboj največ dokazov o delu, da bi bil veljaven. Če sčasoma igrata dve ali več verig, lahko vidimo, kako je veriga z več računsko močjo na koncu zagotovljena, da bo zmagala; zato lahko sistem opišemo kot “en cikel procesorja, en glas”. Vendar obstaja ena ranljivost: če ima ena stranka ali ena dogovarjajoča se skupina strank več kot 50 vseh omrežnih moči, potem ima ta subjekt samo večinski nadzor nad postopkom glasovanja in lahko izračuna katero koli drugo verigo. To daje tej entiteti nekatere privilegije:
- Subjekt lahko prizna samo bloke, ki jih je ustvaril sam, kot veljavne, kar drugim preprečuje rudarjenje, ker bo njegova lastna veriga vedno najdaljša. Sčasoma to podvoji prihodke rudarja, ki jih dodeli BTC, na stroške vseh drugih. Upoštevajte, da šibka različica tega napada, “sebično kopanje”, začne učinkovati s približno 25 omrežnimi močmi.
- Podjetje lahko zavrne vključitev nekaterih transakcij (tj. Cenzure)
- Subjekt se lahko “vrne v preteklost” in začne rudariti iz N blokov nazaj. Ko ta vilica neizogibno prehiti original, to odstrani učinek vseh transakcij, ki so se zgodile v prvotni verigi po točki razcepa. S tem lahko zaslužite nezakonit dobiček tako, da (1) pošljete BTC na borzo, (2) počakate 6 blokov za potrditev vloge, (3) kupite in dvignete LTC, (4) razveljavite transakcijo pologa in namesto tega pošljete te kovance nazaj napadalcu.
To je grozljiv “napad 51”. Predvsem pa tudi 99 hashpower napadalcu ne daje privilegija, da si dodeli poljubno število novih kovancev ali ukrade kovancev drugih (razen z razveljavitvijo transakcij). Druga pomembna točka je, da 51 omrežij ni potrebno za izvajanje takšnih napadov; če je vse, kar želite, prevarati trgovca, ki sprejema transakcije po čakanju na N potrditev (običajno,
N = 3
ali
N = 6
Če ima vaše rudarsko področje del P omrežja, boste verjetno lahko uspeli:
(P / (1-P)) ^ N
pri 35 hashpower in 3 potrditvah, to pomeni, da lahko GHash trenutno ukrade altcoinov z izmenjave altcoinov z verjetnostjo 15,6 uspeha – enkrat na vsakih šest poskusov.
Bazeni
Tu smo prišli do bazenov. Bitcoin rudarstvo je koristna, vendar na žalost zelo velika varianca dejavnosti. Če v trenutni 100 PH / s omrežje, uporabljate ASIC z 1 TH / s, potem ima vsak blok možnost 1 od 100000, da prejme nagrado za blok 25 BTC, ostalih 99999-krat od 100000 pa ne dobite natančno nič. Glede na to, da se hashpower omrežja trenutno podvaja vsake tri mesece (za poenostavitev, recimo 12500 blokov), to pomeni 15,9 verjetnosti, da bo vaš ASIC kdaj ustvaril nagrado, in 84,1 možnosti, da celotni življenjski zaslužek ASIC ne bo ravno nič.
Rudarsko področje deluje kot nekakšen inverzni zavarovalni agent: rudarsko združenje vas prosi, da ga namesto na svojega izkopljete na svoj naslov in če ustvarite blok, katerega dokaz o delu je skoraj dovolj dober, a ne povsem, se imenuje “delež” , nato vam bazen da manjše plačilo. Če na primer težava rudarjenja za glavno verigo zahteva, da je razpršitev manjša od 2190, je lahko zahteva po delnici 2190. Zato boste v tem primeru ustvarili delež približno vsakih sto blokov in od njega prejeli 0,024 BTC bazen in enkrat od tisoč od njih bo rudarski bazen prejel nagrado v višini 25 BTC. Razlika med pričakovanimi 0,00024 BTC in 0,00025 BTC na blok je dobiček rudarskega bazena.
Vendar pa rudarski bazeni služijo tudi drugemu namenu. Trenutno je večina rudarskih ASIC zmogljivih za razprševanje, a presenetljivo šibka pri vsem drugem; Edina stvar, ki jo imajo pogosto za splošno računanje, je majhna Raspberry Pi, ki je prešibka za prenos in preverjanje celotne verige blokov. Rudarji bi to lahko popravili za ceno nekaj podobnega kot 100 USD na napravo za bolj spodoben CPU, vendar tega ne storijo – iz očitnega razloga, da je 0 USD manj kot 100 USD. Namesto tega prosijo rudarske bazene, naj zanje ustvarijo rudarske podatke. Zadevni “podatki o rudarjenju” se nanašajo na glavo bloka, nekaj sto bajtov podatkov, ki vsebujejo zgoščevanje prejšnjega bloka, koren drevesa Merkle, ki vsebuje transakcije, časovni žig in nekatere druge pomožne podatke. Rudarji vzamejo te podatke in nadaljujejo s povečevanjem vrednosti, imenovane “nonce”, dokler glava bloka ne izpolnjuje pogoja za dokazilo o delu. Običajno bi rudarji jemali te podatke iz bloka, za katerega so neodvisno ugotovili, da je zadnji blok; tu pa se dejanska izbira najnovejšega bloka premakne v bazene.
Kaj imamo torej? No, zdaj v bistvu to:
Rudarski ekosistem se je utrdil v sorazmerno majhnem številu bazenov in vsak ima precejšen del omrežja – in seveda je prejšnji teden eden od teh bazenov, GHash, dosegel 51. Glede na to, da vsakič, ko je vsak rudarski bazen, Deepbit leta 2011 ali GHash leta 2013, ko je dosegel 51, se je število uporabnikov nenadoma močno zmanjšalo, povsem mogoče je, da je GHash dejansko dobil nekje do 60 mrežnih moči in nekatere od njih preprosto skriva. V resničnem svetu je veliko dokazov o velikih korporacijah, ki ustvarjajo domnevno konkurenčne blagovne znamke, da bi imele videz izbire in tržne dinamike, zato takšne hipoteze sploh ne bi smeli zanemariti. Celo ob predpostavki, da je GHash v resnici iskren glede stopnje razpršene moči, ki jo ima, ta grafikon dobesedno pravi, da je edini razlog, zakaj se trenutno ne dogaja 51 napadov na Bitcoin, Discus Fish, rudarski bazen, ki ga vodi devetnajstletnik v Hangzhouu na Kitajskem in GHash, rudarskem bazenu, ki naj bi deloval domnevno v Veliki Britaniji, a je morda kje drugje, se še ni odločil za medsebojno dogovarjanje in prevzem verige blokov. Če je kdo nagnjen k temu, da bi zaupal prav temu devetnajstletniku v Hangzhouu (navsezadnje se mi je zdel precej prijeten, ko sem ga spoznal), lahko Eligius ali BTCGuild namesto tega dogovarjata z GHash.
Torej, kaj če na primer GHash znova preboli 51 in začne izvajati 51 napadov (ali morda celo začne napadati borze altcoinov pri 40 letih)? Kaj se potem zgodi?
Najprej si spustimo en slab argument. Nekateri trdijo, da ni pomembno, ali GHash dobi več kot 51 let, ker jih ne spodbuja k napadom na omrežje, saj bi že en tak napad uničil vrednost lastnih valutnih enot in rudarske strojne opreme. Na žalost je ta argument preprosto absurden. Če želite ugotoviti, zakaj, razmislite o hipotetični valuti, kjer je algoritem rudarjenja preprosto preveritelj podpisa za moj javni ključ. Samo jaz lahko podpišem bloke in imam vse spodbude, da ohranim zaupanje v sistem. Zakaj skupnost Bitcoin ne bi sprejela mojega očitno boljšega, neenergijsko potratnega dokaza o delu? Odgovorov je veliko: morda sem nerazumen, lahko me prisili vlada, lahko začnem počasi privzemati kulturo, v kateri so sprejemljivi razveljavitve transakcij za nekatere “dobre namene” (npr. Blokiranje plačil za otroško pornografijo) in nato to počasi razširimo na pokrivam vse svoje moralne predsodke, ali pa imam morda celo ogromen krog proti Bitcoinu pri 10-kratnem vzvodu. Ta dva srednja argumenta nista hipotetična; gre za dokumentirane dejanske akcije implementacije me-coin, ki že obstaja: PayPal. Zato je decentralizacija pomembna; na leto ne porabimo milijonov dolarjev električne energije samo zato, da preidemo v valuto, katere nadaljnja stabilnost je odvisna od nekoliko drugačne vrste politične igre.
Poleg tega je pomembno omeniti, da je tudi sam GHash že v preteklosti sodeloval pri uporabi napadov za razveljavitev transakcij proti igralnim mestom; posebej se lahko spomnimo epizode, ki vključuje BetCoin kocke. Seveda GHash zanika, da je namerno ukrepal, in verjetno je pravilno; Namesto tega se zdi, da so napadi krivi prevaranta. Vendar to ni argument v prid GHash; ravno nasprotno, gre za empirične dokaze iz resničnega sveta, ki kažejo skupni argument v prid decentralizaciji: moč kvari in enako pomembno je, da moč privlači tiste, ki so že pokvarjeni. Teoretično je GHash od takrat povečal varnost; v praksi, ne glede na to, kaj počnejo, ta osrednja točka ranljivosti za Bitcoin omrežje še vedno obstaja.
Vendar obstaja še en, boljši argument, zakaj rudarski bazeni niso problem: namreč dejstvo, da ne gre za posamezne rudarje, temveč za bazene, iz katerih lahko rudarji kadar koli vstopijo in izstopijo. Zaradi tega lahko upravičeno rečemo Trditev Ars Technice da je Bitcoin-ovo varnost “razbil anonimni rudar z 51 omrežno močjo”, je popolnoma netočno; ni nobenega rudarja, ki bi nadzoroval karkoli blizu 51. Res obstaja en sam subjekt, imenovan CEX.io, ki nadzoruje 25 GHash-a, kar je samo po sebi zastrašujoče, vendar vseeno še zdaleč ne gre za scenarij, na katerega namiguje naslov. Če posamezni rudarji ne želijo sodelovati pri rušenju protokola Bitcoin in neizogibno zrušijo vrednost svojih kovancev za približno 70, lahko preprosto zapustijo bazen in tako nekaj se je zdaj zgodilo že trikrat v zgodovini Bitcoinov. Vprašanje pa je, ali bo Bitcoin gospodarstvo še naprej profesionaliziralo, ali bo tako še naprej? Ali pa bodo rudarji, glede na nekoliko bolj “požrešne” posameznike, še naprej rudarili v edinem bazenu, ki jim omogoča, da še naprej zaslužijo, pri čemer bodo posamično prihranili svoj dobiček na račun skupnega sestavljanja celotnega ekosistema rudarjenja Bitcoin po pečinah.?
Rešitve
Že zdaj obstaja dejansko ena strategija, ki jo rudarji lahko sprejmejo in jo že sprejmejo, da bi spodkopali GHash.io: rudarjenje v bazenu, vendar namerno zadrževanje vseh blokov, ki se jim zdijo dejansko veljavni. Takšne strategije ni mogoče zaznati, vendar z rudarjenjem 1 PH / s na ta način bistveno zmanjša dobiček vseh rudarjev GHash za približno 2,5. Tovrstna sabotaža bazenov popolnoma izniči prednosti uporabe GHash brez nadomestila v primerjavi z drugimi bazeni. Ta sposobnost kaznovanja slabih igralcev je zanimiva, čeprav njene posledice niso jasne; kaj če GHash začne najemati rudarje, ki bodo storili enako za vsak drugi bazen? Zato bi morali, namesto da se zanašamo na taktiko nadzornega sabotaže z nepreizkušenim gospodarskim koncem, v idealnem primeru poskusiti poiskati druge rešitve.
Najprej je tu vedno prisoten P2P rudarski bazen, P2Pool. P2Pool obstaja že leta in deluje tako, da ima svojo notranjo verigo blokov z 10-sekundnim časom blokade, kar rudarjem omogoča, da delnice oddajo kot bloke v verigi, in zahteva, da rudarji poskušajo izdelati bloke, ki jih pošiljajo vsem zadnjim nekaj desetim delnicam. proizvajalci hkrati. Če bi imel P2Pool 90 mrežnih moči, rezultat ne bi bila centralizacija in dobronamerna diktatura; namesto tega bi bil omejevalni primer preprosto replika navadnega starega Bitcoin blockchaina. Vendar ima P2Pool težavo: od rudarjev zahteva, da popolnoma potrdijo vozlišča. Kot je opisano zgoraj, je zaradi možnosti rudarjenja, ne da bi bilo popolnoma validacijsko vozlišče, nesprejemljivo.
Ena od rešitev te težave je, da imamo algoritem za rudarstvo, ki prisili vozlišča, da lokalno shranijo celotno verigo blokov. Preprost algoritem za to je v primeru Bitcoina:
def mine (block_header, N, nonce): o = [] for i in range (20): o.append (sha256 (block_header + nonce + i)) n = [] for i in range (20): B = ( o [i] / 2 ** 128)% N n.anden (tx (B, o [i])) return sha256 (block_header + str (n))
Kjer je tx (B, k) funkcija, ki vrne k-to transakcijo v bloku B, po potrebi zavije okoli modula števila transakcij v tem bloku, N pa je trenutna številka bloka. Upoštevajte, da je to preprost algoritem in je zelo neoptimalen; nekatere očitne optimizacije vključujejo njegovo zaporedno serijo (tj. o [i + 1] je odvisno od n [i]), gradnjo drevesa Merkle iz vrednosti o [i], ki omogoča njihovo individualno preverjanje, in vzdrževanje dveh dreves Merkle v vsak blok, eden shranjuje transakcije, drugi pa vsa trenutna stanja, zato mora algoritem poizvesti le trenutni blok.
Ta pristop dejansko rešuje dva problema hkrati. Najprej odstrani spodbudo za uporabo centraliziranega bazena namesto P2Pool. Drugič, v Bitcoinu traja kriza o tem, kako je premalo polnih vozlišč; razlog za to je ta, da je vzdrževanje celotnega vozlišča z njegovo 20 GB verigo blokov drago in nihče tega noče storiti. S to shemo bi bil vsak ASIC rudarjenja prisiljen shraniti celotno verigo blokov, kar pomeni, da izvajanje vseh funkcij polnega vozlišča postane nepomembno.
Druga strategija je še en kriptografski trik: rudarstvo naredite zunanje. Natančneje, ideja je ustvarite algoritem za rudarstvo tako, da ko rudar ustvari veljaven blok, ima vedno nujno alternativni način objave bloka, ki si zagotovi rudarsko nagrado. Strategija je, da uporabimo kriptografsko konstrukcijo, imenovano dokaz o ničelnem znanju, ki kriptografsko dokaže, da so ustvarili veljaven blok, vendar ohranjajo tajnost podatkov bloka, nato pa hkrati ustvarijo blok brez dokazila o delu, ki nagrado pošlje rudarju. Zaradi tega bi bilo nenavadno ogoljufati rudarski bazen, zaradi česar bi rudarski bazeni postali nesposobni za preživetje.
Takšna nastavitev bi zahtevala bistveno spremembo algoritma rudarjenja Bitcoina in uporablja kriptografske primitive, ki so veliko bolj napredni kot tisti v preostalem bitcoinu; nedvomno je zapletenost že sama po sebi resna pomanjkljivost in se morda splača rešiti resne težave, kot je razširljivost, ne pa tudi spreten trik za odvračanje od rudarskih bazenov. Poleg tega bo onemogočanje rudarskih bazenov problem verjetno poslabšalo in ne izboljšalo. Razlog, zakaj obstajajo bazeni za rudarstvo, je reševanje problema variance; rudarji niso pripravljeni kupiti naložbe, ki ima le 15 možnosti zaslužka. Če je možnost združevanja nemogoča, se bo rudarsko gospodarstvo preprosto centraliziralo v manjši nabor večjih igralcev – postavitev, ki se je za razliko od zdaj posamezni udeleženci ne morejo preprosto odmakniti. Prejšnja shema po drugi strani še vedno omogoča združevanje, če ima lokalno vozlišče celoten blok verige, in s tem spodbuja nekakšno združevanje (in sicer p2pool), ki sistemsko ni škodljiva.
Drugi pristop je manj radikalen: algoritma rudarjenja sploh ne spreminjajte, ampak spremenite algoritme združevanja. Trenutno večina rudarskih združenj uporablja shemo izplačil, imenovano »pay-per-last-N-share« (PPLNS) – rudarjem na delnico plačajo znesek, ki temelji na prejemkih iz zadnjih nekaj tisoč delnic. Ta algoritem v bistvu razdeli lastno varianto bazena med njegove uporabnike, kar povzroči tveganje za bazen in majhno varianco za uporabnike (npr. Pri uporabi bazena z 1 hashpower, pričakovani standardni odmik mesečnih donosov je ~ 15, daleč boljši od lota za samostojno rudarjenje, vendar še vedno zanemarljiv). Večji bazeni imajo manj variance, saj izkopljejo več blokov (po osnovnih statističnih podatkih ima bazen s 4x večjo rudarsko močjo dvakrat manjši standardni odklon v odstotkih). Obstaja še ena shema, imenovana PPS (plačilo na delnico), pri kateri rudarski bazen rudarjem preprosto plača statičen znesek na delnico; ta shema odstranjuje vse razlike pri rudarjih, vendar za ceno uvedbe tveganja za bazen; zato tega ne počne noben rudarski bazen.
Multi-PPS Meni Rosenfeld skuša zagotoviti rešitev. Namesto rudarjenja v en bazen lahko rudarji poskušajo ustvariti bloke, ki plačujejo več bazenom hkrati (npr. 5 BTC v en bazen, 7 BTC v drugi, 11,5 BTC v tretji in 1,5 BTC v četrti), in bazeni bodo rudarju plačajte delnice sorazmerno (npr. namesto da en sklad plača 0,024 BTC na delnico, bo prvi sklad plačal 0,0048, drugi 0,00672, tretji 0,01104 in četrti 0,00144). To omogoča zelo majhnim bazenom, da sprejmejo le rudarje, ki jim dajo zelo majhne nagrade, kar jim omogoča, da prevzamejo raven tveganja, sorazmerno z njihovimi ekonomskimi zmožnostmi. Na primer, če je področje A 10-krat večje od področja B, potem lahko združenje A sprejme bloke z izhodi do njih do 10 BTC, bazen B pa lahko sprejme samo 1 BTC. Če opravimo izračune, lahko vidimo, da je pričakovani donos za skupino B natančno desetkrat večji od vrednosti skupine A v vseh okoliščinah, zato skupina B nima posebne superlinearne prednosti. V scenariju z enim PPS pa bi bil manjši B izpostavljen 3,16-krat večjemu tveganju v primerjavi s premoženjem.
Težava je v tem, v kolikšni meri je težava v resnici zaradi odstopanja in v kakšni meri je kaj drugega, na primer udobje? Seveda bo 1 rudarski bazen v svojih donosih videl 15 mesečni standardni odklon. Vendar vsi rudarski bazeni v svojih donosnostih vidijo približno 40 mesečnih standardnih odklonov samo zaradi nestanovitne cene BTC. Razlika med 15 standardnimi in 2 standardnimi odkloni se zdi velika in prepričljiv razlog za uporabo največjega bazena; razlika med 42 in 55 ne toliko. Kateri drugi dejavniki bi torej lahko vplivali na centralizacijo rudarskega bazena? Drugi dejavnik je dejstvo, da bazeni nujno takoj slišijo o svojih blokih in blokih vseh drugih po določeni zakasnitvi omrežja, zato bodo večji bazeni manj pogosto rudarili na zastarelih blokih; ta težava je kritična za verige blokov s časom desetih sekund, vendar je pri Bitcoinu učinek manjši od 1 in s tem nepomemben. Tretji dejavnik je udobje; to je najbolje rešiti s financiranjem enostavne odprtokodne rešitve za izdelavo lastnega rudarskega bazena v podobnem duhu kot programska oprema, ki jo uporabljajo številni majhni ponudniki VPS; če se nam zdi pomembno, bomo morda na koncu delno financirali mrežno agnostično različico takšnih prizadevanj. Zadnji dejavnik, ki še vedno ostaja, pa je, da GHash nima provizije; bazen se vzdržuje prek povezave s podjetjem ASEX za rudarstvo v oblaku CEX.io, ki nadzoruje 25 svojih zmogljivosti. Če želimo torej resnično priti do dna problema centralizacije, bomo morda morali pogledati same ASIC-je.
ASIC
Prvotno je bilo namenjeno rudarjenju Bitcoinov zelo egalitarno prizadevanje. Milijoni uporabnikov po vsem svetu bi rudarili Bitcoin na svojih namizjih, rezultat pa bi bil hkrati distribucijski model, ki je zelo egalitaren in široko razprostira prvotno ponudbo BTC in konsenzni model, ki vključuje tisoče zainteresiranih strani, kar skoraj izključuje vsako možnost dogovarjanje. Sprva je shema delovala in zagotovila, da se je prvih nekaj milijonov bitcoinov široko razširilo med tisoče uporabnikov, vključno s celo običajno gotovinsko revnimi srednješolci. Leta 2010 pa se je pojavil rudarski program za GPU (“grafična procesna enota”), ki je izkoristil ogromno paralelizacijo GPU-ja za doseganje 10-100-kratnih pospeškov in rudarjenje CPU-ja v nekaj mesecih postalo popolnoma nedonosno. Leta 2013 se je specializacija s prihodom ASIC-jev še bolj spremenila. ASIC-ji ali integrirana vezja, specifična za aplikacijo, so specializirani rudarski čipi, izdelani z enim samim namenom: izkoriščanje čim večjega števila izračunov SHA256 za rudarstvo blokov Bitcoin. Kot rezultat te specializacije dobijo ASIC-ji nadaljnje 10-100-kratno pospešitev GPU-jev, zaradi česar je tudi rudarjenje GPU nedonosno. Zdaj je edini način, kako izkoristiti, ali ustanoviti podjetje ASIC ali kupiti ASIC pri obstoječem.
Način delovanja podjetij ASIC je preprost. Najprej se podjetje zažene, opravi minimalno količino namestitvenih del, ugotovi svoj načrt in začne sprejemati prednaročila. Ta prednaročila se nato uporabijo za financiranje razvoja ASIC in ko so ASIC pripravljeni, se naprave pošljejo uporabnikom, podjetje pa začne redno proizvajati in prodajati več. Izdelava ASIC poteka v cevovodih; obstaja ena vrsta tovarne, ki proizvaja čipe za ASIC, nato pa druga, manj dovršena operacija, kjer se čipi skupaj s standardnimi deli, kot so vezja in ventilatorji, sestavijo v celotne škatle, ki jih pošljejo kupcem..
Torej, kje nas to pusti? Očitno je, da je proizvodnja ASIC dokaj centralizirana; obstaja približno 10-30 podjetij, ki proizvajajo te naprave, in vsaka od njih ima znatno raven zmogljivosti. Vendar nisem vedel, kako centralizirana je proizvodnja ASIC, dokler nisem obiskal te skromne majhne stavbe v Shenzhenu na Kitajskem:
V tretjem nadstropju tovarne vidimo:
Na prvi sliki imamo približno 150 rudarjev s po 780 GH / s, kar skupaj sestavlja 120 TH / s rudarjev – več kot 0,1 celotne mrežne moči – na enem mestu. Na drugi sliki so škatle z dodatnimi 150 TH / s. Skupaj tovarna vsak dan proizvede nekaj več kot vsota teh dveh količin – približno 300 TH / s. Zdaj si oglejte ta diagram:
Bitcoin omrežje vsak dan pridobi približno 800 TH / s. Torej, tudi če dodamo nekatere varnostne dejavnike in predpostavimo, da se tovarna nekaj dni v tednu izklopi, imamo samo eno tovarno, ki proizvaja več kot četrtino vseh novih zmogljivosti, ki se dodajo v omrežje Bitcoin. Zdaj je stavba nekoliko velika, zato uganete, kaj je v prvem nadstropju? Tako je, obrat za izdelavo, ki proizvaja Scrypt ASIC-je, enak četrtini vseh novih razpršenih moči, dodanih v omrežje Litecoin. To projicira podobo zastrašujoče končne igre za Bitcoin: omrežje Bitcoin vsako leto porabi milijone dolarjev električne energije, samo da bi rudarski algoritem ameriškega dolarja “8 belih fantov” zamenjal z nekaj desetimi fanti v Shenzhenu.
Preden pa postanemo preveč zaskrbljeni glede prihodnosti rudarjenja, je pomembno, da se poglobimo in razumemo (1), kaj je narobe z ASIC-ji, (2) kaj je v redu s CPU-ji in (3), kaj bo prihodnost rudarjenja ASIC izgleda kot. Vprašanje je bolj zapleteno, kot se zdi. Najprej bi se lahko vprašali, zakaj je slabo, da ASIC proizvaja le nekaj podjetij, četrtina pa jih gre skozi eno tovarno? CPU so prav tako zelo centralizirani; integrirana vezja proizvaja le majhno število podjetij in skoraj vsi računalniki, ki jih uporabljamo, imajo vsaj nekatere komponente AMD ali Intel. Odgovor je, čeprav AMD in Intel proizvajata CPU, vendar ne nadzorujeta, kaj se na njih izvaja. So naprave za splošno uporabo in proizvajalci nikakor ne morejo svojega nadzora nad proizvodnim postopkom prevesti v kakršen koli nadzor nad njegovo uporabo. DRM-obremenjeni “zaupanja vredni računalniški moduli” sicer obstajajo, vendar si je zelo težko predstavljati, da bi se kaj takega uporabljalo, da bi računalnik prisilil k napadu z dvojno porabo.
Z ASIC rudarji trenutno še vedno ni vse slabo. Čeprav se ASIC-ji proizvajajo le v majhnem številu tovarn, jih še vedno nadzira na tisoče ljudi po vsem svetu v različnih podatkovnih centrih in domovih, posamezni rudarji, ki imajo običajno manj kot nekaj terahašev, pa lahko svojo heš-moč usmerjajo kamor koli potrebujejo. Kmalu pa se to lahko spremeni. Kaj pa čez mesec dni, če proizvajalci ugotovijo, da zanje ni smiselno prodajati svojih ASIC-jev, ko lahko preprosto hranijo vse svoje naprave v centralnem skladišču in zaslužijo celotni prihodek? Stroški pošiljanja bi se znižali na skoraj nič, zamude pri pošiljanju bi se zmanjšale (en teden zamude pri pošiljanju ustreza ~ 5,6 izgube prihodka ob trenutni stopnji rasti hashpower) in ne bi bilo treba proizvajati stabilnih ali lepih ovojev. V tem scenariju ne bi bilo le 25 vseh ASIC, ki jih proizvaja ena tovarna v Shenzhenu; v eni tovarni v Shenzhenu bi zmanjkalo 25 vseh zmogljivosti.
Ob obisku sedeža podjetja v Hangzhouu, ki se med drugim ukvarja z rudarjenjem Litecoin, sem ustanoviteljem postavil isto vprašanje: zakaj rudarjev preprosto ne zadržujete v hiši? Priskrbeli so tri odgovore. Najprej jim je mar za decentralizacijo. To je enostavno razumeti in zelo srečno je, da se toliko rudarjev zaenkrat tako počuti, toda navsezadnje bodo rudarstvo opravljala podjetja, ki malo bolj skrbijo za denarni dobiček in manj za ideologijo. Drugič, za financiranje podjetja potrebujejo prednaročila. Razumno, a rešljivo z izdajo “rudarskih pogodb” (v bistvu kripto-sredstev, ki izplačujejo dividende, enake določenemu številu toplogrednih plinov / s rudarske moči). Tretjič, v skladiščih ni dovolj električne energije in prostora. Zadnji argument, kakršen koli se zdi, je morda edini, ki dolgoročno zadržuje vodo; to je tudi navedeni razlog, zakaj je ASICminer prenehal z lastnim rudarjenjem in začel prodajati USB rudarje potrošnikom, kar kaže na to, da morda obstaja močna in univerzalna utemeljitev takšne odločitve.
Ob predpostavki, da so strategije financiranja prodaje prednaročil in prodaje rudarskih pogodb ekonomsko enakovredne (kakršne so), je enačba za določitev, ali je lastno rudarstvo ali prodaja bolj smiselna, naslednja:
Na levi strani imamo stroške lastnega rudarjenja: elektrika, skladiščenje in vzdrževanje. Na desni strani imamo stroške električne energije, shranjevanje in vzdrževanje od zunaj (tj. V rokah kupcev), pošiljanje in kazen, da moramo ASIC zagnati pozneje, ter negativni dejavnik, ki upošteva dejstvo, da nekateri vsaj delno rudarijo iz zabave in iz ideološke želje po podpori omrežju. Analizirajmo te številke zdaj. Uporabili bomo Butterfly Labs Monarch kot zunanji primer in naj vsak ASIC deluje eno leto zaradi enostavnosti.
- Notranja elektrika, skladiščenje, vzdrževanje – po navedbah na BFL-jevi spletni strani za notranjo elektriko, shranjevanje in vzdrževanje stanejo 1512 USD na leto, kar bomo ocenili na 1000 USD, če BFL prinese nekaj dobička
- Zunanja elektrika – v Ontariu so cene približno 0,1 USD za KwH. Tekmoval bo Butterfly Labs Monarch 600 GH / s pri 350 W; če to normaliziramo na TH, to pomeni stroške električne energije 1,40 USD na dan ali 511 USD za celo leto
- Zunanji pomnilnik – doma lahko shranite, da je shramba brezplačna, ali pa dodate dodatek 1 USD na dan; zato bomo rekli nekje od 0 do 365 USD
- Zunanje vzdrževanje – težko je količinsko opredeliti to vrednost; za tehnično podkovane invididualce, ki uživajo v izzivu, je nič, za druge pa težko; zato lahko rečemo od 0 do 730 USD
- Stroški pošiljanja – po navedbah BFL, 38 dolarjev.
- Prihodki – trenutno vam 1 TH / s daje 0,036 BTC ali 21,6 USD na dan. Ker se v naši analizi hashpower podvoji vsakih 90 dni, zato se učinkovitost ASIC prepolovi na vsakih 90 dni, dobimo 122 dni življenja ali 2562 USD prihodka
- Čas pošiljanja – po mojih kitajskih virih en teden
- Čas podvojitve moči – tri mesece. Zato je celoten izraz za kazen za zamudo pri pošiljanju 2562 * (1 – 0,5 ^ 0,0769) = 133,02
- Premija za hobi / ideologijo – trenutno velik del Bitcoin rudarjev to počne iz ideoloških razlogov, zato lahko rečemo od 0 do 1000 USD
Tako seštejemo vse, na levi imamo 1000 $, na desni pa 511 + 38 $ + 133 $ = 682 $, do plus 1095 $ in minus do 1000 $. Tako je povsem dvoumno, katera je boljša; Zdi se, da napake v moji analizi in meglene spremenljivke, kako zelo ljudje vrednotijo svoj čas in estetiko, veliko presegajo vse dokončne sklepe. Kaj pa bo v prihodnosti? V bistvu lahko pričakujemo, da bi bila električna energija, shranjevanje in vzdrževanje centralno precej cenejša kot pri vsakem potrošniku zgolj zaradi ekonomije obsega in dobička iz specializacije; poleg tega večina ljudi v “resničnem svetu” ni altruist, hobi ali oboževalec čudovitih oblog ASIC. Stroški pošiljanja so nad ničlo, kazen za zamudo pri pošiljanju pa nad nič. Tako se zdi, da ekonomija naklonjena centraliziranemu rudarstvu …
… Razen enega potencialnega dejavnika: toplota. Trenutno so ASIC-ji še vedno v fazi hitrega razvoja, zato je velika večina stroškov strojna oprema; rudar BFL, uporabljen v zgornjem primeru, stane 2200 USD, elektrika pa 511 USD. V prihodnosti pa bo razvoj veliko počasnejši; navsezadnje lahko pričakujemo približevanje Moorejevemu zakonu, pri čemer se hashpower podvoji na vsaki dve leti in zdi se, da se celo Mooreov zakon upočasnjuje. V takšnem svetu se lahko stroški električne energije vrnejo kot glavna točka zadušitve. Koliko pa stane elektrika? V centraliziranem skladišču, kar veliko, in zakon kvadratne kocke zagotavlja, da bi bilo treba v centraliziranem okolju za hlajenje porabiti še več energije kot doma, ker so vsi rudarji na enem mestu in je večina pregloboko v tovarni, da bi bila izpostavljena hladnemu svežem zraku. V domu pa so stroški električne energije nič, če je zunanja temperatura nižja od približno 20 ° C; vsa električna energija, ki jo rudar porabi, se sčasoma spremeni v “odpadno” toploto, ki nato ogreva dom in nadomešča elektriko, ki bi jo porabil centralni grelec. To je edini argument, zakaj lahko decentralizacija ASIC deluje: namesto da bi se decentralizacija zgodila, ker ima vsak na svojem prenosniku določeno količino neuporabljenih in s tem brezplačnih enot računskega časa, se decentralizacija zgodi, ker ima veliko ljudi določeno količino povpraševanja po ogrevanju v svojih domovih.
Se bo to zgodilo? Mnogi zagovorniki Bitcoinov so prepričani, da je odgovor pritrdilen. Nisem pa prepričan; povsem empirično vprašanje je, ali so stroški električne energije manjši od vzdrževanja plus skladiščenja plus odpreme in kazni za zamudo pri pošiljanju, in čez deset let enačba lahko pade na eno ali drugo stran. Osebno nisem pripravljen preprosto sedeti in upam na najboljše. Zato me osebno razočara, da je toliko osrednjih razvijalcev Bitcoinov (čeprav na srečo ne skoraj vseh) zadovoljnih, da menijo, da je dokaz o delu težava “rešena”, ali trdijo, da je poskus reševanja rudarske specializacije dejanje “Nepotrebno preoblikovanje”. Lahko se izkaže ali pa tudi ne, toda dejstvo, da imamo to razpravo najprej, močno nakazuje, da je trenutni pristop Bitcoina še zdaleč popoln.
ASIC odpornost
Rešitev problema ASIC, ki ga najpogosteje predstavljajo, je razvoj algoritmov, odpornih na ASIC. Doslej sta bili pri razvoju tovrstnih algoritmov dve razmišljanji. Prva je trdota pomnilnika – zmanjšanje moči ASIC-ov za doseganje velikih dobičkov s paralelizacijo z uporabo funkcije, ki zajema zelo veliko pomnilnika. Prvi poskus skupnosti je bil Scrypt, ki se je izkazal za premalo odporen; januarja sem skušal izboljšati trdnost pomnilnika Scrypta z Daggerjem, algoritmom, ki ga je težko izračunati (do 128 MB), a ga je enostavno preveriti; vendar je ta algoritem ranljiv za napade v skupnem pomnilniku, kjer lahko več vzporednih procesov dostopa do istih 128 MB pomnilnika. Trenutno najsodobnejše spominsko trdo napajanje je Kukavica, algoritem, ki v grafih išče dolžino 42 ciklov. Za učinkovito iskanje takšnih ciklov je potrebna velika količina pomnilnika, vendar je cikel zelo hitro preveriti, saj zahteva 42 zgoščenk in manj kot 70 bajtov pomnilnika.
Drugi pristop je nekoliko drugačen: ustvariti mehanizem za generiranje novih zgoščevalnih funkcij in prostor funkcij, ki jih generira, narediti tako velik, da je vrsta računalnika, ki je najprimernejša za njihovo obdelavo, po definiciji popolnoma splošna, tj. CPU. Ta pristop se približa temu, da je »dokazljivo odporen na ASIC« in s tem bolj odporen na prihodnost, namesto da bi se osredotočil na posebne vidike, kot je spomin, vendar je tudi nepopoln; vedno bo vsaj nekaj delov CPE-ja, ki se bodo v takem algoritmu izkazali za tuje in jih je zaradi učinkovitosti mogoče odstraniti. Vendar iskanje ni popolna odpornost na ASIC; prej je izziv doseči tisto, kar lahko imenujemo “ekonomski odpor do ASIC” – gradnja ASIC se ne bi splačala.
To je pravzaprav presenetljivo verjetno dosegljivo. Če želite ugotoviti, zakaj, upoštevajte, da je rudarska proizvodnja na porabljeni dolar za večino ljudi podlinearna. Prvih N enot rudarske moči je zelo poceni za izdelavo, saj lahko uporabniki preprosto uporabijo obstoječi neuporabljeni računski čas na svojih namizjih in plačajo samo elektriko (E). Če pa presežemo N enot, je treba plačati tako za strojno opremo kot za elektriko (H + E). Če so ASIC izvedljivi, če je njihova pospešitev nad osnovno strojno opremo manjša od (H + E) / E, bo tudi v ekosistemu, ki vsebuje ASIC, ljudem donosno, da rudarjenje električne energije preživijo na svojih namizjih. To je cilj, h kateremu si želimo prizadevati; ali ga lahko dosežemo ali ne, je povsem neznano, ker pa je kriptovaluta kot celota velik poskus, v vsakem primeru ne škodi poskusiti.