Ingen forstår Bitcoin (og det er greit)

Del denne artikkelen

Beregnet lesetid: 14 minutter

Forfatter: Jameson Lopp | Utgitt: 11/05/17 | Original: Nobody Understands Bitcoin (And That’s OK)


Da jeg først ble interessert i bitcoin, brukte jeg utallige timer på å absorbere så mye informasjon om det som mulig, og prøve å sette alle bitene sammen.

Etter år med læring, bruker jeg nå en god del av tiden min på å prøve å hjelpe andre å forstå bitcoin bedre. Mens mange mennesker har omtalt meg som en «bitcoin-ekspert», anser jeg meg fortsatt som en student – jeg har ennå ikke funnet ut hvor dypt kaninhullet går.

Andreas Antonopoulos hadde dette å si om å forklare (og dermed forstå) bitcoin:

               Reklame                                                             

«Jeg skrev en bok som svarer på spørsmålet ‘Hva er Bitcoin?’ Den er 300 sider lang, var foreldet i det øyeblikket den ble skrevet ut og må korrigeres og oppdateres hver tredje måned bare for å holde tritt med endringer.»

Den mangenyanserte naturen til bitcoin

Med nok studier kan du lære deg selv hvordan bitcoin fungerer fra et teknisk synspunkt.

Jeg opprettholder en liste over pedagogiske ressurser som er tilstrekkelig til å holde noen opptatt i flere måneder i jakten på dette målet. Imidlertid vil denne tilnærmingen til informasjonsinntak bare avsløre toppen av bitcoin-isfjellet.

Meltem Demirors la ut et diagram som er spot on:

En utfordring til å forstå bitcoin er at det er et mangenyansert tverrfaglig system som er i stadig utvikling.

               Reklame               
                                              

Ferdinando Ametrano sa det godt:

Ferdinando treffer et nøkkelpunkt som jeg skal fordype meg i – bitcoin er ikke bare en teknologi; det er en teknologi som representerer noe enda mindre håndgripelig.

Bitcoin er en levende protokoll som dukket opp fra ideer, filosofier, kulturer og politikk.

Du kan lese «Rise of the Cypherpunks» for å finne ut hvordan vi kom dit vi er i dag.

Satoshi sin forståelse av bitcoin

«Å lage en beskrivelse til denne tingen for et generelt publikum er kjempevanskelig. Det er ingenting å relatere det til.»

– Satoshi, 5. juli 2010

Selv Satoshi forsto ikke helt hva han bygde med hensyn til bitcoin sin sikkerhetsmodell. Han (eller hun) endte opp med å fikse en mengde feil i de første årene av bitcoin sin eksistens.

               Reklame               

                                              

Etter at den var 18 måneder gammel, hadde frekvensen av feilrettinger avtatt til det punktet at nye sårbarheter ble kategorisert og dokumentert. La oss dekke noen av feilene som ble fikset før bitcoin fikk vokse.

I de første versjonene av bitcoin kunne hvem som helst bruke andres mynter:

               Reklame                                                             

«Opcode OP_RETURN førte opprinnelig til at skriptet sluttet tidlig i stedet for å mislykkes, så du kunne stjele noen sine bitcoins ved å bruke scriptSig OP_TRUE OP_RETURN. Det var også mulig å sette en pushdata-opcode rett på slutten av et scriptSig for å gjøre hele scriptPubKey om til en konstant (som evalueres til sann). Satoshi fikset disse feilene ved å endre oppførselen til OP_RETURN for å få transaksjonen til å mislykkes umiddelbart og gjøre det slik at scriptSig og scriptPubKey evalueres i to separate trinn.»

– Theymos

Satoshi fikset en stor konsensusfeil ved å endre «beste kjede»-logikken fra å bruke den lengste kjeden til å bruke den kjeden med mest proof-of-work. Teknisk sett kan det hevdes at dette var en hard fork, selv om det faktisk ikke forårsaket en kjede-splitt fordi den lengste kjeden på den tiden også var den med mest proof-of-work.

