Spacechains: Hogyan működik ez az új Bitcoin Sidechain javaslat

Forrás csomópont: 1544330

A Spacechains egy javasolt Bitcoin oldallánc, amely egyirányú rögzítési mechanizmust kínál a vakegyesítési bányák kialakításával.

Az oldalláncok gondolata, mint a Bitcoin skálázási és szolgáltatásbővítő mechanizmusa, nagyon régi koncepció. Egyfajta alapvető „ős” elképzelés az oldalláncokról, bányászott láncok egyesítése, még Satoshi eltűnése előtti időszakra is visszanyúlik.

Ez a javaslat egyszerűen az az elképzelés volt, hogy két teljesen különálló és egymással nem összefüggő láncot bányásznak ugyanaz a bányászcsoport, amelyek nem képesek semmit a láncok között mozgatni. A eredeti oldallánc javaslat 2014-ben készült sokan azok közül, akik szó szerint egy héttel a lap megjelenése után megalapították a Blockstreamet. Az alapötlet az volt, hogy az érmék oda-vissza mozogjanak a fő Bitcoin blokklánc és más oldalláncok között, egyszerű fizetés-ellenőrzési (SPV) igazolásokkal pedig a dolgok érvényességének bizonyítására, amikor érméket küldenek egyik láncból a másikba. Ez soha nem valósult meg a lánc-átszervezés körüli végrehajtás bonyolultsága, a lopási lehetőségek és a bányászati ​​központosítás kockázatai miatt (mindegyikről a Bitcoin fehér könyv).

Az oldalláncok rögzítő mechanizmusai kétféleek lehetnek, egyirányú és kétirányú. A jelentéseknek nyilvánvalónak kell lenniük – egy kétirányú fogasnál az érmék oda-vissza mozoghatnak a szülőlánc és az oldallánc között, egyirányú fogasoknál pedig csak a szülőláncból az oldalláncba tudnak mozogni, és soha nem mozdulhatnak vissza. Jelenleg a Bitcoinon a kétirányú oldallánc rögzítésének egyetlen formája a szövetségi konszenzus révén valósul meg, ami azt jelenti, hogy a rögzítést a „letétkezelők” megbízható csoportja garantálja, akik mindaddig fenntartják az ellenőrzést az oldallánchoz kötött pénzeszközök felett, egy multisig pénztárcában, amíg azokat visszavonják.

Az emberek azonban továbbra is dolgoztak más, nem egyesített oldallánc-csapok kialakításán. Itt egy példaként megyek végig Ruben Somsen Spacechain javaslatán. Ez egy egyirányú rögzítő mechanizmus, amely egy vakegyesítési aknát használ, hasonló a Stztorc Pál's. Ez azt jelenti, hogy az érmék csak az oldalláncba kerülhetnek, és soha nem hagyják el, és a bányászoknak nem kell új szoftvert futtatniuk ahhoz, hogy kompenzációt kapjanak az oldallánc bányászatáért (azonban, ahogy később kitérek rá, többet profitálhatnak ebből).

A Spacechain javaslat

Az egyesítő bányászat megköveteli, hogy a bányászok mind a Bitcoin-lánc csomópontjait, mind a bányászott másik lánc csomópontjait futtassák, hogy összeállítsák mindkét lánc blokkjait, és elkötelezzék azokat az általuk bányászott Bitcoin blokk fejlécében. A vakfúziós bányászat kihasználja azt a tényt, hogy a valóságban a Bitcoin-bányászoknak csak a másik lánc blokkfejlécére van szükségük ahhoz, hogy elkötelezzék magukat a Bitcoin blokkban, és valaki más is vállalhatja a fáradságot, hogy összeállítsa a blokkot a másik lánc számára.

Somsen erre javasolt mechanizmusa hasznosítható ANYPREVOUT (APO), hogy lehetővé tegye a nyílt versenyt bárki számára, hogy versenyezhessen a következő oldallánc blokk megalkotásáért, miközben garantálja, hogy a Bitcoin főlánc blokkjára csak egy blokk köthető le. Ruben javaslatának másik előnye, hogy nincs szükség speciális puha villára, hogy lehetővé tegye az űrláncok telepítését. Az Eltoo/ANYPREVOUT előnyeit a Lightning Network számára javasolják, lehetővé téve a rugalmas állapotláncokat, valamint a csatornagyárakat. A térláncok egyszerűen egy másik lehetőség a sok dolog közül, amelyeknek az ANYPREVOUT engedélyezése előkészítené az utat.

