Hogyan próbálják a P2P protokollok megoldani a Bitcoin bányászat központosítását, a PlatoBlockchain adatintelligenciát. Függőleges keresés. Ai.

Hogyan próbálják a P2P protokollok megoldani a Bitcoin bányászat központosítását

A bitcoin bányászati ​​medencék a központosításon alapulnak, de a P2Pool és más protokollok igyekeztek csökkenteni a harmadik felek iránti bizalom szükségességét.

egy előző cikk, írtam a decentralizáció és a centralizáció természetéről a Bitcoin bányászatában, és arról, hogyan lehet ezt leginkább kvalitatív értelemben felfogni. A cikk lebontotta a teljes bányászati ​​verem, a medence-koordinációtól egészen az energiatermelésig, hogy érzékeltesse a bányászati ​​verem különböző rétegei közötti kapcsolatot és a decentralizáció maximalizálásának lehetőségét, rámutatva arra, hogy minél lejjebb van a bányászati ​​​​verem Ha az energiatermelés felé megyünk, annál nehezebbé és tőkeigényesebbé válik a decentralizáció érdemi szintjét hozni erre a rétegre.

Ebben a cikkben a bányászati ​​medencék és a bányászkoordináció témakörébe kívánok mélyebben belemenni, hogy megkönnyítsem a független tulajdonú bányászati ​​műveleteket, amelyek a blokklánchoz csatolandó blokkok bányászatára törekszenek.

A bányamedencék létrehozása

A bányászat nagy utat tett meg az óta, amikor egyszerűen csak egy gombra kattintott, és megbízhatóan bányászhatta le a blokkokat egy laptop CPU-ján. Akkoriban ez tulajdonképpen egy amatőr hobbi vállalkozás volt, amely nem igényelt valódi tőkebefektetést vagy szakértelmet, manapság azonban egy több milliárd dolláros professzionális piacról van szó, hatalmas tőkebefektetésekkel. Ez egy teljesen más labdajáték.

A bányászat természetében bekövetkezett változás egyik természetes következménye a bányamedencék nagyon korán történő létrehozása volt. Amikor a bányászat gyakorlatilag azt jelentette, hogy egy laptop a sarokban futott, a szórás és a kiszámíthatatlanság, hogy mikor találunk egy blokkot, nem volt igazán nagy baj – végül megtennéd, és a laptop működésben tartásának energiaköltsége nem volt igazán gazdaságos. fontosságát.

Miután a dolgok a GPU-k és ASIC-k felé tereltek, jelentős beruházási költségekkel kellett járni, és sokkal jelentősebb áramköltséggel kellett működniük. Az a kiszámíthatatlanság, hogy mikor találunk egy blokkot, sokkal nagyobb problémává vált a bányászok számára, akik megpróbálták megtéríteni a tőkebefektetéseiket, és nyereségesen működnek. Itt jönnek a képbe a bányamedencék.

Lehetővé teszik a bányászok számára, hogy együttműködjenek egy érvényes blokkfejléc megtalálásában, amely ugyanazon a blokkon dolgozik együtt, és az érmealap jutalmat elküldi a bányászati ​​készletnek, amely azután arányosan osztja el az összes résztvevő bányász között, aszerint, hogy mennyi munkát végeztek a keresésben. a háztömb. Ezt bizonyítja a „részvények” beadása a bányamedencébe; olyan blokkok, amelyek nem érik el a hálózati nehézségi célt, de elég magasak ahhoz, hogy bebizonyítsák, hogy egy bányász nem hazudik, és valójában hardvert futtat, és egy érvényes blokkot próbál találni.

Bányászati ​​medence központosítása

A központosított bányászati ​​medencék komoly következményekkel járnak az egyes bányászok számára. Ezek egy központosítási pontot jelentenek a tranzakciók blokkba való felvétele céljából történő kiválasztásának (vagy ami még fontosabb, kizárásának) folyamatában. Ez minden bányászati ​​pool-üzemeltetőnek teljes körű ellenőrzést biztosít a blokkláncon feldolgozandó tranzakciók felett, és a bányászati ​​hardver tényleges tulajdonosai nem tudnak beleszólni, kivéve, ha kilépnek a poolból, ha nem értenek egyet azokkal a kritériumokkal, amelyeket operátor a beállítást választja.