Satoshi satte også grensen for blokkstørrelse som beskyttelse mot DoS-angrep. Blokkstørrelsen var opprinnelig bare implisitt begrenset av nettverksmeldingsstørrelsen på 32 MB.

Det er også en feil i OP_CHECKMULTISIG som eksisterer den dag i dag. Det er nevnt i BIP-011:

«(OP_0 er nødvendig på grunn av en feil i OP_CHECKMULTISIG; den spretter for mange elementer fra execution stack, så en dummyverdi må plasseres på stack’en).»

– Gavin Andresen

Og hvem kan glemme value overflow bug som tillot noen å lage 184 milliarder bitcoins!

               Reklame               
                                              

I mitt søk etter å finne flere tidlige Satoshi-feil som ikke er kjente, husket Greg Maxwell en saftig en:

«I de tidlige versjonene av bitcoin kunne enhver bruker utføre en hard fork på alle utgitte versjoner fra andre versjoner! Denne designfeilen viste at han ikke helt forsto de nødvendige betingelsene for sikre oppgraderinger da den først ble utgitt, men løsningen hans viste at han forsto dem senere.

Det var en opcode kalt OP_VER som presset verifiseringsnodens versjonsnummer over på stack’en. (Satoshi trodde alltid at det bare skulle være ett stykke bitcoin-nodeprogramvare.) Den tilsynelatende hensikten med den opcode’n var slik at du kunne legge til funksjoner i skriptet og få bare de nyere støtteversjonene til å se nye opcodes (det var også opprinnelig 16 bits av opcode space i kodebasen.) Men noen kunne ha brukt dette ondsinnet som «OP_VER 1234 IF FALSE RETURN ENDIF TRUE» for å få versjon 1,234 til å avvise en blokk utvunnet av en hvilken som helst annen versjon. Så enhver bruker kan få systemet til å utføre en fork når som helst! Da han fjernet OP_VER, la han til OP_NOP, som er det som gjør soft forks i moderne stil mulig. Denne endringen i seg selv var en soft fork fordi de originale versjonene ignorerte ukjente opcodes.»

Forskere har også oppdaget noen feil i Satoshi sitt whitepaper angående beskrivelsen av systemets sikkerhet.

For eksempel er det spørsmål om «miner luck» og «egoistisk mining«. Det er til og med en samling av kjente problemer med Bitcoin sitt whitepaper tilgjengelig her.

Bitcoin fulgte tydeligvis ikke et «kode er lov»-syn, men snarere «Satoshi sin visjon er lov» gitt at han gjorde en rekke justeringer i løpet av de første årene da det ble oppdaget at koden ikke var helt i tråd med intensjonen av kodeskaperen.

               Reklame               
                                              

Jeg tror dette skillet er spesielt relevant gitt at: a) Satoshi sluttet å bidra til bitcoin for mange år siden, og b) bitcoin har ingen formell spesifikasjon.

Programvaren blir aldri ferdig

Du kan se hvor lite bitcoin forstås ganske enkelt av den enorme mengden forskning som gjøres for å analysere og forbedre den.

Satoshi uttalte en gang at kjernedesignet var satt i stein og andre implementeringer vil være en trussel for nettverket. Folk tar ofte dette sitatet (og andre fra Satoshi) og bruker det til feilaktig å argumentere (via appell til autoritet) at bitcoin-protokollen må utvikle seg på en bestemt måte.

Jeg vil argumentere for at dette bare var en annen sak der Satoshi tok feil.

Som vi har sett, måtte Satoshi faktisk gjøre mange endringer i bitcoin da tidlige utviklere utforsket koden og oppdaget edge-tilfeller. Det er også over et halvt dusin bitcoin-klientimplementeringer som kjører i dag som ikke forstyrrer nettverket. Vi har til og med sett at en enkelt implementering kan være en trussel for nettverket når forskjeller på maskinnivå kan forårsake konsensusfeil, som skjedde i 2013 med Berkeley DB-fork.

