Cointerra tillkännager goldstrike1 asic

CoinTerra Engineering Update: TerraMiner IV Hashing Live (Februari 2019).

Anonim

Upplysningar: Författaren till denna artikel är grundare och chefsforskare i Ethereumprojektet

I förra veckan kom Adam Back och Austin Hill ut med ett meddelande om Låt oss prata Bitcoin, där de tillkännagav sitt senaste projekt: "sidokedjor". Idén, de beskrev, skulle möjliggöra förekomsten av alternativa blockkedjor, kanske med olika regler som möjliggör olika typer av ytterligare funktioner eller transaktionstyper, men med en valutaenhet vars värde är knutet till bitcoinets värde. Avsikten är att tillåta experiment med olika extensions till Bitcoin-protokollet, med separata nätverk för att undvika risk för Bitcoin själv, samtidigt som den fortfarande använder samma underliggande valutaenhet. Så snart idéen tillkännagavs har det varit ett stort offentligt intresse för konceptet och har fört med förhoppet att Bitcoin-protokollet potentiellt kan bli mycket kraftfullare än det är idag.

Under huven

Tanken bakom sidokedjor är inte ny; Konceptet har funnits sedan åtminstone i fjol i december, och en föregångare till tanken har funnits i flera år före dess. Predikursen, ett protokoll som kallas envägs-pegging, var en mekanism som teoretiskt skulle användas för att hantera en övergång från "Bitcoin 1. 0" till "Bitcoin 2. 0" och fungerade enligt följande. Antag att i Bitcoin 1, 0, 13 miljoner valutaenheter redan har utfärdats genom gruvdrift, med 8 miljoner kvar att lämna ut. Distributionsmodellen för BTC2. 0 skulle frigöra 8 miljoner enheter genom gruvdrift, enligt exakt samma schema som BTC1. 0 efter den punkten, men de övriga 13 miljoner skulle fördelas genom en mekanism som kallas "proof of burn".

I huvudsak skulle man ta en enhet av BTC1. 0, skicka det till en obeskrivlig adress (t.ex. 1111111111111111111114oLvT2 ) och skicka in ett kryptografiskt bevis på att denna transaktion ägde rum, undertecknad av samma privata nyckel som skickade transaktionen, som en transaktion till Bitcoin 2. 0 Enligt Bitcoin 2.0-protokollet skulle detta ge användaren rätt att ta emot en enhet på 0. Denna kallas en "enkelriktad pinne" eftersom värdet av en BTC2. 0 kan vara högst lika med en BTC1. 0; annars skulle folk arbitrage skillnaden genom att konvertera bitcoinsna över till 1: 1-kursen. Bortsett från att sälja BTC2. 0 för BTC1. 0 på marknaden finns det inget sätt att gå tillbaka, så om experimentet misslyckas värdet av BTC2. 0 kan gå ner till noll.

Bitcoin sidokedjor använder en förbättrad version av detta system som kallas "tvåvägs pegging", som fungerar enligt följande. För att få en enhet av BTC2. 0, en skulle behöva ta en enhet av BTC1. 0 och skicka den till ett "script" som vi kommer att ringa X och lämna obeskrivet för nu. Ett skript i Bitcoin är en adress som i stället för att vara ägd av en privat nyckel, huvudsakligen fungerar som en låskasse som endast låser bitcoinsna när den ges en transaktion som uppfyller vissa villkor.Till exempel kan man ha ett manus som låser upp medel till den första personen som lämnar ett femtiocifret primtal som helt och hållet består av siffrorna 3 och 5. Gör transaktionen och publicera ett kryptografiskt bevis på att en sådan transaktion gjordes till Bitcoin 2. 0 blockchain berättigar användaren till en enhet av BTC2. 0.

Nu är definitionen av X enkel: X låser upp pengarna (kom ihåg, det här är en enhet av BTC1. 0) om det ges ett giltigt kryptografiskt bevis på att avsändaren förstörde en enhet av BTC2. 0. Således finns en mekanism för omvandling av BTC 1. O till BTC2. 0, och att mycket mekanism skapar en annan mekanism, begränsad i värde till det totala antalet BTC2. 0 skapad, som kan användas för att konvertera BTC2. 0 tillbaka till BTC1. 0. Därför tvåvägs pek.

