Jeg opprettet en åpen kildekode-kontrakt og web-front-end, OracleSwap, fordi jeg vil se krypto flytte tilbake til sine off-the-grid røtter. Jeg kan ikke administrere det fordi jeg har for mange fingeravtrykk på det til å dra direkte nytte av det. OracleSwap er en mal som gjør det enkelt for programmerere å administrere kontrakter som refererer til objektive resultater: likvide eiendeler eller sportsspill. Brukere oppretter lange eller korte bytteposisjoner (aka CFD) som refererer til en unik Oracle-kontrakt som lagrer priser (prototypen refererer til ETH/USD, BTC/USD og S&P500). De eneste brukerne i denne kontrakten er likviditetsleverandører, investorer og oracle. Den eneste angrepsoverflaten er via et konspirerende orakel som legger ut en falsk pris. Den inneholder flere innovasjoner, inkludert foroverstartspriser (som marked-på-lukke), nettingeksponering for likviditetstilbydere, og muligheten og insentivet for jukse parter til å nullstille jukseren sin.
Hvitboken og det tekniske vedlegget beskriver det mer fullstendig, men jeg vil forklare hvorfor et sentralisert, pseudonymt orakel er bedre enn et desentralisert orakel for smarte kontrakter. Mange gjennomtenkte kryptoledere mener desentralisering er en forutsetning for enhver dapp på blokkjeden, som de definerer som å antyde mange agenter og en konsensusmekanisme. Dette er rett og slett feil, en kategorifeil som antar at delene må ha alle egenskapene til helheten. Hovedpoenget er at desentraliserte orakler er ineffektive og distraherer fra den grunnleggende mekanismen som gjør ethvert orakel «tillitsløst».
Etter det første korstoget (1099) sikret tempelridderne pilegrimer til det nylig erobrede Jerusalem og utviklet raskt en tidlig internasjonal bank. En pilegrim kunne sette inn penger eller verdisaker i en tempelrisk høyborg og motta et offisielt brev som beskrev hva de hadde. Pilegrimen kunne deretter ta ut penger langs ruten for å dekke deres behov. På 12-tallet kunne innskytere fritt flytte formuen sin fra en eiendom til den neste.
Tempelherrene var ikke under noen monarks kontroll, og enda verre, mange skyldte dem penger. Til slutt grep kong Filip IV av Frankrike en angrepsflate ved å arrestere hundrevis av topptemplarer, inkludert stormesteren, alle på samme dag over hele Europa i 1307. De ble anklaget for kjetteri, middelalderversjonen av systematisk risiko, en klar trussel mot alt som er godt og edelt. Noen år senere ble mange Templars henrettet og Templarbanksystemet forsvant [ukjente Templars var på en eller annen måte i stand til å flykte med sin enorme formue, som den gang ikke var digital, og det er et mysterium hvor den ble av].
Regjeringer, børser og tradisjonelle finansinstitusjoner har alltid kjempet mot alt som kan redusere deres markedsmakt. Desentralisering er avgjørende for å motstå deres uunngåelige angrep, ved at hvis noen overtar en eksisterende blokkjede, kan den dukke opp igjen via en hard gaffel. Nåverdien av den gamle kjeden ville skape en villig og dyktig hær av erstatningsgruvearbeidere hvis Kina eller Craig Wright bestemte seg for å tilegne seg 51 % av eksisterende Ethereum-gruvearbeidere.
Vitalik Buterin beskriver fint denne motstandskraften i sin beundringsverdige vurdering av hans begrensede makt:
Greia med utviklere er at vi er ganske fungible mennesker. En utvikler går ned, og noen andre kan fortsette å utvikle. Hvis noen setter en pistol mot hodet mitt og ber meg om å skrive en hard gaffellapp, vil jeg definitivt skrive den harde gaffellappen. Jeg skriver GitHub-problemet, jeg skriver koden, publiserer den, og jeg skal gjøre alt de sier. Hvis jeg gjør dette og publiserer en hard fork-oppdatering for å slette en haug med kontoer, hvor mange mennesker vil være villige til å laste ned oppdateringen, installere den og bytte til den oppdateringen? Dette kalles desentralisering.
Vitalik Buterin. TechCrunch: Sessions Blockchain 2018.
Potensialet for en hard gaffel i tilfelle et angrep er den primære beskyttelsen mot utenforstående. Dette avhenger av at protokollen har et dypt og engasjert sett med brukere og utviklere som prioriterer essensielle bitcoin-prinsipper – åpenhet, uforanderlighet, pseudonymitet, konfiskasjonssikker og tillatelsesfri tilgang – og hvorfor desentralisering er avgjørende for langsiktig kryptosikkerhet.
Utenfor angrep har desimert om ikke ødelagt flere en gang nyttige økonomiske innovasjoner. E-gold, Etherdelta, Intrade og ShapeShift hadde alle iøynefallende sentraliseringspunkter, som tillot myndighetene å straffeforfølge, stenge eller tvinge dem til å underkaste seg tradisjonelle finansielle protokoller. Et pseudonymt orakel som kjører praktisk talt skript på eksterne servere over hele verden, ville være ugjennomtrengelig for slike forstyrrelser. Denne arven er det som gjør Ethereum så verdifullt, ved at dapps ikke trenger sine egne desentraliserte konsensusmekanismer for å unngå slike angrep.
Ethvert orakel som legger til rette for derivathandel eller sportsspill er underlagt regulering i de fleste utviklede land. Dapp-selskaper er iøynefallende angrepsflater. I den grad Augur og 0x ikke konkurrerer med tradisjonelle institusjoner, gjør myndighetene klokt i å se dem som ubetydelige kuriositeter rett og slett. Hvis disse protokollene noen gang blir konkurransedyktige med konvensjonelle finansinstitusjoner - for eksempel ved å gi en futuresposisjon på ETH-prisen - vil alle de tradisjonelle fiat-forskriftene bli tvunget på dem under påskudd av å beskytte publikum. Maker og lenke flørter allerede med KYC, fordi de vet at de ikke påfallende kan tjene penger på markeder som til slutt vil generere fortjeneste uten å overgi seg til Borg kollektiv.
Satoshi trengte å forbli anonym i de tidlige stadiene av bitcoin for å unngå at noen lokale myndigheter straffeforfulgte ham før bitcoin kunne fungere uten ham. Peer-to-peer-systemet som bitcoin opprinnelig emulerte, Tor, er befolket av folk som ikke annonserer på tradisjonelle plattformer, har institusjonelle investorer eller snakker på konferanser. Levedyktige dapps bør følge dette eksemplet og fokusere mindre på korporatisering og mer på å utvikle sitt rykte blant nåværende kryptoentusiaster.
For saker som gjelder små pengesummer er det vanskelig for tilfeldige personer i desentraliserte systemer å samarbeide på bekostning av andre deltakere. Kostnadene ved å samarbeide er for høye, noe som eliminerer effekten av troll og enestående bråkmakere. Likevel skaper dette en farlig følelse av selvtilfredshet ettersom enhver robust mekanisme må stimulere til god oppførsel selv om det er samarbeid. Hvis vi vil at blokkjeden skal håndtere ekte, betydelige transaksjoner en dag, innebærer dette tilfeller der det vil være nok ETH på spill til å anta at noen til slutt vil konspirere for å hacke systemet.
Satoshi visste at ondsinnet samarbeid ville være mulig med bevis-på-arbeid, bare ikke problematisk fordi det ville være selvødeleggende. I Bitcoin hvitbokSatoshi la vekt på hvordan bevis-på-arbeid fjernet behovet for en pålitelig tredjepart, hvorfor begrepet tillitsløs ofte tilskrives et desentralisert nettverk. Med proof-of-work er det ikke umulig å dobbeltbruke, bare i strid med egeninteressert rasjonalitet. Spesielt skrev han at alle med evnen til å dobbeltbrukeburde finne det mer lønnsomt å spille etter reglene … enn å undergrave systemet og gyldigheten til sin egen rikdom».
For de store blokkjedene som Ethereum og Bitcoin trenger man spesialisert gruveutstyr som kun er verdifullt hvis gruvearbeidere følger bokstaven og ånden i loven deres. Kapitalen som ble ødelagt ved å manipulere blokker er tusen ganger større enn den direkte hash-kraftkostnaden ved et slikt angrep. Mens en håndfull Bitcoin- eller Ethereum-gruvegrupper effektivt kan samarbeide og kontrollere 51 % nettverkskontroll, er det ikke bekymringsfullt fordi det ikke ville være i deres egeninteresse å konstruere et dobbeltforbruk gitt kostnadene ved å miste fremtidige inntekter. For eksempel, våren 2019, foreslo lederen av Binance, Changpeng Zhao, en tilbakerulling av blokkjede for å angre et nylig tyveri. Bitcoin-samfunnet hånet ham, og han trakk seg raskt tilbake fordi dette ikke ville være i den langsiktige egeninteressen til bitcoin-gruvearbeiderne eller børsene. Å spare 40 millioner dollar ville desimere en blokkjede på 100 milliarder dollar, noe som gjør dette til en enkel avgjørelse.
Folk nevner ofte samarbeidsmotstand som en primær desentraliseringsdyd. Et bedre begrep ville vært konspirasjonsmotstand. Et desentralisert system må generere skikkelige insentiver selv om det er samordning, fordi samhandling alltid er mulig, siden store desentraliserte blokkjeder i praksis kontrolleres av en håndfull team (Michels' Oligarkiets jernlov). Det har vært flere tilfeller av godartet blokkjedekollisjon, som når det brukes fornuftig og sparsomt øker motstandskraften (f.eks. ble sårbarheter i Bitcoin lappet bak kulissene i september 2018, den beryktede Ethereum 2016-tilbakeføringen som svar på DAO-hacket). Jusprofessor Angela Walsh fremhevet episoder med godartet samarbeid som bevis Bitcoin og Ethereum er ikke desentralisert, og bør derfor være mer regulert av standardinstitusjonene.
Advokater er opptatt av tekniske definisjoner, men nøkkelpoenget er at de konvensjonelle regulatorene ikke kan regulere Bitcoin eller Ethereum hvis de prøvde, og fremhever den essensielle desentraliseringen av disse protokollene. Hvis SEC i USA, eller FCA i Storbritannia, prøvde å aggressivt regulere Ethereum, ville de finne beslutningstakerne snart utenfor deres jurisdiksjon. På samme måte, hvis Joe Lubin og Vitalik Buterin ble enige om å kaste Ethereum inn i Facebook, ville gruvearbeidere forkaste det gamle kjeden og den eksisterende Ether ville være mer verdifull på denne nye kjeden. I den grad et slikt trekk er sannsynlig, er protokollen desentralisert, trygg for utenforstående som ikke liker dens visjon uansett årsak.
Konspirasjonsmotstand kommer alt ned på insentiver, og sørger for at de som kjører systemet finner det å kjøre systemet som generelt sett er mer verdifullt enn juks. Det samme profittmaksimerende insentivet holder ikke bare gruvearbeiderne ærlige, men det beskytter dem også mot seg selv. Mens blokkjeder har mange ting til felles, har de svært forskjellige prioriteringer. Brukere som prioriterer hastighet foretrekker EOS; de som prioriterer anonymitet, Monero; institusjonell aksept, Ripple. Et quorum av gruvearbeidere som konspirerer for å radikalt endre blokkjedens tradisjonelle prioriteringer, vil devaluere eiendelen deres ved å fremmedgjøre basen deres, og de som deler den nye prioriteringen vil ikke bytte over, men heller fremheve at favorittblokkjeden deres har hatt rett hele tiden. Konkurranse mellom kryptoer hindrer hubristiske innsidere fra å gjøre for mye skade.
Rask og grei overvåking er avgjørende for å skape en insentivkompatibel mekanisme. For et desentralisert orakel er ulike undergrupper av agenter i arbeid med ethvert resultat. Det er vanskelig å finne et kortfattet sett med data om for eksempel prosentandelen og typen Augur-markeder som er erklært ugyldige, eller en liste over Chainlinks tidligere resultatrapporter. Selv om all orakelrapportering eksisterer (uforanderlig!), er det rett og slett upraktisk å sette dette sammen for en gjennomsnittlig bruker. Videre blir tidligere feil og juks avfeid som uregelmessigheter, noe som reduserer kostnadene ved juks.
2017 ICO-boblen oppmuntret alle i kryptoområdet til å utstede tokens uavhengig av behov; hvordan et token ville gjøre en dapp mer effektiv var en sekundær bekymring for investorer som var ivrige etter å investere i den neste bitcoin. Selv om en liten brøkdel av ICO-pengene ble brukt til forskning og utvikling, innebærer det hundrevis av millioner dollar med talent og tid fokusert på å lage desentraliserte dapps som kan rettferdiggjøre deres behov for tokens. Alle ville ha anerkjent verdien av et pålitelig desentralisert orakel, men de var ikke i stand til å levere et, en talende fiasko. De mest populære oraklene i dag er effektivt sentralisert, ettersom ChainLink og MakerDAO har iøynefallende angrepsflater da de begge er tett kontrollert av innsidere. De vil fortsette å være effektivt sentralisert fordi alternativet ville være et Augur-lignende system som er utålelig ineffektivt (langsomme, hackbare, lamme kontrakter).
Desentraliserte orakler som er avhengige av markedsverdien av deres tokens som gir god oppførsel, har en betydelig kile mellom hvor mye brukere må betale oraklet og hvor mye som trengs for å holde det ærlig. Anta for eksempel at det er et spill slik at man må betale reporteren 1 ETH slik at nettogevinsten av ærlig rapportering er større enn en svindel reporteren kan implementere. Hvis bare 2 % av tokeninnehavere rapporterer om et utfall, innebærer dette at vi må betale 50 ETH til oraklet kollektivt (1/0.02), siden vi ikke har noen måte å fokusere nåverdien av token på undergruppen av tokenholders rapportering . Man kan tvinge reporteren til å legge ut en obligasjon som ville gått tapt hvis de rapporterer uærlig, men for å få dette til å fungere vil det begrense utbetalingen på trivielle nivåer basert på reporterkapital, som ineffektivt ignorerer nåverdien av oraklet, og også innebærer en langvarig forsinkelse i betalingen.
Et annet problem med desentraliserte orakler er at de vanligvis serverer et mangfoldig sett med spill. Selv om dette letter vrangforestillinger om Amazon-lignende generalitet, gjør det spesifikke kontrakter dårlig tilpasset orakelinsentiver. Frekvensen og størrelsen på utbetalingen vil variere på tvers av applikasjoner, slik at et orakelgebyr som til enhver tid stimulerer til ærlighet vil være for dyrt for de fleste applikasjoner. Effektive løsninger minimerer kontekstuelle parametere, noe som innebærer at den beste generelle løsningen vil være suboptimal for en bestemt bruk.
Selv om det er åpenbare kostnader ved desentralisering i et orakel, er det ingen fordeler hvis det grunnleggende kravet om sensur/angrepsmotstand er tilfredsstilt. Mengdens visdom er ikke relevant for kontrakter på likvide eiendeler som bitcoin eller S&P500. En omdømmescoringsalgoritme er meningsløs fordi den mest åpenbare risikoen er en exit-svindel, som er avhengig av å oppføre seg ærlig frem til den endelige transaksjonen (Bitconnect).
For å justere oraklets utbetalingsplass på en kryptoøkonomisk optimal måte, må man lage en orakelutbetaling slik at fordelen med sannferdig rapportering alltid oppveier kostnadene ved feilrapportering. Ved å ha oraklet i total kontroll, maksimeres inntektene fra sannferdig rapportering; ved å være utvetydig ansvarlig og lett å revidere og straffe, bæres kostnadene fra feilrapportering fullt ut av oraklet; ved å spille et spesifikt gjentatt spill, er kostnads-/nytteberegningen konsistent hver uke; ved å gi en jukset bruker muligheten og incitamentet til å straffe et jukseorakel, minimeres jukseutbetalingen. Disse fører alle til effektiviteten til et orakel med én agent.
Utilsiktede feil kan komme fra korrupte kilder eller algoritmen som samler disse prisene og legger inn én enkelt pris i kontrakten. Vi gjør ofte utilsiktede feil og stoler på godviljen og sunn fornuft til de vi gjør forretninger med for å «angre» de tilfellene der vi kan ha lagt til en ekstra null til en betaling. Kredittkort tillater tilbakeføringer, og hvis en bank ved et uhell setter inn $1MM på kontoen din, er du ansvarlig for å betale tilbake. Ulempen er at denne prosessen involverer tredjeparter som håndhever regelen om at store utilsiktede feil kan reverseres, og dette innebærer at de har rettigheter over brukerkontosaldoene.
I OracleSwap har selve oracle-kontrakten to feilkontroller innenfor soliditetskoden. For det første hvis prisene beveger seg med mer enn 50 % fra tidligere verdi, og for det andre hvis de er nøyaktig den samme som den forrige verdien. Disse begrensningene fanger opp de vanligste feilene. Utenfor blokkjeden er imidlertid feilfiltrering mer effektivt adressert generelt, og til syvende og sist bør det gjøres til en algoritme fordi ellers introduserer man en angrepsoverflate via mennesket som ville verifisere en sluttrapport. Derfor, ved å bruke mange mennesker for å redusere feil, bidrar det bare til den mer subtile og farlige kilden til dårlige priser. OracleSwap bruker en automatisk trekk av priser fra flere uavhengige kilder, over et par-minutters vindu, og tar medianen. Ettersom kontrakten er rettet mot langsiktige investorer, vil en medianpris fra flere børser ha en akseptabel standardfeil; ettersom de nøyaktige feedene og utvekslingene er uspesifisert, forhindrer dette sensur; ettersom priser legges ut i løpet av et 1-times vindu som utelukker handel, er det enkelt å samle inn og validere en nøyaktig pris.
Desentralisering av orakler løser et problem de ikke har: angreps- og sensurmotstand. En agent som oppdaterer en orakelkontrakt trenger bare tilgang til internett og pseudonymitet for å unngå sensur. Gitt det, er den beste måten å skape ordentlige orakelinsentiver på å lage et spill der utbetalingene for ærlighet og juks er godt parametrisert, og utenforstående kan enkelt verifisere om en agent oppfører seg ærlig. Enkelhet er avgjørende for ethvert robust spill, og dette innebærer å fjerne partier og prosedyrer.
Markeder er den ultimate desentraliserte mekanismen. Det er ikke et paradoks at markeder består av sentraliserte agenter da det ofte er tingenes natur at eiendommer eksisterer på lavere nivåer, men ikke høyere. Et desentralisert marked trenger bare at forbrukerne har både valgmuligheter og informasjon, og at bedrifter har gratis adgang. Markedene har alltid vært avhengige av enkeltpersoner og selskaper med verdifullt omdømme fordi kvalitet alltid er vanskelig å vurdere, så forbrukere foretrekker selgere med godt rykte for å unngå å gå hjem med dårlige egg eller en bil med dårlige ledninger. Blokkjeder er historiens beste ansvarlighetsenhet, som lar kontrakter skape verdifullt rykte for administratorene deres, samtidig som de forblir anonyme og dermed usensurerbare.
Et sett med konkurrerende kontrakter er mer effektivt enn generaliserte orakler designet for uspesifiserte kontrakter, eller generaliserte handelsprotokoller designet for uspesifiserte orakler. En enkel kontrakt knyttet til et orakel som er "alt-i" skaper klar og utvetydig ansvarlighet, og genererer det sterkeste insentivet for ærlig rapportering