Offentliggørelse: forfatteren af ​​denne artikel er grundlæggeren og chefforskeren af Ethereum-projekt

Sidste uge kom Adam Back og Austin Hill ud med en meddelelse på Let’s Talk Bitcoin, hvor de annoncerede deres nyeste projekt: “sidekæder”. Ideen, som de beskrev, ville muliggøre eksistensen af ​​alternative blockchains, måske med forskellige regler, der tillader forskellige former for yderligere funktioner eller transaktionstyper, men med en valutaenhed, hvis værdi er knyttet til bitcoin-værdien. Hensigten er at tillade eksperimentering med forskellige udvidelser af Bitcoin-protokollen ved hjælp af separate netværk for at undgå enhver risiko for selve Bitcoin, mens man stadig bruger den samme underliggende valutaenhed. Så snart ideen blev annonceret, har der været en stor mængde offentlig interesse i konceptet og har bragt fornyet håb om, at Bitcoin-protokollen potentielt kan blive meget mere magtfuld, end den er i dag.

Under kølerhjelmen

Ideen bag sidekæder er ikke ny; konceptet har eksisteret siden mindst sidste år i december, og en forløber for ideen har eksisteret i flere år før da. Forløberen, en protokol kendt som envejspindling, var en mekanisme, der teoretisk ville blive brugt til at styre en overgang fra “Bitcoin 1.0” til “Bitcoin 2.0”, og fungerede som følger. Antag, at der i Bitcoin 1.0 allerede er udstedt 13 millioner valutaenheder gennem minedrift, hvor 8 millioner stadig er tilbage at give ud. Distributionsmodellen for BTC2.0 frigiver 8 millioner enheder gennem minedrift efter nøjagtig samme tidsplan som BTC1.0 efter dette tidspunkt, men de øvrige 13 millioner distribueres gennem en mekanisme kendt som “proof-of-burn”.

I det væsentlige ville man tage en enhed af BTC1.0, sende den til en uudnyttet adresse (f.eks. 1111111111111111111114oLvT2) og indsende et kryptografisk bevis for, at denne transaktion fandt sted, underskrevet af den samme private nøgle, der sendte transaktionen, som en transaktion til Bitcoin 2.0. I henhold til Bitcoin 2.0-protokollen vil dette give brugeren ret til at modtage en enhed på 2,0. Dette kaldes en “envejspind”, fordi værdien af ​​en BTC2.0 højst kan være lig med en BTC1.0; Ellers ville folk arbitrage forskellen ved at konvertere bitcoins til 1: 1-satsen. Bortset fra at sælge BTC2.0 til BTC1.0 på markedet er der imidlertid ingen måde at gå tilbage, så hvis eksperimentet mislykkes, kan værdien af ​​BTC2.0 falde til nul.

Bitcoin sidekæder bruger en forbedret version af dette system kaldet “to-vejs pegging”, som fungerer som følger. For at modtage en enhed af BTC2.0, skal man tage en enhed af BTC1.0 og sende den til et “script”, som vi kalder X og lader være ubeskrevet for nu. Et script i Bitcoin er en adresse, der i stedet for at være ejet af en privat nøgle i det væsentlige fungerer som en låsekasse, der kun låser op bitcoins, når de får en transaktion, der opfylder visse betingelser. For eksempel kan man have et script, der låser midlerne op til den første person, der indsender et halvtredscifret primtal bestående udelukkende af cifrene 3 og 5. At foretage transaktionen og offentliggøre et kryptografisk bevis for, at en sådan transaktion blev foretaget, til Bitcoin 2.0-blockchain giver brugeren ret til en enhed af BTC2.0.

Nu er definitionen af ​​X enkel: X låser op for midlerne (husk, dette er en enhed af BTC1.0), hvis der gives et gyldigt kryptografisk bevis for, at afsenderen ødelagde en enhed af BTC2.0. Der findes således en mekanisme til konvertering af BTC 1.0 til BTC2.0, og netop den mekanisme skaber en anden mekanisme, der er begrænset i værdi til det samlede antal oprettede BTC2.0, som kan bruges til at konvertere BTC2.0 tilbage til BTC1.0 . Derfor tovejspløkker.

