Kuinka P2P-protokollat ​​pyrkivät ratkaisemaan Bitcoinin louhinnan keskittämisen PlatoBlockchain-tietotiedon. Pystysuuntainen haku. Ai.

Kuinka P2P-protokollat ​​pyrkivät ratkaisemaan Bitcoinin louhinnan keskittämisen

Bitcoinin kaivospoolit perustuvat keskittämiseen, mutta P2Pool ja muut protokollat ​​ovat pyrkineet vähentämään luottamusta kolmansiin osapuoliin.

Jonkin sisällä edellinen artikkeliKirjoitin Bitcoinin louhinnan hajauttamisen ja keskittämisen luonteesta ja siitä, miten se käsitteellään enimmäkseen laadullisessa mielessä. Artikkeli eritteli koko kaivospinon, altaan koordinoinnista aina energian tuotantoon, jotta saisi käsityksen kaivospinon eri kerrosten välisestä suhteesta ja mahdollisuudesta maksimoida hajauttaminen, mikä korostaa, että mitä alemmas on Kun mennään kohti energiantuotantoa, sitä vaikeampaa ja pääomavaltaisempaa on tuoda tälle kerrokselle mielekästä hajauttamista.

Tässä artikkelissa aion mennä syvemmälle kaivospoolien ja kaivostyön koordinoinnin aiheeseen helpottaakseni itsenäisesti omistamia kaivostoimintoja, jotka tekevät yhteistyötä louhiakseen lohkoketjuun liitettävät lohkot.

Kaivosaltaiden luominen

Kaivostoiminta on edennyt pitkälle niistä ajoista, jolloin saatoit vain napsauttaa painiketta ja louhia lohkoja luotettavasti itse kannettavan tietokoneen suorittimella. Tuolloin se oli käytännössä amatööriharrastajien yritys, joka ei vaatinut todellista pääomasijoitusta tai asiantuntemusta, mutta nykyään se on monen miljardin dollarin ammattimarkkina, jossa vaaditaan massiivisia pääomasijoituksia. Se on aivan erilainen pallopeli.

Yksi tämän kaivosteollisuuden luonteen muutoksen luonnollisista seurauksista oli kaivosaltaiden luominen hyvin varhaisessa vaiheessa. Kun kaivostoiminta käytännössä jätti kannettavan tietokoneen pyörimään nurkkaan, lohkon löytämisen vaihtelu ja arvaamattomuus ei ollut kovin suuri asia – lopulta tekisit niin, ja kannettavan tietokoneen käynnissä pitämisen tehokustannukset eivät olleet todella taloudellisia. merkitys.

Kun asiat siirtyivät grafiikkasuoritteisiin ja ASIC-järjestelmiin, niiden toiminnassa pitäminen johti materiaaliinvestointiin ja paljon suurempiin sähkökustannuksiin. Tästä arvaamattomuudesta, kun löydät korttelin, tuli paljon suurempi ongelma kaivostyöläisille, jotka yrittivät saada tuottoa pääomasijoituksilleen ja toimia kannattavasti. Tässä kaivosaltaat tulevat kuvaan.

Niiden avulla kaivostyöläiset voivat tehdä yhteistyötä löytääkseen kelvollisen lohkootsikon, joka työskentelee yhdessä samassa lohkossa, ja lähettää kolikkopohjan palkkion kaivospooliin, joka sitten jakaa sen suhteessa kaikkien osallistuvien kaivostyöläisten kesken suhteessa siihen, kuinka paljon työtä he ovat tehneet auttaakseen löytämään kortteli. Tämä todistetaan kääntämällä "osuuksia" kaivospoolille; lohkot, jotka eivät täytä verkon vaikeustavoitteita, mutta ovat riittävän korkeat osoittamaan, että kaivostyöntekijä ei valehtele ja käyttää laitteistoa ja yrittää löytää kelvollisen lohkon.

Kaivosaltaan keskitys

Keskitetyillä kaivosaltailla on suuria vaikutuksia yksittäisiin kaivostyöläisiin. Ne ovat keskityspiste lohkoon sisällytettävien tapahtumien valinnassa (tai, mikä vielä tärkeämpää, poissulkemisessa). Tämä antaa jokaiselle kaivospoolin operaattorille täydellisen hallinnan lohkoketjussa käsittelemiinsä tapahtumiin, eikä kaivoslaitteiston todellisilla omistajilla ole mahdollisuutta vaikuttaa asiaan paitsi poistumalla poolista, jos he ovat eri mieltä niistä kriteereistä, jotka operaattori päättää asettaa.