Husk min tidligere beskrivelse av bitcoin som et resultat av bidrag fra masse forskjellige deler. Dette tok virkelig tak når Satoshi ga ut prosjektet sitt som han hadde jobbet med i det skjulte i flere år.

Den aller første uken etter at bitcoin ble lansert, fikk den også sin første samarbeidspartner, Hal Finney. Hal var en av de få personene som tidlig trodde at bitcoin faktisk kunne fungere, noe som er klart fra Satoshi sitt originale whitepaper:

«[Hal Finney] viste angivelig mange feil i den tidlige koden, som ble fikset ved å redusere opcodes. Hal Finney var cypherpunkenes cypherpunk. Han hadde en sjelden evne til både å kode superlativt, se skogen og trærne og beskrive det han så. Vi leser alle innleggene hans nøye, jeg tror ikke det er noen andre som fikk slik respekt.»

– Ian Grigg

Finney ga ut en rekke av e-postene hans med Satoshi til Wall Street Journal; det er interessant lesning. Du kan se Satoshi sin overraskelse da han klarer å finne flere feil som Satoshi ikke hadde forutsett selv om han hadde «testet det tungt».

I motsetning til noen systemer (som ethereum), har ikke bitcoin en formell spesifikasjon. Selv om bitcoin hadde en, vil det ikke være enklere eller vanskeligere å gjøre endringer i protokollen fra et teknisk synspunkt, selv om det kan være fra et sosialt synspunkt.

Som Charlie Lee bemerket som svar på Andresen sin foreslåtte definisjon, er den amorf:

Det er heller ikke en objektiv prosess for gjennomføring av endringer:

Paul Stzorc snakket om å ta objektive beslutninger med bitcoin-utvikling, men det er langt fra å bli realisert.

Presentasjonen hans var basert på dette blogginnlegget.

Jeg vil argumentere for at bitcoin sin styrke ikke kommer fra legemliggjørelsen av en dogmatisk tro på uforanderlighet, desentralisering eller andre buzzwords, men fra samarbeid. Prosessen med å ta samarbeid og bruke den til å bestemme menneskelig konsensus kan være støyende og rotete, men det er styringsmodellen vi må jobbe innenfor.

Slik jeg ser det, er dette styringssystemet, forankret i frivillighet, det eneste aspektet ved bitcoin som er «satt i stein».

Bitcoin sin magi

Sergej Kotliar skrev et stykke for mange år siden og beskrev hvorfor bitcoin har likheter med religion. Som han bemerker, er det litt magi i det faktum at systemet fungerer som en helhet, fordi den er avhengig av ikke-tekniske komponenter.

Systemets veljusterte insentiver danner en «usynlig hånd» som leder det.

De fleste bitcoin-brukere er sannsynligvis ikke klar over det, men de abonnerer på en sofistikert subjektivistisk ontologi ved å delta i denne kollektivt forsterkede troen på regelsystemet som omfatter bitcoin.

For å si det enklere:

Mens bitcoin kan beskrives som tillitsløs i den forstand at en full-node operatør ikke trenger å stole på noen andre deltakere på nettverket, er det på metanivå ofte en form for tillit involvert. For eksempel leser og forstår nesten ingen av bitcoin sine brukere programvaren og selve protokollen.

De stoler på at utviklerne skal være forsiktige med å introdusere feil.

Det virker for meg som at det faktum at få mennesker har en dyp forståelse av bitcoin sine tekniske operasjoner resulterer i at personer med mindre forståelse bestemmer seg for hvilke «eksperter» de skal stole på. Som sådan, når eksperter er uenige, deler folket seg og støtter de ekspertene med mest overbevisende argumenter.

Dessverre betyr dette at noen ganger blir politikk injisert i beslutningsprosessen.

Som Shaolin Fry nylig bemerket, bør vi bestrebe oss på å unngå politisering av foreslåtte protokollforbedringer. For å være tydelig betyr ikke dette at «ingen i økosystemet er motivert av politiske idealer». Snarere betyr det at retningen til systemet ikke er drevet av politikk der en gruppe mennesker tvinger sin tro på en annen.