Az egyes bányászok bitcoinjait is őrizetbe veszik mindaddig, amíg a bányászok úgy döntenek, hogy kivonják őket a poolból, így a pool üzemeltetője letétkezelőként és központi pontként tevékenykedik, amely megtévesztheti a bányászokat a pool használatával, vagy a kormányok nyomást gyakorolnak rájuk, hogy lefoglalják az egyes bányászok pénzét vagy alkalmazzák a KYC-t. követelményeket velük szemben.

Tehát milyen megoldások léteznek a probléma kezelésére?

P2Pool: Az eredeti decentralizált bányászati ​​medence

P2Pool az eredeti decentralizált bányászati ​​medence protokoll. Ez egy peer-to-peer protokoll, amelyben a bányászok egymás között koordinálják a bányászati ​​jutalmak felosztását, miközben közösen találnak egy érvényes blokkot, amely megfelel a nehézségi célnak. Ezt a koordinációt a protokollterv „megosztási láncnak” nevezett módszerrel valósítják meg.

A P2Pool bányászai olyan blokkokat vesznek fel, amelyek nem felelnek meg a hálózat nehézségi szintjének, és hatékonyan kibányászják a saját blokkláncukat, amely azon egyetlen blokk összes másolatából áll, amelyen a készlet dolgozik. Amikor elérik a kisebb nehézségi célt, ahol a blokkot medencévé alakítanák, hogy bebizonyítsák, hogy központosított modellben bányásznak, közvetítik azt a blokkot a többi bányásznak. A P2Pool „megosztási nehézségét” úgy célozta meg, hogy a bányászok nagyjából harminc másodpercenként egyszer találjanak megosztást.

Biztos vagyok benne, hogy az olvasók kíváncsiak arra, hogyan működik az egyes bányászok kifizetése. Az érmealap-tranzakció úgy van felépítve, hogy a P2Pool minden egyes bányászához létrejön egy kimenet, amely közvetlenül az érmebázis-tranzakcióból osztja fel az alapokat. A P2Pool bányászai ellenőrzik, hogy a saját maguknak és a poolban résztvevőknek kifizetett összegek helyesek-e, és hogy minden egyes bányász, aki részesedéssel járult hozzá a részvénylánchoz, minden egyes hozzáadott megosztásban megfelelően kifizetésre kerül-e a munkájáért. Ha néhány részt vevő bányász nem megfelelően strukturálja a kifizetéseket mindenki számára a legutóbbi részesedésükben, akkor a P2Pool többi bányásza abbahagyja, hogy belefoglalja őket saját kifizetéseibe, és gyakorlatilag „kilakoltassa” azt a bányászt a poolból, mert nem viselkedett tisztességesen.

Ez a kialakítás néhány méretezési problémához vezetett, ezért már nincs használatban. Ahogy a P2Poolban való részvétel növekszik, úgy nő a megosztási láncban lévő megosztások összesített nehézségi foka is, amelyek nagyjából harminc másodpercenként céloznak meg. Ez azt jelenti, hogy a kisebb bányászok számára nehezebbé válik a sharechain nehézség elérése bármely harminc másodpercen belül. Ez azt jelenti, hogy a kisebb bányászok bevételének eltérése vagy kiszámíthatatlansága növekszik a P2Pool összesített hash arányának növekedésével. Ez egyúttal nagyobb számú elavult blokkhoz is vezet, mivel több bányász talál versengő részvényeket a részvényláncban nagyjából egy időben, amikor több bányász csatlakozik a P2Poolhoz, ami „elpazarolt munkához” vezet az egyes bányászok szempontjából, akik csak kapnak. kompenzációt kapnak, ha részesedésük bekerült a részvényláncba.

A másik fő skálázhatósági probléma az, hogy a kifizetések közvetlenül az egyes bányászoknak jutnak el magából a coinbase-tranzakcióból. Tekintettel arra, hogy minden bányász az általuk bányászott, a részvényláncban szereplő részvények arányában kerül kifizetésre, a P2Poolban minden egyes bányásznak új kimenetet kell hozzáadnia a coinbase tranzakcióhoz.