He myös säilyttävät yksittäisten kaivostyöntekijöiden bitcoineja, kunnes nämä kaivostyöntekijät päättävät vetää ne pois poolista, jolloin poolin ylläpitäjä toimii säilyttäjänä ja keskuspisteenä, joka voi huijata poolia käyttäviä kaivostyöläisiä, tai hallitukset painostavat heitä takavarikoimaan yksittäisten kaivostyöläisten varoja tai soveltamaan KYC:tä. vaatimuksia heille.

Joten mitä ratkaisuja on olemassa tämän ongelman ratkaisemiseksi?

P2Pool: alkuperäinen hajautettu kaivosallas

P2Pool on alkuperäinen hajautettu kaivospooli protokolla. Se on peer-to-peer-protokolla, jossa kaivostyöntekijät koordinoivat keskenään kaivospalkkioiden jakamista, kun he työskentelevät yhdessä löytääkseen kelvollisen lohkon, joka täyttää vaikeustavoitteen. Tämä koordinointi suoritetaan käyttämällä sitä, mitä protokollasuunnittelu viittaa "jakoketjuksi".

P2Poolin kaivostyöntekijät ottavat lohkoja, jotka eivät täytä verkon vaikeuskohdetta, ja louhivat tehokkaasti oman lohkoketjunsa, joka koostuu kaikista kopioista yksittäisestä lohkosta, jonka parissa ryhmä työskentelee. Kun he saavuttavat pienemmän vaikeustavoitteen, jossa lohko muutetaan pooliksi todistaakseen, että he louhivat keskitetyssä mallissa, he lähettävät lohkon muille kaivostyöntekijöille. P2Poolin ”jakovaikeus” oli kohdistettu niin, että kaivostyöläiset löytäisivät osuuden noin kerran XNUMX sekunnissa.

Olen varma, että lukijat ihmettelevät, kuinka maksu yksittäisille kaivostyöntekijöille toimii. Coinbase-tapahtuma on rakennettu siten, että jokaiselle yksittäiselle kaivostyöntekijälle luodaan tulos P2Poolissa, jolloin varat jaetaan suoraan kolikkotapahtumasta. P2Poolin kaivostyöntekijät varmistavat, että kaikki heille ja kaikille pooliin osallistuville suoritetut maksut ovat oikein ja että jokaiselle osakeketjuun osuuden lahjoittaneelle kaivostyöntekijälle maksetaan oikein työstään jokaisessa lisätyssä osuudessa. Jos joku osallistuva kaivostyöntekijä ei strukturoi maksuja oikein kaikille viimeisimmissä osuuksissaan, kaikki muut P2Poolin kaivostyöntekijät lopettavat sisällyttämästä heitä omiin maksuihinsa ja tehokkaasti "häätävät" kyseisen kaivostyöntekijän poolista epäreilun käyttäytymisen vuoksi.

Tämä suunnittelu johti muutamiin skaalausongelmiin, minkä vuoksi se ei ole enää käytössä. Kun osallistuminen P2Pooliin kasvaa, kasvaa myös jakoketjun osakkeiden kokonaisvaikeuskohde, joka kohdistuu noin kerran 2 sekunnissa. Tämä tarkoittaa, että pienempien kaivostyöläisten on vaikeampi saavuttaa jakoketjun vaikeus minkä tahansa 2 sekunnin sisällä. Tämä tarkoittaa, että pienempien kaivostyöntekijöiden tulojen varianssi tai arvaamattomuus kasvaa, kun PXNUMXPoolin kokonaishajautusaste kasvaa. Tämä johtaa myös suurempaan määrään vanhentuneita lohkoja, koska useammat kaivostyöläiset löytävät kilpailevia osakkeita osakeketjusta suunnilleen samaan aikaan kun enemmän kaivostyöläisiä liittyy PXNUMXPooliin, mikä johtaa "hukkaan työhön" yksittäisten kaivostyöläisten näkökulmasta, jotka vain saavat korvataan, jos heidän osuutensa sisältyy osakeketjuun.

Toinen pääasiallinen skaalautuvuusongelma on maksut, jotka menevät suoraan yksittäisille kaivostyöläisille itse kolikonpohjatapahtumasta. Koska kullekin kaivostyöntekijälle maksetaan suhteessa heidän louhimiinsa osuuksiin, jotka sisältyvät osakeketjuun, jokainen P2Poolin kaivostyöntekijä vaatii uuden tuotoksen, joka lisätään kolikkopohjaiseen tapahtumaan.

