lørdag 16. januar 2016

Bitcoins store skalerings-utfordring

"Hard fork" eller "soft fork" for Bitcoin?
Foto: Bitcoin Magazine
Bitcoin står no framfor den største utfordringa sidan starten i januar 2009: korleis skal den veksande mengda transaksjonar handterast? Denne veka vart det full fyr i teltet då Mike Hearn, ex-Google og ein av dei sentrale i utviklarmiljøet rundt Bitcoin, melde seg ut av vennegjengen og smelte att døra i det han storma ut. Hearn var ikkje snauare enn at han kunngjorde Bitcoins død i bloggartikkelen sin, og føydde seg dermed inn i den lange rekkja over Bitcoin-nekrologar.

Utspelet hans må helst sjåast i samanheng med selskapet R3 han er engasjert i, der meir enn 40 storbankar deltek. Der er Bitcoin som valuta eit tabu, og berre blokk-kjeda gjeld. Mange mistenkjer difor Mike Hearns utblåsing for å vera nøye planlagt. Men det kan også vera at han vart så forbanna fordi Bitcoin XT (BIP 101) ikkje fekk støtte, at han kasta korta. For å forstå meir av utspelet og dei steile frontane, er Nathaniel Poppers artikkel i New York Times også nyttig. Popper er journalisten bak boka "Digital Gold". Og Reddits Bitcoin-forum er sjølvsagt fullt av diskusjonar om Hearns "drama queen"-sorti .

Hearn har vore ein av dei mest aggressive og minst kompromissvillige i spørsmålet om korleis Bitcoin skal utviklast for å takla fleire transaksjonar. Saman med tidlegare sjefsutviklar Gavin Andresen, lanserte dei Bitcoin XT i august i fjor og kunngjorde at så fort versjonen fekk 75 % støtte frå Bitcoin-gravarane ("miners"), vart det den offisielle Bitcoin-versjonen.

Blokkstørrelse og faren for sentralisering
Det store spørsmålet er altså korleis Bitcoin skal skalera, dvs. klara å handtera fleire transaksjonar pr. sek. Dagens versjon har ei teoretisk grense på 7 trans./sek, noko som ikkje er veldig mykje samanlikna med dei store aktørane innan betalingshandtering (VISA med fleire tusen transaksjonar pr. sekund). Dagens grense på 7 trans./sek (i realiteten mindre) skuldast blokkstørrelsen som er på 1 MB. Det var i starten ei heller teoretisk grense på 32 MB, men Satoshi endra dette til 1 MB for å hindra spam og "Denial of Service"-angrep.

Det er store motsetningar i synet på blokkstørrelse, og det har komme mange forslag til løysingar på problemet i form av såkalla Bitcoin Improvement Proposal (BIP). BIP er Bitcoins svar på Internetts RFC. Motsetningane eksisterer på grunn av dilemmaet som ligg innbakt i ein auke av blokkstørrelsen: eit meir sentralisert Bitcoin. Det kan synast som om Bitcoin-samfunnet har valet mellom pest og kolera: maksimal desentralisert struktur eller maksimal kapasitet målt i trans./sek.

Samanheng blokkstørrelse og desentralisering?
Men er det ein samanheng mellom blokkstørrelse og desentralisering? Ikkje alle er einige i det, t.d. meiner Philipp Knirck i ein kommentar i Bitcoin Magazine at det ikkje nødvendigvis er ein slik samanheng:

"The block-size dispute... represents a trade-off between the number of transactions the Bitcoin network can handle and its decentralization"
This is factually wrong. Bigger or smaller blocks do not impact decentralization. Decentralization challenges and corresponding security concerns come from design decisions that lead to centralisation, such as storing all transactions forever, having a race for mining, not incentivising decentralization but incentivizing centralization etc. The blocksize limit has the effect of capping the amount of transactions and therefore is about the scalability. Scalability and decentralization are two different problems bitcoin has. Decentralization needs to be addressed via a different tool than blocksize.
Folks that argue with blocksize for decentralization are either lying/using propaganda for other purposes, simply do not understand the mechanics of bitcoin or are making wrong associations & logical mistakes (being stupid). I understand that many very smart people are proclaiming the correlation of blocksize and decentraliation (i.e. Szabo) but that does not mean they are correct.
Bitcoin-religiøse mot Bitcoin-business
Enkelt sagt går skiljelinjene mellom opprinnelege, "hard core" Bitcoin-fans som set friheit og desentralisering (eigentleg distribuert) struktur over alt anna. Mange av dei meiner at dagens blokkstørrelse ikkje skal endrast, og at marknaden så må styra gebyra ("fees"). Det vil unekteleg føra til høgre gebyr, men det meiner dei er berre ei nødvendig tilpassing til det som uansett må skje når tilførselen av nye Bitcoin gradvis vil avta. Mange er også "religiøse" Satoshi-tilhengjarar og meiner at Bitcoin slik Satoshi designa systemet er det einaste rette. Men som med Koranen og Bibelen, er det ulik tolking av den første skrifta..