Mekanismen som dessa "kryptografiska bevis" använder bygger på en kryptografisk konstruktion som används i Bitcoin kallas ett Merkle-träd. I ett Bitcoin-block, istället för att helt enkelt ha varje transaktion direkt blocket, ingår bara en enda 32-byte hash i blockhuvudet. Denna 32-byte hash beräknas i sig från två andra 32-byte hashes, som var och en kommer från två andra 32-byte hashes, och så vidare tills äntligen värdena i botten är transaktionerna själva. Det är just denna mekanisms punkt att tillåta förekomsten av kompakta bevis att en specifik transaktion är i ett visst block. allt som behövs är den enda grenen av hash som går upp från den transaktionen till rotknuten eller totalt 10 haschar för 1000 transaktioner eller 20 hash för en miljon transaktioner. Detta är omöjligt att förfalska; Om du försöker byta till och med en enda transaktion i trädet, växlar förändringarna uppåt genom isarna tills slutligen blir rotnoden helt annorlunda.

Detta löser emellertid inte problemet helt, allt det berättar för dig är att ett eller annat block innehåller någon given transaktion. Det berättar inte att transaktionen är i huvudkedjan; I själva verket kunde samma bitkoder som användes i transaktionen redan ha skickats till en annan källa, vilket gjorde transaktionen ogiltig. Det finns två sätt att lösa detta. Ett tillvägagångssätt, och den enklare, är för bevismekanismen i Bitcoin 2. 0 att inte bara fråga om Merkle-trädgrenen, utan också för blockchainen går tillbaka sex kvarter, som en köpman som ber om sex bekräftelser, med hjälp av gruvkraft som en proxy för giltighet. För högre säkerhet krävs ett mycket större antal block som sextio. Detta tillvägagångssätt är enkelt och verkar uppfylla alla nödvändiga parametrar.

Utmaningar

Ovannämnda mekanism är dock som beskrivet högst ofullkomlig. När en vanlig köpman ber om sex bekräftelser kräver det att man släpper ut en dubbelt utgiftsattack mot den köpman som producerar sex block snabbare än resten av nätverket i realtid, en uppgift som kräver att minst 30% av den totala nätverks hashpoweren ska arbeta med någon icke försumbar framgångsgrad. Med den ovan beskrivna tvåvägs-mekanismen kan en skadlig gruvarbetare med jämn 1% hashpower generera sex block, eller till och med sextio block, så småningom, och använd sedan dessa block för att på ett otillbörligt sätt göra anspråk på alla BTC1.0 som har satts in i BTC2. 0 låsboxar (eller å andra sidan, bedrägligt anspråk på ett obegränsat antal BTC2. 0). En möjlig patch som kan komma ihåg är att kräva samma person som skapade lockboxen för att öppna den och därmed begränsa den mängd skador som kan göras per person, men det här kommer inte att lösa problemet eftersom den skadliga gruvan lätt kan samla med någon annan. Det grundläggande problemet att det inte finns något sätt att komma fram till en mekanism för att validera blockchain som inte uppdaterar sig över tid, är antingen mycket svårt att lösa eller sannolikt inte kan lösas medan man bara bor i Bitcoins "static lockbox" scripting paradigm.

Ett annat tillvägagångssätt, som kan lösa detta problem utan alltför stora svårigheter, är mer invecklad och påträngande. Det kräver i huvudsak vad som kallas en "ljusklient" för Bitcoin 1. 0 till Bitcoin 2. 0. Ljusklienten beskrivs lättast som ett långvarigt "kontrakt", ett program på blockchain med en stor mängd internt tillstånd som körs varje gång en transaktion skickas till den, skulle det acceptera block och verifiera blockhuvud på exakt samma sätt som en Bitcoin-klient på din mobiltelefon skulle. Detta kontrakt skulle sedan hålla en löpande lista över alla blockhuvud i Bitcoin 1. 0, och för att få en BTC2. 0 man skulle behöva lämna ett kryptografiskt bevis på att du gjorde den nödvändiga transaktionen i BTC1. 0 i kontraktet, tillsammans med en deposition på 0. 1 BTC2. 0.