Mekanismen, som disse “kryptografiske bevis” bruger, er afhængig af en kryptografisk konstruktion, der anvendes i Bitcoin, kaldet et Merkle-træ. I en Bitcoin-blok er kun en enkelt 32-byte-hash faktisk inkluderet i blokoverskriften i stedet for blot at have hver transaktion direkte. Denne 32-byte hash beregnes i sig selv fra to andre 32-byte hashes, som hver kommer fra to andre 32-byte hashes, og så videre, indtil endelig værdierne i bunden er selve transaktionerne. Det er netop pointen med denne mekanisme at tillade eksistensen af ​​kompakte bevis for, at en bestemt transaktion er i en bestemt blok; alt, hvad man har brug for, er den ene gren af ​​hashes, der går op fra den transaktion til rodnoden, eller i alt 10 hashes til 1000 transaktioner eller 20 hashes for en million transaktioner. Dette er umuligt at smede; hvis du forsøger at ændre selv en enkelt transaktion i træet, forplantes ændringerne opad gennem hashes, indtil endelig rodnoden ender helt anderledes.

Dette løser imidlertid ikke problemet fuldstændigt; alt, hvad det fortæller dig, er, at en eller anden blok et eller andet sted indeholder en given transaktion. Det fortæller dig ikke, at transaktionen er i hovedkæden; i virkeligheden kunne de samme bitcoins, der blev brugt i transaktionen, allerede være sendt til en anden kilde, hvilket gør transaktionen ugyldig. Der er to måder at løse dette på. En tilgang og langt den enklere er, at bevismekanismen i Bitcoin 2.0 ikke beder kun om Merkle-trægrenen, men også om blockchain, der går seks blokke tilbage, ligesom en købmand beder om seks bekræftelser ved hjælp af minedrift som fuldmagt til gyldighed. For højere sikkerhed kan der kræves et meget større antal blokke som tres. Denne tilgang er enkel og synes at opfylde alle de krævede parametre.

Udfordringer

Ovenstående mekanisme er imidlertid som beskrevet meget ufuldkommen. Når en almindelig købmand beder om seks bekræftelser, kræver det at producere seks blokke hurtigere end resten af ​​netværket kombineret i realtid for at trække et dobbeltforbrugsangreb mod den købmand sammen, i realtid, en opgave, der kræver mindst 30 af den samlede netværkshashkraft til at arbejde med enhver ikke ubetydelig succesrate. Med den ovenfor beskrevne tovejs-pegging-mekanisme kan en ondsindet minearbejder med endda 1 hashpower til sidst generere seks blokke eller endda tres blokke og derefter bruge disse blokke til bedragerisk at kræve alle BTC1.0, der er sat i BTC2.0-låsekasserne (eller i den anden retning hævder svigagtigt et ubegrænset antal BTC2.0). En mulig patch, der kan komme i tankerne, er at kræve, at den samme person, der oprettede lockboxen, åbner den og derved begrænser mængden af ​​skader, der kan gøres pr. Person, men dette løser ikke problemet, fordi den ondsindede minearbejder let kan kollidere med nogen andet. Det grundlæggende problem, at der ikke er nogen måde at komme op med en mekanisme til validering af blockchain, der ikke opdaterer sig selv over tid, er enten meget vanskelig at løse eller kan sandsynligvis ikke løses, mens man forbliver rent inden for Bitcoins “statiske lockbox” -skriptparadigme.

En anden tilgang, en der kan løse dette problem uden overdrevne vanskeligheder, er mere indviklet og påtrængende. Det kræver i det væsentlige at inkludere det, der kaldes en “let klient” til Bitcoin 1.0, i Bitcoin 2.0. Den lette klient beskrives lettere som en langvarig “kontrakt”, et program på blockchain med en stor mængde intern tilstand, der kører hver gang en transaktion sendes til den, der ville acceptere blokke og kontrollere blokoverskrifter i nøjagtigt på samme måde som en Bitcoin-klient på din mobiltelefon ville. Denne kontrakt vil derefter føre en løbende liste over alle blokoverskrifter i Bitcoin 1.0, og for at modtage en BTC2.0 skal man indsende et kryptografisk bevis for, at du har foretaget den nødvendige transaktion i BTC1.0 i kontrakten sammen med en sikkerhed depositum på 0,1 BTC2.0.