Tällä on kaksi seurausta. Ensinnäkin: Kaivostyöntekijöille annetaan pieniä, vähäarvoisia UTXO:ita jokaisessa lohkossa, jonka P2Pool löytää, mikä liittyy näiden tulosten tiivistämiseen myöhemmin ja/tai paljon suurempien transaktioiden kustannuksiin, kun he menevät kuluttamaan kolikoitaan. useita yksittäisiä UTXO:ita, joiden kanssa he päättävät, yhden yhden sijasta vetäytyessään tavanomaisesta poolista tietyn ajanjakson jälkeen. Toiseksi: Jokainen uusi kolikkopohjan tuotos vie lohkotilaa, jonka muut ihmiset voivat kuluttaa ja ansaita P2Poolille enemmän maksutuloja. Se on kaksinkertainen menetys pöytäkirjaan osallistuville kaivostyöläisille.

Nämä kaksi ongelmaa vaikuttivat siihen, että protokolla kuoli hitaasti ja lopulta joutui käyttämättömäksi. Kaikkien viitteiden mukaan parhaani pyrkiessäni jäljittämään tarkkoja ja viimeaikaisia ​​tilastoja (monet vanhat lohkotutkijat, jotka seuraavat kaivospoolin osuutta, ovat sulkeneet toimintansa vuosien varrella), näyttää siltä, ​​että viimeinen P2Poolin louhima lohko oli päällä. Helmikuu 12, 2019.

P2Pool maksukanavan maksuilla

Vuonna 2017, kuukausi sen jälkeen, kun SegWit-aktivointi lukittui, Chris Belcher teki ehdotus P2Poolin skaalautuvuuden parantamiseksi käyttämällä yksisuuntaisia ​​maksukanavia ja joukko keskittimiä, jotka käsittelevät maksuja kaivostyöläisille.

Ehdotuksen ydintarkoituksena on käsitellä kysymystä suuremmista kolikkokaupoista, jotka menettävät kaivostyöläisten rahoja kahdella eri tavalla. Korkealla tasolla ajatuksena on yksinkertaisesti maksaa koko kolikkokauppatapahtuma keskukseen, jonka maksukanavat ovat avoinna yksittäisille kaivostyöntekijöille, ja taata, että mahdollisuus lunastaa varoja kolikkotapahtumasta on atomipohjaisesti sidoksissa kaivostyöläisten korvauksiin. osuutensa maksukanavien kautta.

Coinbase-tapahtuman ja maksukanavien välisen atomiteettitavoitteen saavuttamiseksi kolikkopohjaisen tapahtuman tulosskripti on mukautettava. Belcherin ehdotuksessa se on rakenteeltaan monihaarainen käsikirjoitus, jossa on kolme käyttöehtoa:

  • Kaksi kahdesta multisig. Avain yksi: napa (Hc). Avain kaksi: kaivosmies, joka löysi lohkon (Mc).
  • Yksi avain ja hashlock. Avain: napa (H). Hashlock: keskittimen luoma satunnainen arvo (X).
  • Yksi avain ja aikalukko. Avain: kaivosmies, joka löysi lohkon (M). Aikalukko: CSV:n suhteellinen kuuden kuukauden aikalukko.

Mitä tahansa näistä käyttöehdoista voidaan käyttää kolikkopohjaisen tapahtuman tuoton avaamiseen. Katsotaanpa nyt kaivostyöläisille suunnattua maksukanavan komentosarjaa, jotta voimme nähdä, kuinka nämä kaksi asiaa vaikuttavat toisiinsa:

  • Kaksi kahdesta multisig. Avain yksi: napa (Hc1). Avain kaksi: kaivosmies (Mc1).
  • Kaksi kahdesta multisig ja hashlock. Avain yksi: napa (Hu1). Avain kaksi: kaivosmies (Mu1). Hashlock: kolikkopohjassa käytetyn keskittimen luoma satunnaisarvo (X).

Käydään nyt läpi, kuinka nämä kaksi asiaa ovat vuorovaikutuksessa keskenään.

Kun kaivostyöläiset tuottavat osakkeita lisättäväksi osakeketjuun, keskus seuraa edistymistä. Keskitin päivittää jokaisen osuuden osalta kanavan tilan kaivostyöntekijöiden kanssa, jotka luovuttavat osuuden maksaakseen heille suhteessa heidän tekemänsä työn määrään. He antavat heille kuitenkin vain allekirjoituksen toiselle skriptipolulle, joka vaatii hashlock-esikuvan kulutuksen – tämä takaa, että ilman keskitintä oletuksena allekirjoitusta ensimmäiselle polulle he eivät voi lunastaa näitä varoja, ellei keskus käytä kolikkopohjaa. tulostaa itse käyttämällä komentosarjapolkua hashlockin kanssa, mikä edellyttää esikuvan julkaisemista.

