Onko vaarallista, että Bitcoinilla on useita toteutuksia? PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Onko vaarallista, että Bitcoinilla on useita toteutuksia?

Tämä on mielipidetoimitus Bill Scoresby, bitcoin-pohjainen pienyrityksen omistaja ja useiden bitcoin-omahuollon oppaiden kirjoittaja.

Viat, jotka äskettäin saivat monet LND-solmut putoamaan synkronoinnista Bitcoin-lohkoketjun kanssa, olivat todennäköisesti syynä vaihtoehtoiseen toteutukseen.

Ehkä ihmettelet: "Kuka maailmassa käyttää mitään muuta kuin Bitcoin Core?” Et ehkä tiennyt, että Bitcoinin muita toteutuksia on olemassa. Ehkä et ole varma, mitä erilainen toteutus edes tarkoittaa.

Bitcoin Core alkoi ohjelmistona, joka Satoshi Nakamoto kirjoitti C++:lla ja julkaistiin maailmalle. Se on päivitetty uusilla versioilla, jotka johtavat nykypäivään. Vaihtoehtoinen toteutus on ohjelmisto, joka tekee saman asian kuin Bitcoin Core - pakottaa samat konsensussäännöt - mutta on kirjoitettu eri tavalla, useimmiten eri koodauskielellä.

Kuinka vaihtoehtoinen toteutus rikkoi solmuja Lightning-verkossa?

Yksi suurimmista Lightning Network -solmuversioista (LND) perustuu vaihtoehtoiseen Bitcoin-toteutukseen nimeltä btcd. Kun kehittäjä loi erittäin suuren multisig-tapahtuman, btcd ei pitänyt sitä pätevänä, koska se sisälsi liian paljon todistajatietoja. Muilla Bitcoin-toteutuksilla - tärkeimpänä Bitcoin Corella - ei ollut tällaista rajoitusta Taproot-tapahtuman todistajatiedoilla, ja siksi ne hyväksyivät tapahtuman ja sen sisältävän lohkon kelvollisiksi.

Tuloksena oli, että kaivostyöläiset lisäsivät jatkuvasti uusia lohkoja ketjuun, koska he eivät käyttäneet btcd:tä ja heidän sääntöjensä mukaan mikään ei ollut vialla, mutta LND Lightning -solmut eivät tunnistaneet mitään näistä uusista lohkoista, koska ne rakennettiin lohkon päälle. yhden tapahtuman, jonka he pitivät kelpaamattomana.

Kun virhe toistui 1. marraskuuta, se ei koskenut vain LND-solmuja. Jotkut electrs-instanssit (Electrum Walletin taustapalvelimen toteutus) eivät myöskään päässeet yhteisymmärrykseen ketjun muun osan kanssa. Vaikka LND-solmut jätettiin yhteisymmärrykseen samanlaisen ongelman vuoksi btcd:ssä, se oli Rustilla kirjoitetun Bitcoinin toteutus. sai sähkösolmut jäämään jälkeen, mukaan lukien joitain hyvin näkyviä palvelimia hoitaa mempool.space.

Todistajatietojen koon rajoitus on olemassa DoS-hyökkäysten estämiseksi, ja se on myös osa Bitcoin Corea (vaikka Corella on suurempi raja Taproot-tapahtumille). Näyttää siltä, ​​että kahdessa muussa synkronoinnista poissaan toteutuksessa oli koodi säilytti pienemmän rajan.

Hyvin pienet erot toteutuksissa voivat johtaa yksimielisyyden puutteeseen.

Bitcoinin useiden toteutusten käyttäminen on vaarallista

Satoshi ei pitänyt ajatuksesta Bitcoinin useista toteutuksista. "En usko, että toinen, yhteensopiva Bitcoinin käyttöönotto olisi koskaan hyvä idea." Syynä hän kertoi: "Niin suuri osa suunnittelusta riippuu siitä, että kaikki solmut saavat täsmälleen identtiset tulokset lockstep-vaiheessa, että toinen toteutus olisi uhka verkolle."

Uhka? Mikä on iso juttu?