På den andre sida finn me pragmatikarane og business-folka. Dei meiner at Bitcoin må utvikla seg til å konkurrera med dagens betalingssystem, også i kapasitet, og at blokkstørrelsen difor må aukast. Dei er ikkje så redde for sentraliseringa som eventuelt vil følgja. Ei stor utfordring i dag er at talet på nodar som køyrer full Bitcoin-klient (Bitcoin-kjernen/Bitcoin core) minkar. Sjølv i dag vil det ta mange dagar å synkronisera heile blokk-kjeda, og det vil ta ein del ressursar av ein vanleg pc å ha Bitcoin-klienten køyrande. Dei fleste som brukar Bitcoin i dag, brukar difor ein lettvektsvariant (Simple Payment Verification - SPV) som ikkje har full verifisering og dermed ikkje er fullverdige nodar i systemet.

Tilpassinga til ein gebyrfinansiert «mining»-marknad er likevel eit godt argument, spørsmålet er berre om tida er moden for eit så drastisk steg. Slik sett har dei også rett dei som meiner at å ikkje gjera noko, er minst like drastisk som å auka blokkstørrelsen.

Mike Hearn har vore den tydelegaste forkjemparen for eit business-Bitcoin, medan Gregory Maxwell har vore den store motpolen. Mellom desse ytterpunkta finn me Bitcoin-utviklarar på ein glidande skala. Sentrale utviklarar som Gavin Andresen og Jeff Garzik heller i retning av Hearn, men er ikkje så kompromisslause.

BIP 101 – eit radikalt forslag
Det mest radikale forslaget, BIP 101, kom likevel frå sjefsutviklar Gavin Andresen, men med Mike Hearn som pådrivar. Det er ei oppgradering av Bitcoin-kjernen som dei kallar BitcoinXT fordi den representerer eit hardt brot ("hard fork"). Eit hardt brot betyr at det eksisterande Bitcoin og den nye BitcoinXT  ikkje vil vera kompatible. På mange måtar er Bitcoin XT difor ein altcoin, og mange insisterer på å behandlar den nettopp som det.

Bitcoin XT medfører ein auke i blokkstørrelsen til 8 MB straks, og deretter ei dobling annakvart år i 20 år, opp til 8 GB blokker. Dei har vidare sagt at BitcoinXT vil overta for dagens Bitcoin når 75 % av "Bitcoin-gravarane" har stemt for forslaget. Eit eige felt i blokk-headeren gir muleheit for å visa støtte til eit av BIP-forslaga. Dette er også diskutabelt; det er altså berre «gravarane» som får stemma, ikkje dei som driv resten av Bitcoin-nettverket ved å køyra Bitcoin Core. Dei som køyrer full Bitcoin-klient er avgrensa til valet om å lasta ned den nye versjonen når/viss den blir sett i drift.

Så langt har ikkje BIP 101 fått mykje støtte, forslaget har heller skapt sterkare motsetningar i Bitcoin-leiren. Reaksjonane mot BIP 101 er skapte delvis av framgangsmåten (Andresen og Hearn har alt gjort endringa og vil setja den i verk så fort forslaget får meir enn 75 % av stemmene) og delvis fordi dei ikkje søkjer konsensus, men baserer seg på 75 % av stemmene (i realiteten 75 % av datakrafta  i form av hash rate). Moderatoren på reddit/r/bitcoin har stengt for BitcoinXT-relaterte innlegg fordi han meiner BitcoinXT ikkje er Bitcoin, men ein altcoin.

BIP 100 og 102 som meir moderate løysingar
Mellom desse posisjonane finn me fleire forslag til ei meir forsiktig utvikling i kapasitet. Jeff Garzik står bak BIP 100 og BIP 102 som begge er meir moderate forslag til auke i blokkstørrelse. BIP 100 føreslår ein flytande blokkstørrelse mellom 1 og 32 MB der det blir overlate til marknaden å bestemma. Forslaget inneber eit hardt brot ("hard fork").

BIP 102 er ein slags "plan B"-forslag dersom verken 101 eller 102 skulle få gjennomslag, og er ein forsiktig auke til 2 MB blokkstørrelse, mest for å "trø vatnet". Men også denne endringa vil representera eit hardt brot ("hard fork").