Nyt lopulta yksi P2Poolin kaivostyöntekijöistä löytää kelvollisen lohkon ja julkaisee sen verkossa. Tässä vaiheessa keskitin voi päivittää kaikki maksukanavat kaivostyöntekijöiden kanssa ja antaa allekirjoituksen kanavan ensimmäiselle kirjoituspolulle, jolloin jokainen kaivostyöntekijä voi sulkea kanavansa ja kerätä ansaitsemansa palkinnot milloin tahansa ilman hashlockia. esikuva.

Tässä vaiheessa lohkon löytänyt kaivosmies allekirjoittaa ensimmäisen kirjoituspolun kolikkopohjaan, jolloin keskus voi lunastaa varat kolikkokannasta. Kaivostyöntekijälle myönnetään pieni bonus kaivospalkkioista, jotta he kannustavat allekirjoittamaan yhteistyön. Mutta muista: jos kaivosmies kieltäytyy yhteistyöstä, keskus voi yksinkertaisesti käyttää itseään käyttämällä hashlock-polkua ja paljastaa esikuvan, jolloin kaikki kaivostyöläiset voivat kerätä kohtuullisen osuutensa palkkiosta.

Tällä on vain se haittapuoli, että kaikki kanavat pakotetaan sulkeutumaan ketjussa, ja ne on avattava uudelleen kaivostoiminnan jatkamiseksi. Viimeinen vaihtoehto on olemassa, jos keskusoperaattori päättää lopettaa maksujen käsittelyn tai katoaa. Kuuden kuukauden kuluttua lohkon löytänyt kaivosmies voi lunastaa varat kokonaan itselleen, jos keskus ei ole reagoinut yhteistyöhön tai on käyttänyt kolikot hashlock-polulla.

Tämä jättää kaksi erityistä uhkamalliin liittyvää ongelmaa Belcherin ehdottamiin parannuksiin. Päätös, mitkä tapahtumat sisällytetään lohkoon, jättää tilaa vaihtelulle sen suhteen, kuinka suuri osa kokonaispalkkiosta perustuu siihen, mitä yksittäiset kaivostyöntekijät päättävät sisällyttää kaivosmalleihinsa.

Maksukanavien käyttöönotossa tämä luo virhemarginaalin, eli varsinainen louhittu lohkopalkkio ei vastaa sitä, mihin kaivoskeskus sitoutuu kaivostyöläisten maksukanavissa. Siinä tapauksessa, että todelliset maksuarviot ovat pienempiä kuin lohkopalkkio, keskus voi yksinkertaisesti päivittää maksukanavat yhteiskäytön polkua käyttämällä pienemmällä summalla, ja niin kauan kuin ne eivät vaadi kolikkopohjan tuottoa hashlock-polulla, kaivostyöläisillä ei ole muuta vaihtoehtoa kuin hyväksyä pienempi voitto, joka vastaa kaivospalkkion todellista määrää.

Siinä tapauksessa, että kaivospalkkio oli hieman arvioitua korkeampi, on keskuksen edun mukaista päivittää kaivostyöntekijöille suunnatut kanavat tämän huomioon ottamiseksi, sillä keskuksen epärehellisesti kohtelemat kaivostyöntekijät voivat yksinkertaisesti lähteä milloin tahansa. Ainoa reunatapaus, jossa keskuksen saattaisi olla järkevää rikkoutua ja pitää ylimääräinen palkkio, olisi, jos joku maksaisi epätavallisen suuren kaivospalkkion, mutta tätä tilannetta lukuun ottamatta on keskuksen ja kaivostyöläisten edun mukaista sopeutua mahdollisiin eroihin. palkkioarvio ja todellinen lohkopalkkio.

Toinen ongelma on se, että keskitin on keskeinen kohta, joka voidaan DDoS'd ja pakottaa estämään P2Pool toimimasta. Belcherin ehdotus sisältää useiden keskittimien käyttämisen ja kunkin kolikkopohjatapahtuman lähettämisen eri lohkoista eri keskittimiin. Tämä edellyttää kuitenkin, että kaivostyöntekijöillä on avattava kanavat kaikista käyttämistään keskuskeskuksista, jotka Belcherin arvion mukaan keskittimestä, joka tarvitsee 50-kertaisen palkkion (noin 650 BTC) tarjotakseen likviditeettiä kaivostyöläisille, muuttuu uskomattoman pääomatehokkaaksi.