Kontrakten kontrollerer, at beviset er gyldigt, ender ved en blok, der er i kontraktens egen interne mini-blockchain, og derefter venter en af ​​to ting, der skete. For det første, når der er tilføjet tres flere Bitcoin 1.0-blokke i kontrakten, frigiver den en enhed BTC2.0 til afsenderen plus sikkerhedsdepositum. Alternativt, hvis en anden indsender et kryptografisk bevis for, at transaktionen er ugyldig af en eller anden grund (f.eks. Bruger den bitcoins, der ikke findes) inden for den tid, ville de modtage depositum.

Dette ville løse sikkerhedsproblemet, men har en vigtig fejl: det kan ikke gøres inden for Bitcoin-protokollen, som den er. Det er ret nemt at implementere i en protokol som Ethereum, fordi det er specielt designet til kontrakter, men Bitcoins scripting-funktionalitet tillader ikke eksistensen af ​​kontrakter, der har intern tilstand, så det ville kræve en meget væsentlig ændring af Bitcoin 1.0-protokollen at gøre dette inde i Bitcoin. I sidste ende ser Austin Hill og Adam Backs tilgang måske ikke ud som nogen af ​​disse strategier; problemets store kompleksitet viser imidlertid, at der stadig er mange udfordringer.

Minedrift

Et andet vigtigt spørgsmål er: hvordan sikres disse sidekæder? Standardmekanismen til sikring af en blockchain er minedrift, men minedrift kræver en mekanisme til belønning af minearbejdere i denne kæde. I en sidekæde skal hver enhed i sidekædevalutaen bakkes op af en script-lockbox, der indeholder en enhed af BTC på Bitcoin-blockchain, så der er ingen enkel mulighed for at udstede valutaenheder fra siden ingen steder. Der er to muligheder for dette: demurrage (dvs. en procentvis skat på alle BTC i sidekæden) og transaktionsgebyrer. Begge disse giver dog en forholdsvis lav indtægt, og det er derfor slet ikke sikkert, at almindelig gammel uafhængig minedrift løser problemet.

Der er to tilgange til at omgå dette problem. En tilgang er at have sidekæden sikret ved bevis for indsats ved at bruge de små indtægter fra transaktionsgebyrer til at kompensere deltagende interessenter med en rentesats. Denne tilgang ville imidlertid være meget vanskelig at implementere i en sidekæde, fordi beregningerne involveret i validering af bevis for indsats sandsynligvis er for komplekse til effektivt at implementere direkte på en blockchain. Den anden tilgang, og den, der fremmes af Adam Back og Austin Hill, kaldes “merge-mining”; I det væsentlige inkluderer minearbejdere i Bitcoin blokke data fra både Bitcoin-blokken og Namecoin-blokken, hvilket giver minearbejdere mulighed for at give sikkerhed for begge kæder på samme tid ved hjælp af den samme beregningsindsats.

Som argumenteret af Bitcoin-udvikleren Peter Todd har begrebet fusion-mining imidlertid en meget vigtig sikkerhedsfejl: medmindre flertallet af Bitcoin-minearbejdere er enige om at fusionere en bestemt kæde, er denne kæde uden tvivl slet ikke sikker. For at forstå hvorfor skal du først overveje tilfældet med et mere traditionelt altcoin, i vores eksempel kører SHA256 for enkelhed (hvis altcoin bruger en brugerdefineret algoritme, kan Litecoin-minearbejdere trække angrebet i stedet). Hvis altcoin har 5 af Bitcoin hashpower, for at kunne angribe kæden via et dobbeltforbrug skal mindst 5 af Bitcoin-netværkets magt midlertidigt omdirigere sig til minedrift på altcoin. Dette er potentielt muligt, men det er et dyrt skridt: mens angrebet er på plads, vil Bitcoin-minearbejdere miste indtægterne fra minedrift på Bitcoin. I tilfælde af en sammensmeltet sidekæde er minedrift på en sidekædes hovedlinje eller angreb på begge omkostninger gratis, så der ville ikke være nogen økonomisk afskrækkende virkning på at angribe den alternative kæde. Dette er ikke kun en formodning; der har været egentlige eksempler på, at minedrift i virkeligheden angriber fusionerede kæder.