For eksempel betyr begrepet «stemme» generelt at en politisk prosess finner sted. Vi bør i stedet strebe etter et system med tillatelsesløs innovasjon der deltakerne kan signalisere at de ønsker å samhandle på bestemte måter, uavhengig av hva andre deltakere signaliserer.

«Vi har allerede mange alternativer for valutaer som er (indirekte) kontrollert av politiske innfall. Bitcoin bør være sunnere enn det. Jeg ville elsket å kunne si at de fullstendige konsensusreglene på dag én var uforanderlige («satt i stein»), men den tekniske virkeligheten gjør det urealistisk. Den drømmen for bitcoin døde den dagen den første entydige og alvorlige konsensusfeilen ble funnet. Deaktiveringen av buggy-opcodes svekket den ytterligere, og krevde at flere endringer ble fullstendig generelle igjen. Men verden er sjelden så beleilig svart-hvitt. Bitcoin kan fortsatt innfri løftet om å være en mindre politisk penge uten å være helt hugget i stein.»

– Greg Maxwell

Projeksjonsproblemer

Noen bitcoin-brukere oppnår en så tilstrekkelig forståelse av protokollen at de begynner å se for seg potensielle forbedringer, og da prøver de å endre systemet for bedre å passe deres perspektiv.

Dette er en «kommando og kontroll»-tankegang som er menneskelig natur; Jeg har selv gjort meg skyldig i å gjøre den samme feilen tidligere ved å prøve å projisere perspektivet mitt på bitcoin i stedet for å innta perspektivene til samfunnet.

Det er langt flere hensyn som går inn i debatter om bitcoin sin utvikling enn bare de tekniske aspektene av hvordan endringer vil påvirke nettverket.

Ryan X Charles dekket høynivåfilosofiene til de to mest populære synspunktene i skaleringsdebattene. Mye av påstanden i disse debattene kommer fra: a) forskjellige prioriteringer og b) forskjellige tro på brukssakene for bitcoin.

Dessverre har en betydelig del av deltakerne i disse debattene tatt sine perspektiver og utviklet dem til det punktet av dogmatisk tro, noe som gjør det nesten umulig å engasjere seg i en intellektuell samtale.

En grunn til at jeg tror det er lett for folk å projisere sitt perspektiv på bitcoin er på grunn av mangelen på spesifikasjoner og dermed mangelen på klare mål.

For eksempel beskrev Satoshi bitcoin som et «peer-to-peer elektronisk kontantsystem». Men selv denne enkle beskrivelsen kan lett tolkes på mange måter. «Peer-to-peer» gir ingen kontekst rundt hvor mange jevnaldrende det skal være; «kontanter» gir ingen kontekst rundt hva hastigheten eller kostnaden for transaksjoner skal være.

På samme måte som du kan finne en rekke perspektiver og tolkninger av den amerikanske grunnloven eller Bibelen eller Koranen, kan Satoshi sine skrifter tolkes og diskuteres.

Projiseringen av individuelle perspektiver på bitcoin har ført til samme type brudd som vi kan observere i politiske, filosofiske og religiøse systemer. En gruppe starter stort sett på samme side, men så dukker det opp et problem som gruppen ikke kan danne en konsensus om.

Individene begynner å polarisere sine perspektiver og støtter handlinger som fremmer tribalisme. Partilinjer trekkes, lakmustest brukes på nykommere, uenig tale undertrykkes, propaganda foreviges, kommunikasjon bryter sammen og ekkokamre dannes.

Som et resultat, i dag, går bitcoin-debatter ofte over i feilaktige påstander og «name calling», der den ene parten anser den andre parten for å være enten uvitende eller ondsinnet. Dette er uheldig fordi folk ofte ender opp med å snakke forbi hverandre under antagelsen om at de har rett og at den andre parten tar feil.

