Erillinen todistaja voi olla tähän mennessä merkittävin parannus Bitcoin-protokollaan. Innovaatio on asetettu korjaamaan tapahtumien muovattavuus, tarjoaa tehokkaan lohkokoon kasvun, mahdollistaa kehityksen joustavuuden ja paljon muuta. Kuukausien koodauksen jälkeen erillinen todistaja on lähestymässä käyttöönottoa, kuten vetopyyntö toimitettiin Bitcoin-ydin aiemmin tällä viikolla.
Kuinka lähellä tarkalleen käyttöönottoa? Kuten minkä tahansa muutoksen yhteydessä Bitcoin-protokollaan, sitä on vaikea ennustaa.
Erillisen todistajan aikajana…
Vaihe yksi: Idea
Jokainen Bitcoin-protokollan parannus alkaa ideasta.
Erotetun todistajan ajatus juontaa juurensa kauan; yleinen käsite erottaa tapahtuma- ja allekirjoitustiedot syntyi todennäköisesti vuonna 2014 tai ehkä jopa aikaisemmin. Mutta se tapahtui noin vuosi sitten, vuoden 2015 alussa BlockstreamBitcoinin ja sivuketjun kehitystiimi päätti toteuttaa konseptin sivuketjun prototyypissä: Elementit. Elements, joka sisältää erillisen todistajan, on enimmäkseen suunnitellut Bitcoin Core -kehittäjä ja Blockstreamin perustaja Gregory Maxwell, ja se julkaistiin kesäkuussa 2015.
Siinä vaiheessa ajateltiin silti mahdottomaksi toteuttaa erillinen todistaja Bitcoin-lohkoketjussa, ellei se ollut kovan haarukan kautta. Tapahtuma- ja allekirjoitustietojen erottaminen muuttaisi yhteensopimattomasti rakennelohkoja, mikä voisi aiheuttaa jaon Bitcoin-verkossa päivitettyjen ja päivittämättömien solmujen välillä.
Syksyllä 2015 se oli Bitcoin Core -kehittäjä Luke Dashjr, joka tajusi, kuinka Segregated Witness otetaan käyttöön Bitcoinin pääprotokollassa. Älykkään hakkeroinnin avulla erilliset todistajatapahtumat voidaan merkitä päivittämättömien solmujen “kuka tahansa voi kuluttaa” -tapahtumiksi, kun taas päivitetyt solmut ohjataan allekirjoitusdatan sisältävään “lisäosalohkoon”. Tämä ratkaisee yhteensopimattomuusongelman, eli erillinen todistaja voidaan ottaa käyttöön pehmeänä haarukana.
Tätä vaihtoehtoa keskusteltiin ensin Bitcoin Core -kehittäjien keskuudessa tyypillisten viestintäkanavien kautta: yksityisellä sähköpostilla, IRC: llä, hieman myöhemmin Bitcoin-kehityksen postituslista ja muualla. Kaikki keskusteluun osallistuneet olivat yhtä mieltä siitä, että se oli hyvä idea.
Pari viikkoa myöhemmin, joulukuussa 2015, Bitcoin Core -kehittäjä Pieter Wuille esitteli Segregated Witnessin julkisesti Bitcoinin skaalaus työpaja Hong Kong.
Arvioitu aika: 1 vuosi
Toinen vaihe: Koodi
Idea sinänsä ei muuta mitään. Joku tarvitsee kirjoittaa koodin idean toteuttamiseksi.
Wuille alkoi koodata erillistä todistajaa marraskuussa 2015 – pari viikkoa ennen kuin hän esitteli idean Hongkongissa. Innoissaan potentiaalista, Bitcoin Core -kehittäjä ja Ciphrex Toimitusjohtaja Eric Lombrozo, Bitcoin Core -kehittäjä Johnson Lau ja jotkut muut kehittäjät alkoivat myös osallistua.
Viisi kuukautta myöhemmin Segregated Witness for Bitcoin Core laskee 4743 koodiriviä (testikoodi mukaan lukien) ja ehdottaa 554 nykyisen Bitcoin Core -koodirivin poistamista tai muuttamista. Wuille ja muut kirjoittajat pitävät sitä tehtyä.
Kokonaisaika: + -5 kuukautta
Kolmas vaihe: tarkistus
Koska koodin katsotaan olevan valmis, Wuille lähetti vetopyynnön tällä viikolla. Vedonpyyntö on pohjimmiltaan GitHub-kehitysalustan “virallinen” ehdotus yhdistää erä koodia – erillinen todistaja – Bitcoin Core -haaraan: projektin jatkuvasti kehittyvä sydän, johon uudet Bitcoin Core -julkaisut perustuvat.
Tämä merkitsee teknisen tarkistusprosessin alkua. Muita kehittäjiä pyydetään tarkistamaan ja testaamaan koodi ja antamaan mielipiteensä. Tämä voidaan tehdä kommentin muodossa tai äänestystyypillä: “ACKs” (puolesta) ja “NACKs” (vastaan). ACK: illa ja NACKeilla on myös useita alajakoja, esimerkiksi osoittamaan, että kehittäjä on testannut koodin.
Tarkistaminen kestää niin kauan kuin Bitcoin Core -tietovaraston ylläpitäjä – tällä hetkellä Wladimir van der Laan – pitää tarpeellisena. Jos hän uskoo, että sulautumista koskeva karkea yksimielisyys puuttuu (ja pysyy), hän voi sulkea vetopyynnön. Ehdotus hylätään, ja toimittaja voi halutessaan kirjoittaa koodin uudelleen.
Todennäköisemmin, erillisen todistajan tapauksessa, tarkistusprosessi antaa palautetta Wuillelle ja muille kehittäjille, mikä voi johtaa pieniin muutoksiin koodissa.
Ja jos Van der Laan uskoo jossain vaiheessa olevan karkea yksimielisyys sulautumisesta, hän yhdistää vetopyynnön. Erillisistä todistajista tulee sitten osa Bitcoin Corein päähaaraa.
Erillisen todistajan tapauksessa on vaikea sanoa, kuinka kauan kestää vetopyynnön yhdistäminen. Koska se on iso muutos, prosessi kestää useita viikkoja kuukauteen tai ehkä hieman pidempään.
Arvioitu aika: 2-6 viikkoa
Neljäs vaihe: julkaisu
Kun vetopyyntö on yhdistetty Bitcoin Corein päähaaraan, se on tarjottava yleisölle uuden Bitcoin Core -julkaisun kautta.
Bitcoin Core tarjoaa kahdentyyppisiä julkaisuja: suuret julkaisut (jotka yleensä muuttavat julkaisuversion toista numeroa, kuten 0.10.0, 0.11.0, 0.12.0 jne.) Ja pienet julkaisut (muuttaa viimeisen numeron, kuten 0.12. 1, 0.12.2 jne.). Suurimmat julkaisut suunnitellaan noin kahdesti vuodessa, mutta ne eivät yleensä sisällä mitään ehdotettuja pehmeitä haarukoita. Näin kuka tahansa voi hyväksyä uuden suuren julkaisun edut, vaikka hän ei halua päivittää ehdotettuun pehmeään haarukkaan.
Pieniä julkaisuja tarjotaan aina, kun ehdotetun pehmeän haarukan (tai virhekorjauksen) koodi yhdistetään, ja Van der Laan uskoo, että julkaisusta on karkea yksimielisyys. (Tästä keskustellaan yleensä aikana viikoittaiset IRC-kokoukset.)
Kaikki julkaisut – suuret ja pienet – on ensin merkitty “julkaisukandidaatiksi”. Julkaisukandidaatti on ehdotettu julkaisu, joka tarjotaan ensin julkisesti testattavaksi. Jos julkaisukandidaatissa esiintyy vikoja tai muita ongelmia, luodaan uusi julkaisuhakija ja tarjotaan julkisesti myös testattavaksi.
Lisäksi kaikki julkaisut – suuret ja pienet, sekä julkaisukandidaatit – kulkevat teknisen rakennuksen ja allekirjoitusrituaalin (“gitian building”) kautta, jota useat kehittäjät suorittavat. Tämä tehdään tietoturva- ja vaivatarkoituksiin, ja se voi kestää useita päiviä.
Jos viime viikon julkaisijaehdokkaassa ei ilmoiteta ongelmista noin viikon kuluttua, Van der Laan ilmoittaa, että tämä julkaisuehdokas on nyt todellinen uusi julkaisu. Tämä uusi julkaisu jaetaan kautta bitcoincore.org ja bitcoin.org.
Arvioitu aika: 1 viikko+
Vaihe 5: Aktivointi
Kun Bitcoin 0.12.2 on julkaistu, Bitcoin Core -kehitystiimi kannustaa kaikkia päivittämään. Vaikka päivitys on valinnaista – vanhemmat solmut pysyvät yhteensopivina muun Bitcoin-verkon kanssa – päivitetyt solmut hyödyntävät erillisen todistajan etuja ja säilyttävät maksimaalisen turvallisuuden.
Mutta jos vain tyypilliset käyttäjät päivittävät, erillinen todistaja ei vielä aktivoidu. Aktivointi vaatii kaivostyöläisten päivityksen. Bitcoin Core 0.12.1: n ja versiobittien käyttöönoton mukaan pehmeät haarukat tapahtuvat uuden tyyppisen signaloinnin kautta.
Ensinnäkin kaivostyöläiset (tai poolit), jotka käyttävät Bitcoin Core 0.12.2: ta (ja samanlaista koodia yhdistäneet Bitcoin-toteutukset), alkavat automaattisesti ilmoittaa olevansa valmiita louhimaan erillistodistajien tapahtumia. Tämä tapahtuu niiden versiobittien kautta, jotka ne sisältävät lohkoissa, jotka he tekevät, jotka ilmoittavat minkä tyyppisiä tapahtumia ja lohkoja he voivat kaivaa.
Kun kaivostyöläiset, jotka edustavat 95 prosenttia hajautustehosta (1916 lohkoa) yhden vaikeusjakson aikana (2 016 lohkoa / noin kaksi viikkoa), sisältävät oikean version bitin, pehmeä haarukka lukitaan sisään. Yksi vaikeusjakso myöhemmin pehmeä haarukka aktivoituu, mikä tarkoittaa jäljellä olevilla 5 prosentilla kaivostyöläisillä on noin kaksi viikkoa päivitykseen. (Jos he eivät päivitä, ne pysyvät osana Bitcoin-verkkoa, mutta muut kaivostyöläiset saattavat joutua orvoiksi, jos ne sisältävät virheellisiä tapahtumia.)
Tukevatko ja kuinka nopeasti kaivostyöläiset, jotka edustavat vähintään 95 prosenttia hash-voimasta, erillistä todistajaa ja kuinka nopeasti, on vaikea ennustaa. Kuten kohti Hongkongin Bitcoin-pyöreän pöydän konsensuskirje, valtaosa kaivostyöläisistä hash-voimalla lupasi hyväksyä erillisen todistajan.
Mutta edes tämä kirje ei edusta 95 prosenttia hajautusvoimasta. Ja hieman yli 5 prosenttia hajautusvoimasta kaivaa parhaillaan Bitcoin Classic; ei ole selvää, yhdistääkö kilpaileva Bitcoin Core -haarukka myös erillisen todistajan. (Ei ole myöskään selvää, pitävätkö nämä kaivostyöläiset kiinni Bitcoin Classicista, jos se ei yhdistä erillistä todistajaa.)
Vähimmäisaika: 4 viikkoa
Vaihe kuusi: Hyväksyminen
Kun erillinen todistaja on aktivoitu Bitcoin-verkossa, käyttäjien on saatava viimeinen vaihe hyötyäkseen: Lompakon ohjelmistossa on oltava mahdollisuus luoda ja vastaanottaa erillisiä todistajan tapahtumia.
Kuinka kauan lompakoiden käyttöönotto kestää niiden kehittäjät – ja Bitcoin-kirjastokehittäjät. Kun Bitcoin kysyi lompakon ja kirjastojen kehittäjiltä tästä aiemmin tänä vuonna, näytti siltä, että useimmat aikovat integroida erillisen todistajan ohjelmistoihinsa. Tahti, jolla tämä tapahtuu, voi kuitenkin vaihdella; jotkut kehittäjät ovat halukkaampia, paremmin rahoitettuja tai yksinkertaisesti kykenevämpiä kuin toiset. Jotkut ovat jo tehneet tarvittavat muutokset ja tukevat erillistä todistajaa aktivointipäivästä alkaen. toiset saattavat kestää hieman kauemmin.
Mutta niin kauan kuin ainakin yksi lompakko tarjoaa vaihtoehdon, käyttäjät voivat aina vaihtaa ja nauttia eduista heti.
Arvioitu aika: vaihtelee
Kiitos Bitcoin Core -kehittäjille Eric Lombrozolle ja BTCDrakille palautteesta ja teknisistä ohjeista.