Ennek két következménye van. Először is: A bányászok kis, kis értékű UTXO-kat kapnak minden blokkban, amit a P2Pool talál, ami a kimenetek későbbi sűrítésének költségével és/vagy a sokkal nagyobb tranzakciók költségeivel jár, amikor érméket költenek el, mert számos egyedi UTXO-val zárnak le, egyetlen egy helyett, amikor egy időszak után kilépnek a hagyományos poolból. Másodszor: Minden új érmebázis-kimenet blokkterületet foglal el, amelyet mások tranzakciói felhasználhatnak, és a P2Pool több díjbevételt eredményez. Ez kétszeres veszteség a jegyzőkönyvben részt vevő bányászok számára.

Ez a két probléma hozzájárult ahhoz, hogy a protokoll lassan kihalt, és végül használaton kívüli állapotba került. Minden jel szerint a pontos és friss statisztikák nyomon követésére tett erőfeszítéseim alapján (sok régi blokkfelfedező, akik nyomon követték a bányászati ​​​​készlet megosztását, leálltak az évek során), úgy tűnik, hogy a P2Pool által kibányászott utolsó blokk Február 12, 2019.

P2Pool fizetési csatornás kifizetésekkel

2017-ben, egy hónappal azután, hogy a SegWit aktiválása lezárult, Chris Belcher készített egy javaslat a P2Pool skálázhatóságának javítása egyirányú fizetési csatornák és a bányászok kifizetéseit kezelő hubok csoportjával.

A javaslat alapvető célja, hogy foglalkozzon azzal a kérdéssel, hogy a nagyobb érmebázisú tranzakciók kétféle módon veszítik el a bányászok pénzét. Magas szinten az ötlet egyszerűen az, hogy a teljes érmealap-tranzakciót kifizessék egy olyan központba, ahol az egyes bányászok számára nyitva állnak a fizetési csatornák, és garantálják, hogy az érmealap-tranzakcióból származó pénzeszközök igénylésének lehetősége atomosan kapcsolódik a bányászok kompenzációjához. részesedésüket a fizetési csatornákon keresztül.

Az érmebázis-tranzakció és a kifizetések fizetési csatornái közötti atomitás céljának eléréséhez a coinbase-tranzakció kimeneti szkriptjét testre kell szabni. Belcher javaslatában többágú szkriptként épül fel, három költési feltétellel:

  • Kettőből kettő multiszig. Az első kulcs: az agy (Hc). Második kulcs: bányász, aki megtalálta a blokkot (Mc).
  • Egyetlen kulcs és egy hashlock. Kulcs: az agy (H). Hashlock: a hub által generált véletlenszerű érték (X).
  • Egyetlen kulcs és időzár. Kulcs: a bányász, aki megtalálta a blokkot (M). Időzár: hat hónapos relatív CSV-időzár.

Ezen költési feltételek bármelyike ​​felhasználható az érmebázis tranzakciós kimenetének feloldására. Most pedig nézzük meg a fizetési csatorna szkriptjét a bányászoknak, hogy lássuk, hogyan hatnak egymásra a két dolog:

  • Kettőből kettő multiszig. Az első kulcs: az agy (Hc1). Második kulcs: a bányász (Mc1).
  • Egy kettőből kettő multiszig és egy hashlock. Első kulcs: a hub (Hu1). Második kulcs: a bányász (Mu1). Hashlock: az érmebázisban használt hub által generált véletlenszerű érték (X).

Most pedig nézzük meg, hogyan hat egymásra ez a két dolog.

Miközben a bányászok részvényeket állítanak elő, hogy hozzáadják a megosztási láncot, a hub figyeli az előrehaladást. A hub minden egyes megosztásnál frissíti a csatorna állapotát a bányászokkal, akik leadják a megosztást, hogy az általuk végzett munka mennyiségével arányosan fizessenek nekik. Azonban csak a második szkriptútvonalhoz adnak aláírást, amelyhez a hashlock preimage elköltése szükséges – ez garantálja, hogy alapértelmezés szerint anélkül, hogy a hub aláírást adna nekik az első elérési úthoz, nem igényelhetik ezeket az összegeket, hacsak a hub el nem költi az érmebázist. önmagában adja ki a parancsfájl elérési útját a hashlock-kal, ami megköveteli az előkép közzétételét.