"Scaling Bitcoin"
Det vart arrangert to "Scaling Bitcoin"-konferansar i 2015, ein i Montreal og ein i Hong Kong, for å diskutera problemet med skalering og forslag til løysingar og for å prøva å få til konsensus. Etter Montreal-konferansen var det god optimisme om at ein til slutt skulle bli einige, men etter Hong Kong-arrangementet er det slutt på idyllen og forvirringa er om muleg endå større.

Segregated Witness (SegWit)
Ein viktig grunn til det er at i staden for å nærma seg konsensus om eitt av forslaga, kom det endå eit nytt og avvikande forslag på bordet: Segregated Witness er eit forsøk på å "lura" inn større kapasitet utan å tvinga gjennom eit hardt brot. Forslaget vart presentert av Pieter Wuille og går enkelt sagt ut på å halda ein god del transaksjonsinformasjon utanfor blokk-kjeda. Det vil føra for langt å gå inn på detaljar i forslaget, det er betre å lesa desse artiklane:

  1. SegWit part 1: «How a Clever Hack Could Significantly Increase Bitcoin’s Potential
  2. SegWit part 2: “Why You Should Care About a Nitty-Gritty Technical Trick” https://bitcoinmagazine.com/articles/segregated-witness-part-why-you-should-care-about-a-nitty-gritty-technical-trick-1450827675
  3. SegWit part 3: “How a Soft Fork Might Establish a Block-Size Truce (or Not)

Og så kan det vera lurt å lesa artikkelen «Segregated Witness: The Right Answer to the Wrong Question» som heller litt kaldt vatn i blodet på dei mest entusiastiske. SegWit kan visa seg å bli viktig for Bitcoin, men kanskje ikkje som løysing på skaleringsutfordinga.

Bitcoin Unlimited, Bitcoin Classic og BitPay Core
Inspirert av Bitcoin XT og viljen til å bryta den etablerte konsensuslinja, har det dukka opp fleire nye implementeringar av Bitcoin-kjernen. Alle desse løysingsforslaga inneber eit hardt skifte ("hard fork") på ein eller annan måte, og på eit eller anna tidspunkt, men elles er dei ulike. For meir informasjon om alternativa kan ein lesa denne artikkelen i Bitcoin Magazine.

Kva blir resultatet?
Det mest sannsynlege utfallet av skaleringsdiskusjonen er eit kompromiss i retning av BIP 102 eller Bitcoin Classic, altså ein moderat auke av blokkstørrelsen - i første omgang til 2 MB. Det vil likevel krevja eit hardt brot (hard fork) og utfordra Bitcoin-samfunnet. Dei som skulle velja å ikkje følgja den nye standarden, vil plutseleg sitja med ein altcoin og ikkje Bitcoin!

Det som er ganske sikkert, er at Bitcoin ikkje er død, og at denne utfordringa heller ikkje vil ta livet av teknologien. Det er ein revolusjonerande teknologi som vil få stor betydning for utviklinga på nettet, enten den framleis vil ha namnet Bitcoin eller noko anna.

Andre følgjer av denne intense diskusjonen er eit sannsynleg skifte av sentrale Bitcoin-utviklarar, og diskusjonen har også vist behovet for ei meir gjennomtenkt og strukturert styring av Bitcoin-utviklinga. Bitcoin Governance blir like viktig som Bitcoin Scaling i 2016!

Når det gjeld Bitcoin si framtid, er det elles berre å slå fast: Ånda er ute av flaska; den vil ikkje vera muleg å stappa innatt! Om det vil heita Bitcoin eller noko anna, er ei anna sak.

2 kommentarer:

Lars Marius Garshol sa...

Interessant motkommentar til det som har kommet fram i media.

Forøvrig også interessant at den største trusselen mot Bitcoin hittil ikke er noen av de tingene folk forutså på forhånd, men rett og slett uenighet i miljøet. For den som har vært involvert i Topic Maps er det en interessant parallell her. :-)

Svein Ø sa...

Ja, styring av fri programvare-prosjekt er eit veldig interessant, og altfor lite utforska tema. Kvar er forskarar med sosiologi-bakgrunn?

Mange OSS-prosjekt slit med indre ueinigheit, og når det blir kombinert med dårlege eller uklare styringsmodellar, er det duka for problem. Det er noko av de me ser i Bitcoin-miljøet akkurat no (eg har oppdatert artikkelen til å reflektera litt meir rundt det).

Mange OSS-prosjekt startar ut svært idealistisk, naturleg nok, og motsetningar kjem først fram når viktige vegval skal gjerast. Då er gjerne den initielle konsensus-modellen ikkje god nok, og prosjektet kan bryta heilt saman. Andre ser dette tidlegare og innfører styringsmodellar som inneber at "alle er like, men nokre er likare enn andre". Linux blir til dømes styrt etter ein "mild diktator"-modell ("benevolent dictator"). Det har sine sider, men det er nok meir effektivt på lang sikt.