Kontraktet skulle kontrollera att beviset är giltigt, hamnar i ett block som ligger i kontraktets egen interna mini-blockchain och väntar sedan på att en av två saker hänt. Först, en gång trettio mer Bitcoin 1. 0-block läggs till i kontraktet, det skulle släppa en enhet av BTC2. 0 till avsändaren plus depositionen. Alternativt, om någon annan skickar ett kryptografiskt bevis på att transaktionen är ogiltig av vilken anledning som helst (t.ex. spenderar bitcoins som inte existerar) inom den tiden, skulle de få depositionen.

Detta skulle lösa säkerhetsproblemet, men har en viktig fel: det kan inte göras inom Bitcoin-protokollet som det står. Det är ganska lätt att implementera i ett protokoll som Ethereum, eftersom det är speciellt utformat för kontrakt, men Bitcoins skriptfunktionalitet tillåter inte att det finns kontrakt som har interna tillstånd, så att göra detta inuti Bitcoin skulle kräva en väsentlig förändring till Bitcoin 1. 0-protokollet. I slutändan kanske inte den inställning som togs av Austin Hill och Adam Back kanske inte exakt som någon av dessa strategier. Emellertid visar problemets rena komplexitet att det fortfarande finns många utmaningar som ligger framåt.

Mining

En annan viktig fråga är: hur kommer dessa sidokedjor att säkras? Standardmekanismen för att säkra en blockchain är gruvdrift, men gruvdrift kräver en mekanism för att belöna gruvarbetare på den kedjan. I en sidokedja måste varje enhet i sidokedjans valuta stödjas av en manuskriptlåda som innehåller en BTC-enhet på Bitcoin-blockchainen, så det finns ingen enkel möjlighet att utfärda sidokedjevalutaenheter från ingenstans.Det finns två möjligheter till detta: demurrage (dvs. en procentuell skatt per år på alla BTC på sidokedjan) och transaktionsavgifter. Båda dessa ger dock en ganska låg intäkt, och det är inte alls säkert att vanlig gammal självständig gruvdrift kommer att lösa problemet.

Det finns två sätt att komma runt om problemet. Ett tillvägagångssätt är att sidokedjan ska säkras genom bevis på spel, med hjälp av de små intäkterna från transaktionsavgifterna för att kompensera deltagande intressenter med en räntesats. Detta tillvägagångssätt skulle emellertid vara mycket svårt att genomföra i en sidokedja, eftersom beräkningarna som är inblandade i validering av bevis för insats är troligen för komplexa för att effektivt genomföras direkt på en blockchain. Den andra strategin, och den som främjas av Adam Back och Austin Hill, heter "sammanslagning"; I huvudsak innehåller gruvarbetare i Bitcoin blockdata från både Bitcoin-blocket och namecoin-blocket, vilket gör det möjligt för minare att tillhandahålla säkerhet för båda kedjorna samtidigt som de använder samma beräkningsansträngning.

Men enligt Bitcoins utvecklare Peter Todd har begreppet sammanslagning en mycket viktig säkerhetsfel: om inte majoriteten av Bitcoin-gruvarbetarna är överens om att slå samman en viss kedja, är den kedjan förmodligen inte säker alls . För att förstå varför, överväga först fallet med ett mer traditionellt altcoin, i vårt exempel kör SHA256 för enkelhet (om altonet använder en anpassad algoritm, så kan Litecoin miners dra ut attacken istället). Om altcoinet har 5% av Bitcoins hashpower, så måste kraften för att angripa kedjan via dubbelt tillbringa minst 5% av Bitcoin-nätet tillfälligt omdirigera sig till gruvor på altcoin. Det här är potentiellt möjligt, men det är ett dyrt drag: medan attacken är på plats, skulle Bitcoin-gruvarbetarna förlora intäkterna från gruvdrift på Bitcoin. När det gäller en sammanslagd sidokedja är dock gruvdrift på sidokedjans huvudlinje eller angrepp det båda kostnadsfria, så det skulle inte vara något ekonomiskt avskräckande att attackera den alternativa kedjan. Det här är inte enbart ett förutseende det har funnits faktiska exempel på gruvpulver som i själva verket attackerar sammanslagna kedjor.