Olet luultavasti kuullut, että ketju, jolla on eniten todisteita työstä, on todellinen ketju. Kun kaksi erilaista kaivostyöntekijää löytää lohkon samanaikaisesti, ketju halkeaa ja muut kaivostyöläiset alkavat rakentaa sen lohkon päälle, josta he kuulevat ensin.

Heti kun uusi lohko lisätään jaon toiselle puolelle, useimmat solmut ja kaivostyöntekijät hyväksyvät sen uudeksi todelliseksi ketjuksi ja hylkäävät jaon toisen puolen. Näitä lohkoja kutsutaan vanhentuneiksi lohkoiksi, vaikka jotkut ihmiset kutsuvat niitä orvoiksi lohkoiksi.

Koska Bitcoinin lohkojen välinen keskimääräinen aika on 10 minuuttia, on todennäköistä, että koko verkko oppii tästä uudesta lohkosta ennen kuin yksi lisätään jaon häviävälle puolelle, ja eniten työtä tehnyt ketju voittaa.

”Solmut seuraavat voimassa olevaa ketjua, jossa on eniten työtä… Avainsana tässä on pätevä. Jos solmu vastaanottaa lohkon, jonka se määrittelee virheelliseksi, ei ole väliä kuinka paljon työtä sen lohkon päällä tehdään, solmu ei hyväksy kyseistä ketjua." — Andrew Chow

Avainsana on "pätevä". Uhka ilmenee, kun kaivosmies löytää lohkon, joka joidenkin muiden kaivostyöläisten ja solmujen mielestä ei ole kelvollinen. Kaivostyöläiset, jotka pitävät sitä pätevänä, yrittävät rakentaa uusia lohkoja tälle ketjulle. Kaivostyöläiset, joiden mielestä se ei ole pätevä, yrittävät rakentaa viimeisimpään tiedossa olevaan kelvolliseen lohkoon. Tulos: Kaksi ketjua, eikä mitään tapaa tietää, mikä on totta.

Miten ihmeessä tuollainen voisi tapahtua?

No, kuten näimme viimeaikaisen LND-solmujen virheen tapauksessa, jos yhdessä Bitcoinin toteutuksessa on virhe, jota ei ole muissa toteutuksissa, se voi johtaa yksimielisyyden puutteeseen siitä, onko lohko kelvollinen vai ei.

Bitcoinilla ei ole mekanismia tämän korjaamiseksi. Protokollan ulkopuolisen yhteisön on päätettävä, mitä tapahtuu seuraavaksi. Se kuulostaa erittäin epämiellyttävältä.

Niin paljon, että Bitcoin-kehittäjä Peter Todd on sanonut sen muiden toteutusten on vastattava Bitcoin Core -virhettä.

Siinä mennään: useat toteutukset ovat vaarallisia!

Mitkä ovat muut Bitcoinin toteutukset ja miksi ne ovat olemassa?

Ensinnäkin useimmat kaikki käyttävät Bitcoin Corea.

Luke Dashjr näkee noin 43,000 XNUMX solmua, Näistä 98 % käyttää Bitcoin Corea ja jotain nimeltä Coin Dance näkee lähes 15,000 XNUMX solmua, Näistä 96 % käyttää Bitcoin Corea. Joten tällä hetkellä näyttää siltä, ​​​​että vain harvat ihmiset käyttävät vaihtoehtoisia toteutuksia.

Siitä huolimatta on olemassa aktiivisia projekteja, jotka yrittävät rakentaa ja ylläpitää muita Bitcoin-protokollaa toteuttavia koodikantoja. Ne sisältävät:

Jameson Loppilla on loistava sivu kattavampi luettelo ja linkit kaikkiin muihin toteutuksiin.

Kaikissa näissä projekteissa on erittäin lahjakkaita kehittäjiä, jotka työskentelevät niiden parissa, ja jokainen on ollut olemassa yli muutaman vuoden. Miksi ponnistella niin paljon johonkin, joka näyttää sellaiselta ongelmalta?

Bitcoin on luvaton. Kuka tahansa voi ladata ketjun; kuka tahansa voi olla vuorovaikutuksessa verkon kanssa; eikä kukaan voi estää sinua koodaamasta tai suorittamasta vaihtoehtoista toteutusta.