Braidpool: Toinen iteraatio

enter Braidpool (varoitus: linkki on suora PDF-lataus GitHubista). Braidpool on Bob McElrathin ja Kulpreet Singhin ehdotus, joka perustuu Belcherin ehdotukseen maksukanavien avulla. Belcherin ehdotukseen on tehty kaksi suurta muutosta, jotka parantavat jäljellä olevia kysymyksiä.

Ensimmäinen on muutos siinä, miten keskittimet ja kaivostyöläiset kommunikoivat keskenään. He ehdottavat, että kaivostyöntekijät liittävät Tor v3 -osoitteen jokaiseen osakkeeseen, jonka he lähettävät pooliin. Tällä tavalla keskitin voi toimia paljastamatta mitään verkkopäätepistettä, joka on herkkä DoS-hyökkäyksille.

Keskittimen operaattori voi sitten muodostaa yhteyden kaivostyöläisiin avatakseen ja päivittääkseen kanavia heidän kanssaan, mikä helpottaa kaivostyöläisten tarvetta käyttää useita keskittimiä välttääkseen yhden hyökkäyspisteen. Tämä mahdollistaa Braidpoolin toiminnan yhden keskittimen kanssa, mikä tekee koko järjestelmästä kestävämmän ja pääomatehokkaamman.

Kuinka P2P-protokollat ​​pyrkivät ratkaisemaan Bitcoinin louhinnan keskittämisen PlatoBlockchain-tietotiedon. Pystysuuntainen haku. Ai.
Lähde: Braidpool white paper

Toinen muutos on suunnatun asyklisen graafin (DAG) käyttö sharechainin sijaan. Osakeketjun ongelmana oli, että XNUMX sekunnin osake-aikatavoitteella osakkeiden vaatima vaikeus kasvoi poolin koon kasvaessa, mikä vaikeutti pienempien kaivostyöläisten toimintaa. Käyttämällä DAG:ta, kuten Ethereum, jossa se ei ole nollasummapeli, jossa yksittäinen osuus päätyy jakoketjuun ja muut jäävät orvoiksi, antaa kaivostyöntekijöille mahdollisuuden dynaamisesti asettaa osuuksille vaikeusastetta, jota voidaan säätää heidän käytössään olevan hajautusnopeuden ja sen mukaan. usein he voivat löytää sen kanssa osuuksia.

DAG-rakenne sisältää kaikki siihen osallistuneet todellisten löydettyjen Bitcoin-lohkojen välillä jakaen palkinnot suhteellisesti kaikkien kesken DAG:lle toimittamiensa töiden perusteella. Tämä ratkaisee yksittäisten kaivostyöläisten varianssien skaalausongelman, kun altaat kasvavat.

Lukuun ottamatta näitä kahta muutosta, muu rakenne on kuin Belcherin ehdotus, kolikkopohja- ja kanavaskriptit ovat samat.

Loppuajatukset

Jotkut lukijat saattavat ihmetellä, miksi Betterhashia ei käsitelty tässä artikkelissa. Vaikka lohkoon sisällytettävien transaktioiden valinta hajautetaan, se ei hajauta täysin kaikkia poolin toimintoja – mikä tärkeintä, varoja käsittelevien poolien säilytysluonnetta. Tämä jättää kaivostyöläiset avoimeksi pakottamiselle kieltäytymällä maksamasta varoja, jos kaivostyöntekijä valitsee liiketoimia, joita pooli ei hyväksy. Siksi en pitäisi sitä hajautettuna kaivospoolina, vaikka se parantaakin hieman tilannetta vihamielisessä, mutta ei aivan täysin vastakkaisessa ympäristössä.

Tämä artikkeli on keskittynyt P2Pooliin ja ehdottaa iteraatioita sen skaalausrajoitusten parantamiseksi. Jotta en kirjoittaisi koko kirjaa, en ole koskenut muihin olemassa oleviin tai mahdollisiin malleihin. Heti kun pääsen siihen, aion kirjoittaa jatkokappaleen, jossa käsitellään muita mekanismeja kaivosaltaiden hajauttamiseksi.

Tämä on Shinobin vieraspostaus. Esitetyt mielipiteet ovat täysin heidän omiaan eivätkä välttämättä vastaa BTC Inc:n tai Bitcoin Magazine.

Aikaleima:

Lisää aiheesta Bitcoin Magazine