A vakmerítési bányászati ​​javaslatának általános ötlete az, hogy az APO használatával előre definiálhat olyan tranzakciók hosszú halmazát, amelyek ugyanazt a kezdeti UTXO-t veszik fel, és elkötelezik magukat amellett, hogy azt mindig újra létrehozzák. Tehát képzeljünk el egyetlen satoshi UTXO-t, amelyben minden előre létrehozott tranzakció garantálja, hogy ugyanaz az UTXO ismét létrejön kimenetként a megerősítéskor. Tekintsd úgy, mint egyfajta jelölőt, ez a speciális UTXO az az azonosító, amely lehetővé teszi, hogy bárki, aki a fő Bitcoin blokkláncot nézze, tudja: „Ez az a hely, ahol elkötelezett vagyok az X oldallánc blokkjai iránt.” Ezzel azonban nyitva marad egy probléma: a bányászdíjak. Ha ezt az UTXO-t ugyanannyival újra kell létrehozni, akkor nincs forrás a díjak kifizetésére.

Ezt felhasználással lehet kezelni SIGHASH_SINGLE (a bemenet aláírása csak azt az egyetlen bemenetet és a megfelelő kimenetet írja alá) és SIGHASH_ANYONECANPAY (az emberek szabadon hozzáadhatnak további be- és kimeneteket anélkül, hogy az aláírást érvénytelenítenék, mindaddig, amíg a SIGHASH_SINGLE-t használó bemenet/kimenet változatlan marad, hogy ne érvénytelenítsék az aláírást). Ezután bárki hozzáadhat egy bemenetet és módosíthatja a kimenetet, hogy kifizesse a tranzakcióért járó bányászdíjat.

Ez a mechanizmus az oldallánc blokk blokkfejlécéhez való véglegesítésre is. Ugyanúgy, ahogy a Taproot elkötelezi magát a különböző költési feltételek fáján, a normál nyilvános kulcsot a fa Merkle-gyökével módosítva, bárki módosíthatja a normál nyilvános kulcsot az oldallánc blokk blokkfejléc-kivonatával. Az oldallánc csomópontjai ezután felfedhetik és továbbíthatják a blokkfejlécet a fő láncban lévő tranzakcióra mutató mutatóval, hogy bizonyítsák, hogy valóban bányászták. Innentől kezdve az oldallánc csomópontjai elvégzik az összes szokásos ellenőrzést annak biztosítására, hogy az oldallánc blokk megfeleljen a megfelelő konszenzusos szabályoknak, és a tényleges blokkokat továbbítsák az oldallánc hálózaton, akárcsak a főláncon.

Ha a fő lánc oldallánc blokkjaihoz való véglegesítéshez használt tranzakciók egyikét érvénytelen blokkra való véglegesítésre használták, vagy akár teljesen kidobták az adatokat, akkor amikor az oldallánc csomópontjai látják a láncon használt kötelezettségvállalási tranzakciót, két dolog történhet: Egy, egy érvénytelen blokk terjesztődik az oldallánc hálózaton keresztül, és ha nem megy át az érvényesítési ellenőrzéseken, akkor árva lesz; vagy kettő, az adatok soha nem kerülnek felfedésre, ebben az esetben a következő oldallánc blokk a ténylegesen legutolsó blokkra épül, és azt véglegesíti, a fel nem tárt elkötelezettséget pedig figyelmen kívül hagyja. Ez a második lehetőség ugyanazt a fajta leghosszabb láncú logikát követi, mint a főlánc, így ha később kiderül is valami, az árva marad a jövőbeli blokkok miatt, amelyek nem erre épültek.

De továbbra is fennáll a dupla költés problémája. Bárki, aki rendelkezik az UTXO jelölő létrehozásához használt privát kulccsal, potenciálisan megduplázhatja az oldallánc blokkjaihoz való kötéshez használt előre meghatározott tranzakciók bármelyikét, és ettől kezdve érvénytelenítheti a teljes készletet.

Ezt úgy oldják meg, hogy az aláírást beillesztik magának az UTXO zárolási szkriptjébe. Ez rögzíti az aláírást a bemeneten és a kimeneten, garantálva az UTXO jelző újbóli létrehozását a következő tranzakció során. Mivel ezt az aláírást a rendszer automatikusan átadja és ellenőrzi, amikor az UTXO elhasználódik, nem lehet egyszerűen lecserélni egy másikra, és más helyre költeni.

Ez hagy egy utolsó megoldatlan problémát. Elméletileg lehetséges lenne több tranzakciót egymás után benyújtani egyetlen Bitcoin blokkba, így a bányászok hatalmas számú oldallánc blokkot erősítenek meg egyetlen főlánc blokkban. Ezzel vissza lehet élni az oldallánc-hálózat szolgáltatásmegtagadási támadására.