Bortset fra sikkerhed udsætter denne afhængighed af fusionsminedrift også en anden bekymrende begrænsning af sidekædens idé: mens kryptovalutas ånd uden tvivl er den af ​​tilladelsesfri innovation, kræver oprettelse af en sidekæde tilladelse og aktiv hjælp fra 50 af alle Bitcoin minedrift pool operatører. Disse begrænsninger tilsammen antyder, at sidekæder-protokollen, selvom den er god til mange brugssager, bestemt ikke vil være ideel for alle.

Løftet

Hvis de tekniske problemer omkring sidekæder kan løses, hvad er det løfte, de giver? Lige nu kan cryptocurrency-udvikling i det væsentlige klassificeres i fire kvadranter. Den første kvadrant består af projekter, der bruger Bitcoin-valutaen og Bitcoin-blockchain – i det væsentlige Bitcoin selv. Den anden kvadrant er protokoller, der bruger Bitcoin-blockchain, men ikke Bitcoin-valutaen; Mastercoin, farvede mønter og modpart er fremragende eksempler på dette. Den tredje kvadrant bruger både en uafhængig valuta og en uafhængig blockchain; dette indeholder applikationer som (for at tage vidt forskellige eksempler) Ripple, Litecoin og NXT. Nu med sidekæder er den sidste kvadrant også udfyldt: ved hjælp af et uafhængigt netværk, men ved hjælp af Bitcoin som den underliggende valuta.

Det vil være interessant at se, hvilke applikationer niche fungerer bedst til. For helt nye økosystemer er det sandsynligvis ikke den rigtige tilgang; det giver ringe mening for et helt uafhængigt netværk som Ripple eller Ethereum at binde sit vigtigste interne symbol til Bitcoin økonomisk og få de to til at blive udsat for hinandens prisbevægelser. I tilfælde af en så stor indsats giver det ofte også mening at eksperimentere med forskellige pengepolitikker; Ethereums ether har en lineær udstedelsesmodel, der konstant frigiver et bestemt fast antal valutaenheder hvert år, mens Ripple frigav alle 100 milliarder enheder af XRP til Ripple-organisationen på én gang, og organisationen frigiver dem over tid til udviklere, investorer og mennesker, der deltager i distribuerede computerprojekter. For en gaffel, der er beregnet til at tjene som en større protokolændring, som f.eks. Opgradering fra SHA256 til SHA3 eller i tilfælde af kvantecomputere fra ECDSA til Lamport-signaturer eller NTRU, giver det absolut total mening. For alt i midten vil det være op til sag til sag-basis at finde ud af.

I tilfælde af Ethereum er der en særlig overvejelse at huske på: Ethereum er en kryptografisk konsensusplatform til generelle formål, ikke et specifikt “altcoin”. Derfor kan man have mange forskellige valutaer, der eksisterer sammen på Ethereum-platformen som kontrakter; man kan have kedelige gamle fastforsyningsvalutaer, valutaer med en pengepolitik, der forvaltes af en decentral autonom organisation, valutaer, der findes for at subsidiere videnskabelig forskning eller give en basisindkomst, og endda valutaer med en indbygget tovejs-udvekslingsmekanisme til fungere som sidekæder. Ethereum kan således ikke nøjagtigt blive pigeonhullet i hverken sidekædekvadranten eller Ripple / Litecoin / NXT-kvadranten; det findes i begge.

Faktisk er det meget sandsynligt, at så snart Ethereum-genesisblokken lanceres, vil der være sidekæder til Bitcoin, Litecoin og Dogecoin implementeret som kontrakter inden for tre måneder. Hvis sidekæder kan implementeres med succes og sikkert, betyder det, at Ethereum måske endda bliver det foretrukne middel til lagring af BTC, LTC eller DOGE ved hjælp af kraftige multisignaturlagerkontrakter, der involverer funktioner som tilbagetrækningsgrænser. Mellem kontrakter om en almindelig kæde, højtydende special-altcoins, kvasi-centraliserede OpenTransactions-servere, sidekæder og Bitcoin i sig selv, bliver en ting klar: kryptokurver vil være i stand til at interagere som aldrig før.