Det er urovekkende å se forbening av perspektiver til dogmatiske oppfatninger som forringer kvaliteten på diskursen i samfunnet.

Jeg vil argumentere for at det ikke er noen enkelt «riktig» tilnærming til å se bitcoin, men snarere et mangfold av perspektiver. Mangfoldet av perspektiver og brukstilfeller var temaet for en av de første artiklene jeg noen gang skrev om bitcoin.

Jeg sier ikke at du må være enig i retorikk formidlet av folk med motstridende perspektiver på hva bitcoin skal være. Jeg vil imidlertid foreslå at du bør gjenkjenne det som sådan – ikke som et ondsinnet angrep som du må forsvare deg mot med et direkte motangrep.

Hvis en debatt blir for opphetet og diskusjonen bryter sammen, kan du alltid koble fra.

Husk at alle mennesker blir offer for skjevheter; vi kan ikke unngå å bli påvirket av dem, men vi kan bevisst velge hvordan vi reagerer på andre partiske mennesker. Det kan også hjelpe å huske at bitcoin ikke trenger deg for å forsvare det – du forsvarer ditt eget perspektiv på bitcoin ved å velge hvilken programvare du vil kjøre og ved å velge systemet du lagrer pengene dine i.

Tao’en til bitcoin

Andreas snakket en gang om den «støyende» skaleringsdebatten.

Selv om det kan være ubehagelig, bør vi huske at det er resultatet av en funksjon snarere enn av en feil i bitcoin.

Bitcoin-økosystemdeltakere bør være ydmyke når de diskuterer det i stedet for å være sikre på at deres forståelse av systemet er bedre enn andre som deltar i en diskusjon. Jeg har for det første funnet ut at samtalene mine er mer produktive etter å ha gjort denne erkjennelsen.

Jeg har også kastet bort mye mindre tid ved å unngå samtaler som åpenbart skulle være uproduktive på grunn av de dogmatiske synspunktene som ble uttrykt av den andre parten.

Du kan oppnå “Tao’en til bitcoin” ved å akseptere at bitcoin er på sin egen vei som er utenfor din kontroll. Ikke vær frustrert hvis din visjon om bitcoin ikke stemmer overens med andre brukere sine. Bitcoin vil naturlig konvergere etter den minste fellesnevneren for menneskelig konsensus – det som er fordelaktig (eller i det minste ikke skadelig) for den største undergruppen av deltakere.

Tao’en til bitcoin er ikke å forstå Bitcoin, det er å akseptere at Bitcoin er hva det er.

Bitcoin «Breaks Bad»

Jeg har forsøkt å presentere tilstrekkelig bevis på at bitcoin trosser konvensjonelle pedagogiske tilnærminger og til og med trosser selverklærte myndigheter som hevder å forstå det. Resultatet kan være forvirrende, men det er ikke behov for negativitet.

Vi bør fortsatt håpe på at bitcoin vil fortsette å «mislykkes å skalere» akkurat som internett har gjort.

Jimmy Song gjorde også en stor sak for optimisme i møte med vranglås og fortvilelse.

«Kort sagt, bitcoin modnes og markedet begynner å definere hva bitcoin skal være. Jeg er sikker på at det er folk på begge sider av debatten som ikke vil like hva den kommer til å bli, men det er det du får med en desentralisert valuta.»

Jeg vil fortsette mitt søk etter å konsumere så mye informasjon som mulig om dette nye økosystemet, men har for lengst gitt opp målet om å forstå bitcoin.

Jo fortere jeg løper mot målstreken, jo lenger beveger den seg fra meg. Mens noen mennesker i dette området er mer sikre enn andre på dens fremtidige retning, er sannheten at vi går nye veier og lærer mens vi beveger oss fremover.

Du forstår ikke bitcoin, og det er greit – det gjør ingen andre heller.

Dette er et gjesteinnlegg skrevet av Jameson Lopp. Uttrykte meninger er helt deres egne og reflekterer ikke nødvendigvis meningene til Bitcoinplassen.