A probléma megoldása érdekében egy CHECKSEQUENCEVERIFY (CSV) relatív időzár beilleszthető a marker UTXO szkriptbe, amely garantálja, hogy egy adott főlánc blokkon belül csak egy UTXO jelölőt használó tranzakció erősíthető meg.

Összességében így néz ki: 

forrás

Azt is érdemes megjegyezni, hogy ennek a kialakításnak két változata megvalósítható CHECKTEMPLATEVERIFY-vel (CTV) vagy változtatás nélkül. Ennek a két kiviteli változatnak egyszerűen szuboptimális kompromisszumai vannak.

A CTV-változat ezt a funkciót arra használná, hogy az APO helyett a CTV-t használó tranzakciós láncban elköteleződjön, és az UTXO-zárolási szkripten belüli aláírást is magában foglalja. A CTV leköti a CTV UTXO-t elköltő tranzakció összes kimenetét, de önmagán kívül semmilyen bemenetre nem kötelezi el magát.

Ez azt jelenti, hogy a CTV-tranzakciókhoz bemeneteket adhat hozzá, kimeneteket nem. Tehát az APO kialakításához hasonlóan hozhatja a saját díját, de nem adhat kötelezettséget az oldallánc blokk fejlécéhez.

Tehát itt egy olyan tranzakciót kell létrehoznunk, amely teljesen kívül esik a CTV-tranzakciók láncán az oldallánc elkötelezettsége érdekében, hogy létrehozzunk egy UTXO-t, amely éppen elég a CTV-tranzakció díjának kifizetésére (mivel nem hozhat létre új változáskimenetet a abban a tranzakcióban a hozzáadott input 100%-a a díjakra megy el), és a díjat előkészítő tranzakción belül az UTXO egy oldallánc blokkfejlécet kötünk le. Tehát az első lépés: egy tranzakció, amely díjfizetési kimenetet hoz létre, és kötelezettséget vállal egy oldallánc blokk fejlécére. Második lépés: vesszük a díjkimenetet, és hozzáadjuk a CTV-tranzakcióhoz inputként, amely megerősítéskor „kibányászza” az adott oldallánc blokkunkat. Ez a változat így néz ki:

forrás

A következő változat egyszerűen előre aláírt tranzakciókat használ. Ma is bevezethető, de a szkript képességeinek korlátai miatt megköveteli, hogy a tranzakciókért járó összes díjat előre kell fizetnie annak, aki létrehozza az űrláncot.

A tranzakciók lánca egyetlen UTXO-val kezdődik, és egy láncban két kimenet jön létre. Az első kimenet az UTXO marker, amely jelzi, hogy a tranzakciós lánc egy adott térlánchoz kapcsolódik, a második pedig egy kis értékű UTXO, amelyet bárki nyíltan elkölthet, aki lehetővé teszi más bemenet/kimenet csatlakoztatását. Ez a második tranzakció az, ahol bárki nyíltan elkötelezi magát, hogy ő lesz az első, aki elkölti a spacechain tranzakciós lánc második kimenetét, és felhasználhatja azt az oldallánc blokkfejlécének lekötésére.

A CTV-változatban az oldallánc blokkot egy másodlagos tranzakcióban kellett lekötni, mivel a CTV nem teszi lehetővé új kimenetek hozzáadását egy olyan tranzakcióhoz, amely a CTV által zárolt bemenetet költi el. Ez a változat megköveteli a másodlagos tranzakció használatát, mert ha új bemeneteket vagy kimeneteket ad hozzá az előre aláírt lánchoz, akkor módosítja a tranzakció TXID-jét, és érvényteleníti az összes utána következő előre aláírt tranzakciót. Ez a változat így néz ki: 

forrás

Ennek az utolsó változatnak az egyetlen hátránya, hogy ha bárki, aki előre aláírta az összes tranzakciót az oldallánc blokk-kötelezettségvállalásaihoz, nem törli az ehhez használt privát kulcsokat, akkor hatékonyan leállíthatja a láncot az aktuális UTXO jelző kétszeres elköltésével. idő.

És ott van. Ez a legújabb javaslat a Bitcoin oldallánc-tervezésére, és három különböző módon valósítható meg, azzal a nyilvánvaló figyelmeztetéssel, hogy a most megvalósítható megvalósítási útvonalon meg kell követelni valakitől a privát kulcs törlését.

Ez a cikk egyszerűen az első a Bitcoin számára az eredeti 2014-es terv óta közzétett fő oldallánc-tervezési javaslatokkal kapcsolatos sorozatban. Tartsa szemmel a többit.

Ez Shinobi vendégbejegyzése. A kifejtett vélemények teljes mértékben a sajátjuk, és nem feltétlenül tükrözik a BTC Inc vagy a Bitcoin Magazine véleményét.

Időbélyeg:

Még több Bitcoin Magazine