Most végül az egyik bányász a P2Poolban talál egy érvényes blokkot, és közzéteszi a hálózaton. Ezen a ponton a központ frissítheti az összes fizetési csatornát a bányászokkal, és megadhatja az aláírást a csatorna első szkript-útvonalához, lehetővé téve minden bányásznak, hogy bezárja csatornáját, és bármikor begyűjtse a megszerzett jutalmakat anélkül, hogy szükség lenne a hashlockra. előkép.

Ezen a ponton a bányász, aki megtalálta a blokkot, aláírja az első szkript útvonalat az érmebázisban, lehetővé téve a hub számára, hogy lekérje a pénzeszközöket az érmebázisról. Ez a bányász a bányászati ​​jutalomból egy kis bónuszt kap, hogy együttműködésre ösztönözze őket. De ne feledje: ha a bányász megtagadja az együttműködést, a központ egyszerűen elköltheti önmagát a hashlock útvonal használatával, és felfedheti az előképet, lehetővé téve az összes bányász számára, hogy megkapja a jutalom méltányos részét.

Ennek csak az a hátránya, hogy az összes csatornát be kell zárni a láncon, és újra meg kell nyitni a bányászat folytatásához. Az utolsó lehetőség abban az esetben létezik, ha a hub üzemeltetője úgy dönt, hogy leállítja a kifizetések feldolgozását, vagy eltűnik. Hat hónap elteltével a blokkot megtaláló bányász teljes egészében magának követelheti az összeget, ha a hub nem reagált az együttműködésre, vagy elköltötte az érméket a hashlock útvonallal.

Ez két konkrét kérdést hagy maga után a fenyegetettségi modell tekintetében a Belcher által javasolt fejlesztésekkel. Annak eldöntése, hogy mely tranzakciókat vegyen bele egy blokkba, teret hagy az eltéréseknek, hogy a teljes blokkjutalom mekkora része azon alapul, hogy az egyes bányászok mit választanak bele az általuk bányászott blokksablonokba.

A fizetési csatornák bevezetésekor ez hibahatárt hoz létre, azaz a tényleges kibányászott blokk jutalom nem egyenlő azzal, amit a bányászközpont a bányászok felé rendelt fizetési csatornákon elkötelez. Abban az esetben, ha a tényleges díjbecslések kisebbek, mint a blokk jutalom, a hub egyszerűen frissítheti a fizetési csatornákat a szövetkezeti költési útvonalat használva a kisebb összeggel, és mindaddig, amíg nem igényelnek érmebázis kimenetet a hashlock útvonallal, a bányászoknak nincs más dolguk, mint elfogadni azt a kisebb kifizetést, amely megegyezik a tényleges bányászati ​​jutalommal.

Abban az esetben, ha a bányászat jutalma valamivel magasabb volt a becsültnél, továbbra is a központ érdeke, hogy ennek tükrözése érdekében frissítse a bányászok csatornáit, mivel a bányászok, akiket a bányászközpont tisztességtelenül kezel, bármikor egyszerűen elhagyhatják. Az egyetlen szélsőséges eset, amikor a hub meghibásodásának és az extra jutalom megtartásának lenne értelme, az az lenne, ha valaki abnormálisan nagy bányászdíjat fizetne, de ettől a helyzettől eltekintve a központnak és a bányászoknak az az érdeke, hogy alkalmazkodjanak a közötti eltérésekhez. a becsült jutalom és a tényleges blokkjutalom.

A második probléma az a tény, hogy a hub egy központi pont, amely DDoS-mentesíthető és kényszeríthető, hogy megakadályozza a P2Pool működését. Belcher javaslata több hub használatát foglalja magában, és minden egyes coinbase-tranzakciót különböző blokkokból különböző hubokra küldenek. Ez azonban megköveteli, hogy a bányászok minden általuk használt hubról csatornákat nyissanak meg, amelyek Belcher becslése szerint a bányászok likviditásának biztosításához a blokkjutalom 50-szeresét (körülbelül 650 BTC) igénylő központ hihetetlenül tőkehiányossá válik.

