Bitcoin-ydin 0.13.0, Bitcoinin referenssiohjelman kolmastoista sukupolvi, jonka Satoshi Nakamoto käynnisti ensimmäisen kerran melkein kahdeksan vuotta sitten, on nyt merkitty julkaistavaksi. Tämä on yksi ohjelmiston julkaisuprosessin viimeisistä vaiheista, ja se käynnistää Gitian-rakentamisprosessin.
Noin 100 osallistujaa kehitti Bitcoin Core 0.13.0: n noin viiden kuukauden aikana. Ja vaikka suuri osa kehitystyöstä on tänä aikana keskittynyt myös erilliseen todistajaan, joka aktivoidaan vasta ohjelmiston tulevassa pienessä julkaisussa, Bitcoin Core 0.13.0 sisältää noin tusina merkittävää parannusta verrattuna Bitcoin Core 0.12.0: een.
Nämä ovat tärkeimmät muutokset.
Lapsi maksaa vanhemmalle
Bitcoin-verkon tapahtumien määrä on kasvanut tasaisesti ajan myötä. Tämän seurauksena enemmän lohkoja on täyttymässä, ja kaivostyöläiset yleensä veloittavat korkeampia maksuja sisällyttämällä tapahtumia lohkoihin. Tapahtumien, joihin ei sisälly riittäviä maksuja, vahvistaminen kestää yleensä kauemmin tai ehkä jopa ei koskaan vahvista lainkaan. Tämä on osoittautunut jonkin verran ongelmalliseksi, varsinkin aikoina, jolloin verkossa tehtiin ns. Stressitestit, joissa verkon tapahtumien kokonaismäärä oli piikki ja tapahtumien viivästyminen oli huomattavaa.
Yksittäiset käyttäjät voivat ratkaista tämän ongelman sisällyttämällä korkeamman maksun tapahtumiinsa ja kannustamalla kaivostyöntekijöitä asettamaan etusijalle nämä tapahtumat. Tämä on mahdollista silloinkin, kun tapahtuma on lähetetty, käyttämällä korvausmaksua (RBF); tätä vaihtoehtoa ei kuitenkaan vielä ole monissa lompakoissa. Lisäksi RBF on vaihtoehto vain tapahtuman lähettäjälle. Tähän asti vastaanottimella ei ollut tapaa kumota saapuvan tapahtuman maksua vahvistuksen nopeuttamiseksi.
Tämä ongelma ratkaistaan tehokkaasti temppulla nimeltä “Child Pays for Parent” (CPFP). CPFP on käytäntö, jota kaivostyöläiset valitsevat lohkoihin sisällytettävät tapahtumat. CPFP: n avulla kaivostyöläiset eivät välttämättä valitse parhaiten maksavia (ja kelvollisia) tapahtumia, vaan valitsevat kannattavimmat aseta liiketoimet. Toisin sanoen: he valitsevat matalapalkkisen tapahtuman, jos seuraava tapahtuma luottaa matalapalkkioisessa kaupassa tarjoaa riittävän korkean palkkion korvaamiseksi. Kaivosmies sisällyttää molemmat samanaikaisesti.
Käytännössä tämä tarkoittaa, että matalan maksun transaktion vastaanottaja voi “liittää” korkean palkkion tapahtuman ja käyttää samoja kolikoita itselleen. Uuden, korkean palkkion tapahtuman kannustama kaivosmies sisällyttää joukon tapahtumia. Sellaisena vastaanottajan ei tarvitse odottaa niin kauan vahvistusta, kun taas kaivosmies voi lisätä tulojaan.
Kompakti lohkotuki
Bitcoinin peer-to-peer -protokolla on tällä hetkellä jonkin verran tehoton. Solmut lähettävät toisilleen eniten tapahtumatietoja kahdesti: kerran tapahtumana, kun se lähetetään alun perin verkon kautta, ja kerran osana lohkoa, kun tapahtuma on vahvistettu.
Tällä on joitain haittoja. Ensinnäkin tapahtumadatan lähettäminen kahdesti vaatii enemmän kaistanleveyttä kuin sen todella pitäisi, mikä lisää Bitcoin Core -palvelun käyttökustannuksia. Toiseksi ja ehkä tärkeämpää on, että uusien lohkojen edelleenlähettäminen usealle vertaisryhmälle samanaikaisesti voi aiheuttaa merkittäviä lähtevän kaistanleveyden piikkejä. Tämä saattaa häiritä Internetin käyttöä aina, kun uusi lohko löytyy, mikä on mahdollisesti ärsyttävää käyttäjille. Ja ehkä vielä tärkeämpää, se voi hidastaa myös lohkojen etenemistä verkossa. Hidas lohkon eteneminen voi puolestaan suosia suurempia kaivosaltaita, mikä kannustaa keskitetympää kaivosmaisemaa.
Kompaktit lohkot (BIP 152), kehittäjät Bitcoin Core ja Blockstream kehittäjä Matt Corallo on suunniteltu vähentämään liikaa tiedonsiirtoa. Kun uusi lohko löytyy, solmut lähettävät aluksi vain erittäin pienikokoisia tapahtumadatan hajautuksia. Koska solmut ovat jo saaneet koko tapahtumadatan, kun se alun perin lähetettiin verkon kautta, ne voivat näiden hashien avulla selvittää, mitkä tapahtumat kuuluvat lohkoon, ja rekonstruoida itse lohkon.
Tämä temppu ei kuitenkaan aina toimi täydellisesti. Jos solmu ei vielä saanut alkuperäistä tapahtumaa ennen hajautusten vastaanottamista, kyseinen solmu ei tietenkään voi valita tapahtumaa. Lisäksi harvoissa tapauksissa a väärä liiketoimi voi hajautua a oikein hash, huijaamalla solmua uskomaan, että se sai oikean tapahtuman, kunnes se yrittää rekonstruoida lohkon ja huomaa, että se ei täsmää.
Molemmissa näissä epäonnistumistapauksissa solmu yksinkertaisesti pyytää tiettyjä tapahtumadataa. Vaikka niissä olisi vain joitain täydellisiä tapahtumia, Compact Blocks lähettää verkon kautta paljon nopeammin ja vaatii huomattavasti vähemmän kaistanleveyttä.
Hierarkkinen deterministinen avaimen luonti
Tähän asti Bitcoin Core on luonut uuden ja täysin satunnaisen julkisen ja yksityisen avaimen parin jokaiselle uudelle Bitcoin-osoitteelle. Vaikka tämä on tärkeää turvallisuuden ja yksityisyyden vuoksi, se voi myös olla hieman taakka käyttäjille. Kaikkien yksityisten avainten suojaamiseksi heidän on tehtävä säännöllisiä varmuuskopioita.
Hierarkkinen deterministinen (HD) avainten luonti (BIP 32), Bitcoin Core -kehittäjien Gregory Maxwellin ja tohtori Pieter Wuillen sekä Armory-kehittäjän Alan Reinerin kehittämän salaustemppun, joka on kehitetty vuosina 2012 ja 2013, ratkaisemaan tämän ongelman. HD-avain sukupolven avulla Bitcoin Core luo jokaiselle uudelle osoitteelle täysin uuden avainparin, mutta kaikki nämä avaimet ovat peräisin yhdestä 12 sanan siemenestä. Niin kauan kuin käyttäjät muistavat tämän 12 sanan siemenen, he voivat luoda kaikki yksityiset avaimet uudelleen ja käyttää kaikkia varojaan.
On huomattava, että HD-avaimen luonti ei ole uusi ominaisuus Bitcoin-maailmassa. Monet lompakot sisälsivät vaihtoehdon jo useita vuosia. Sitä ei juuri koskaan ollut Bitcoinin referenssiohjelmassa – toistaiseksi.
Esitys & Turvallisuus
Ja tietenkin, Bitcoin Core 0.13.0 esittelee merkittävän luettelon suorituskyky- ja tietoturvapäivityksistä. Näiden parannusten laajuus on tämän artikkelin ulkopuolella (katso Bitcoin Core 0.13.0’s julkaisutiedot kaikki yksityiskohdat), mutta lyhyesti sanottuna…
Tietokannan välimuistia on lisätty, mikä sallii solmujen nopeuttaa tapahtumien validointia ja paljon muuta. Bitcoin-komentorivityökalun avulla käyttäjät voivat nyt kirjoittaa salasanoja ja muita arkaluontoisia tietoja vuorovaikutteisesti, mikä parantaa tietoturvaa olemalla tallentamatta näitä tietoja pelkkänä tekstinä. Ohjelmisto päivitetään käyttämään ohjelmointikielien uudempia versioita C ++ 11 ja Python 3, jotka mahdollistavat tehokkaammat ominaisuudet. ARM (erityinen mikroprosessoriarkkitehtuuri) Linux-binäärit ovat nyt osa julkaisua, joten käyttäjien ei tarvitse koota sitä itse. Tiedot siitä, mitkä mempoolin tapahtumat perustuvat toisiinsa (CPFP: n kanssa käytettynä), voidaan välittää ulkoisille ohjelmille. Verkon solmut voivat pyytää vastaanottamaan vain tapahtumia, jotka täyttävät tietyn maksurajan DoS-hyökkäysten estämiseksi. Ja viimeiseksi, vertaisverkko-, etäprosessipuhelu- ja viestijärjestelmäprotokolliin on tehty paljon matalan tason parannuksia.
Kiitos Bitcoin Core -johdon ylläpitäjälle Wladimir van der Laanille ja Bitcoin Core -kehittäjälle ja Ciphrex Toimitusjohtaja Eric Lombrozo tietoa ja palautetta.
Huomautus: Bitcoin Core 0.13.0 julkaistiin virallisesti 23. elokuuta; tämän artikkelin alkuperäinen otsikko, jossa ilmoitettiin julkaisemisesta 22. elokuuta, oli väärä. Se oli merkitty vapautettavaksi, mikä tarkoittaa tyypillisesti sitä, että se julkaistaan muutamassa päivässä. Bitcoin Core 0.13.0 voidaan nyt ladata bitcoincore.org ja bitcoin.org. (Mutta huomaa tämä ennen lataamista turvallisuusvaroitus osoitteessa bitcoin.org.)