Bortsett från säkerheten uppvisar detta beroende av sammanslagning också en annan oroande begränsning av sidokedjekonceptet: medan kryptokurrencyens ande är sannolikt det för tillståndslös innovation, skapar en sidokedja tillstånd och aktivt stöd av 50 % av alla Bitcoin-gruvbassängsoperatörer. Dessa begränsningar föreslår tillsammans att sidokedjesprotokollet, medan det är bra för många användningsfall, säkert inte kommer att vara idealiskt för alla.

Löfte

Om de tekniska problemen kring sidokedjor kan lösas, vad är det löftet de tar med sig? Just nu kan utveckling av kryptocurrency i huvudsak klassificeras i fyra kvadranter. Den första kvadranten består av projekt som använder Bitcoin-valutan och Bitcoin blockchain - i huvudsak Bitcoin själv. Den andra kvadranten är protokoll som använder Bitcoin-blockchain men inte Bitcoin-valutan. Mastercoin, färgade mynt och motpart är utmärkta exempel på detta.Den tredje kvadranten använder både en oberoende valuta och en oberoende blockchain; Detta innehåller applikationer som (för att ta ojämn olika exempel) Ripple, Litecoin och NXT. Nu, med sidokedjor, har den sista kvadranten också fyllts: använder ett oberoende nätverk men använder Bitcoin som underliggande valuta.

Det blir intressant att se vilka applikationer som nischen fungerar bäst för. För hela nya ekosystem är det sannolikt inte rätt tillvägagångssätt. det ger ingen mening för ett helt oberoende nätverk som Ripple eller Ethereum för att binda sitt huvudsakliga interna token till Bitcoin ekonomiskt och få de två att utsättas för varandras prisrörelser. Vid sådana stora ansträngningar är det också ofta meningsfullt att experimentera med en annan penningpolitik. Ethereums eter har en linjär utfärdningsmodell som ständigt släpper ut ett visst fast antal valutaenheter varje år, medan Ripple släppte alla 100 miljarder enheter XRP till Ripple-organisationen på en gång och organisationen släpper dem över tid till utvecklare, investerare och personer som deltar i distribuerade dataprojekt. För en gaffel som är avsedd att fungera som en viktig protokolländring, som uppgradering från SHA256 till SHA3 eller i fråga om kvantdatorer från ECDSA till Lamport-signaturer eller NTRU, är det definitivt helt uppenbart. För allt i mitten är det upp till fall för fall att räkna ut.

När det gäller Ethereum är det särskilt viktigt att tänka på: Ethereum är en allmänt använd kryptografisk konsensusplattform, inte ett specifikt "altcoin". Därför kan man ha många olika valutor som finns i Ethereum-plattformen som kontrakt. man kan ha tråkiga gamla fasta försörjningsvalutor, valutor med en penningpolitik som förvaltas av en decentraliserad autonom organisation, valutor som existerar för att subventionera vetenskaplig forskning eller tillhandahålla en grundläggande inkomst och till och med valutor med inbyggd dubbelväxlingsmekanism för att fungera som sidokedjor. Eterum kan således inte noggrant pigeonhålas i antingen kvadratkedjan eller Ripple / Litecoin / NXT-kvadranten; det existerar i båda.

Det är faktiskt mycket troligt att så snart Ethereum-genesis-blocket lanseras, kommer det att finnas sidokedjor för Bitcoin, Litecoin och Dogecoin som implementeras som kontrakt inom tre månader. Om sidokedjor kan genomföras framgångsrikt och säkert betyder det att Ethereum kan till och med bli det föredragna sättet att lagra BTC, LTC eller DOGE med hjälp av kraftfulla multisignatur lagringskontrakt som inbegriper funktioner som uttagningsgränser. Mellan kontrakt på en allmänt kedja, högpresterande specialmiljöer, kvasi-centraliserade OpenTransactions-servrar, sidokedjor och Bitcoin i sig, är en sak klar: kryptokurser kommer att kunna interoperera som aldrig tidigare.