Braidpool: Újabb iteráció

belép Braidpool (Figyelem: a link egy közvetlen PDF letöltés a GitHubról). A Braidpool Bob McElrath és Kulpreet Singh javaslata, amely Belcher fizetési csatornákat használó javaslatára épít. Belcher javaslatában két jelentős változtatást vezettek be, amelyek javítják a még megoldatlan kérdéseket.

Az első a csomópontok és a bányászok egymással való kommunikációjának megváltozása. Azt javasolják, hogy a bányászok csatoljanak egy Tor v3-címet minden egyes megosztáshoz, amelyet a készletben sugároznak. Így a hub anélkül tud működni, hogy bármilyen hálózati végpontot kitenne, amely érzékeny a DoS támadásokra.

A hub üzemeltetője ezután csatlakozhat a bányászokhoz, hogy csatornákat nyisson meg és frissítsen velük, így a bányászoknak több hubot kell használniuk az egyetlen támadás elkerülése érdekében. Ez lehetővé teszi, hogy a Braidpool egyetlen hubbal működjön, így az egész rendszer robusztusabb és tőkehatékonyabb.

Hogyan próbálják a P2P protokollok megoldani a Bitcoin bányászat központosítását, a PlatoBlockchain adatintelligenciát. Függőleges keresés. Ai.
Forrás: Braidpool fehér papír

A második változás az irányított aciklikus gráf (DAG) használata a sharechain helyett. A részvénylánccal az volt a probléma, hogy a harminc másodperces megosztási idő céljával a részvényekhez szükséges nehézségek nőttek a pool méretének növekedésével, ami megnehezítette a kisebb bányászok dolgát. Egy olyan DAG használata, mint az Ethereum, ahol nem nulla összegű játék egyetlen megosztással, amely bekerül a részvényláncba, mások pedig elárvulnak, lehetővé teszi a bányászok számára, hogy dinamikusan állítsanak be egy nehézséget a megosztásokhoz, amelyek a kivonatolási arányuk és hogyan alapján állíthatók be. gyakran találnak vele megosztásokat.

A DAG struktúra magában foglal mindenkit, aki részt vett benne a ténylegesen talált Bitcoin blokkok között, és a jutalmakat arányosan osztja el mindenki között a DAG-nak nyújtott munka alapján. Ez megoldja az egyes bányászok varianciájának skálázási problémáját, ahogy a medencék nőnek.

Ettől a két változtatástól eltekintve a struktúra többi része pont olyan, mint Belcher javaslata, a coinbase és a csatorna szkriptje ugyanaz.

Záró gondolatok

Egyes olvasók elgondolkodhatnak azon, hogy Betterhash-t miért nem érintette ez a cikk. Miközben decentralizálja a tranzakciók kiválasztását a blokkba foglalandó, nem decentralizálja teljesen a pool összes funkcióját – ami a legfontosabb, a pénzeszközöket kezelő poolok letétkezelési jellege. Ez lehetővé teszi a bányászok számára, hogy az alapok kifizetésének megtagadása révén kényszert gyakoroljanak, ha a bányász olyan tranzakciókat választ ki, amelyeket a pool nem hagy jóvá. Ezért nem tartanám decentralizált bányászati ​​medencének, bár kis mértékben javítja a helyzetet egy ellenséges, de nem teljesen ellenséges környezetben.

Ez a cikk a P2Pool köré összpontosul, és iterációkat javasolt a méretezési korlátok javítása érdekében. Annak érdekében, hogy ne írjak meg egy egész könyvet, nem érintettem más meglévő vagy potenciális terveket. Amint eljutok hozzá, azt tervezem, hogy írok egy további cikket, amely más mechanizmusokkal foglalkozik a bányászati ​​medencék decentralizálása érdekében.

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

Időbélyeg:

Még több Bitcoin Magazine