Silti selvästi jotkut ihmiset ovat vastuussa Muutosten tekeminen Bitcoin-tietovarastoon ja niiden valintaprosessi vaikuttaa epävirallliselta. Vaikka siellä on Bitcoin Improvement Proposal (BIP) -prosessi Bitcoin Coreen muutosten ehdottaminen on myös melko epävirallista.

Mikään näistä ei ole suoranainen ongelma. Kuten Marty Bent huomauttaa, karkea yksimielisyys voi olla vahvuus. Jos Bitcoinin vaihtoprosessi on vaikea ja epäselvä, se tarkoittaa, että muutokset tarkistetaan perusteellisemmin.

Karkean yksimielisyyden seuraava askel on useampi kuin yksi suosittu toteutus.

Useiden toteutusten puuttuminen voi olla vaarallisempaa

Ei voi olla epäilystäkään siitä, että on jo erittäin vaikeaa olla yksi niistä ihmisistä, joilla on pääsy Bitcoin Coreen. Maailmassa, jossa Bitcoinilla on keskeinen rooli rahatalouden instrumenttina, tämä työ tulee olemaan paljon vaikeampaa. Pienestä ryhmästä kehittäjiä voi tulla erittäin kannattava kohde. Ainakin heidän huomionsa haetaan, jotta voidaan lobbata erilaisia ​​sisällytyksiä tai poissulkemisia seuraavassa ohjelmistojulkaisussa.

Ajattele lobbausteollisuutta, joka tällä hetkellä on politiikassa. Miksei tällainen asia kehittyisi niiden ihmisten ympärille, joilla on pääsy Bitcoin-protokollan ainoaan toteutukseen?

Kuten poliitikot nyt, heidän katsotaan pääsevän valtaan. Sellaisenaan ihmiset kohdistavat heihin, paitsi että näillä kehittäjillä ei ole valtion lihaksia puolustaa niitä. Millaista elämää siitä tulee? Kuka sen valitsisi vapaaehtoisesti?

Loppujen lopuksi maailmanlaajuinen rahoitusjärjestelmä on melko raskas paino sen pienen ryhmän harteille, joilla on pääsy yhteen GitHub-tietovarastoon. Ehkä ei niinkään eroa globaalista rahoitusjärjestelmästä, jota yritämme päästä eroon, jossa ihmisten rahataloudellinen tulevaisuus riippuu muutaman keskuspankkiirin päätöksistä.

Pelastukseen useita toteutuksia!

Useiden toteutusten läsnäolo ja laaja käyttö Bitcoin-verkossa voi lieventää näitä paineita vaikeuttamalla pahantahtoisen toimijan Bitcoin-protokollan vaihtamista.

Jos Bitcoin-verkoston osallistujat jakautuvat tasaisemmin eri toteutusten kesken, jää enemmän tilaa hyville ideoille. Bitcoiniin muutosten ehdottaminen tai niiden hylkääminen on paljon hajautetumpaa, jos kaikkea ei tehdä yhdessä leirissä.

On selvää, että Bitcoinin eri toteutusten käyttö lisää ketjun hajoamisen riskiä. Katastrofaalinen ketjun jakautuminen – jossa merkittävä osa solmuista ja kaivostyöläisistä irtautui vahingossa – ei olisi hyväksi Bitcoinille, eikä todellakaan sen hinta. Mutta se ei uhkaisi Bitcoinin luvatonta luonnetta.

Keskitetty kehitysympäristö, jossa kaikki rakentavat vain Bitcoin Coreen, voi uhata luvattomuutta. Aiheesta käytävän keskustelun on käsiteltävä riskejä, jotka liittyvät niin voimakkaasti Bitcoin Coreen luottamiseen sen sijaan, että keskitytään vain siihen, mitä ongelmia vaihtoehtoinen toteutus saattaa aiheuttaa.

On suuri, vanhempi artikkeli tästä keskustelusta Kirjailija: Aaron van Wirdum Voit myös lukea uudemman, informatiivinen lanka siitä.

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

Aikaleima:

Lisää aiheesta Bitcoin Magazine