Tänään vietetään Bitcoin Core 0.21.0, Satoshi Nakamoton noin 12 vuotta sitten käynnistämä Bitcoinin alkuperäisen ohjelmistoasiakkaan 21. suurin julkaisu.
Valvoo Bitcoin-ydin johtava ylläpitäjä Wladimir van der Laan, tämän viimeisimmän suuren julkaisun kehitti reilut sata avustajaa noin kuuden kuukauden kuluessa. Yli 600 yhdistetyn vetopyynnön tuloksena Bitcoin Core 0.21.0 on yksi viime vuosien suurimmista Bitcoin Core -julkaisuista, joka tuo käyttöön useita uusia ominaisuuksia sekä yksityisyyden ja suorituskyvyn parannuksia samalla kun otat ison askeleen kohti Schnorr / Taproot-protokollapäivitystä.
Alla on joitain merkittävimpiä muutoksia.
Kuvaava lompakko
Kun kolikot lähetetään Bitcoin-osoitteeseen, hupun alla tapahtuu, että ne “lukitaan” käyttämättömään tapahtumalähtöön (UTXO), jotta ne voidaan “avata” (käytetty) myöhemmässä tapahtumassa vain, jos olosuhteet piiloutuvat UTXO täyttyvät. Tyypillinen ehto on tiettyä julkista avainta vastaavan voimassa olevan allekirjoituksen sisällyttäminen. Mutta ehdot voivat esimerkiksi koostua myös salaisen koodin sisällyttämisestä, aikalukon päättymisestä tai allekirjoitusten yhdistelmästä (multisig).
Toistaiseksi Bitcoin Core on suunniteltu hallitsemaan lompakossaan olevia UTXO: ita vastaavien yksityisten avainten ympärillä, vaikka yksityiset avaimet ovat vain yksi monista mahdollisista kolikoiden käytön ehdoista. Bitcoin Core 0.21.0 tuo sen sijaan käyttöön “kuvailulompakot”. Kuvailulompakot antavat käyttäjien luokitella UTXO: nsa niiden ehtojen perusteella, joita niiden käyttämiseen vaaditaan. (Esimerkiksi: yksi lompakko UTXO: ille, joka vaatii vain kelvollisen allekirjoituksen, ja yksi lompakko usean siksen UTXO: ille.)
Kuvailulompakot ovat erityisen hyödyllisiä sovelluskehittäjille, jotka suunnittelevat ohjelmistoja Bitcoin Corein päälle. Tietyn sovelluksen voi nyt helposti suunnitella käyttävän vain tietyn tyyppistä UTXO: ta, kuten monisigaisia UTXO: ita, ja jättämään huomiotta kaikki muut kuin multisig UTXO: t..
Säännölliset käyttäjät saattavat myös huomata eron nyt, kun kuvauslompakot on otettu käyttöön. Ehkä varsinkin, oletuslompakkoa ei luoda, kun uusi Bitcoin Core -solmu käynnistetään. Sen sijaan uusi lompakko luodaan vain, kun käyttäjä nimenomaan päättää tehdä niin, jolloin hän voi luoda vain halutun tyyppisen lompakon. Kuvailulompakot tukevat myös paremmin Watch Only -lompakoita: lompakot, jotka seuraavat tiettyjä UTXO: ita, vaikka solmussa ei olisi niiden kuluttamiseen tarvittavia yksityisiä avaimia.
Bitcoin Core -käyttäjät, jotka päivittävät versioon Bitcoin Core 0.21.0, voivat silti käyttää vanhaa lompakkoaan toistaiseksi. (Vanhat lompakot lopulta poistetaan käytöstä, mikä tarkoittaa, että käyttäjien on siirrettävä vanhat lompakot kuvailevaan lompakkoon, mutta tämä ei ole ehdottoman välttämätöntä ennen tulevaa Bitcoin Core -julkaisua.)
Pienikokoisten suodattimien tarjoaminen vertaisverkossa
“Kevyet asiakkaat” ovat Bitcoin-lompakoita ja -sovelluksia, jotka eivät lataa ja vahvista koko Bitcoin-lohkoketjua, vaan lataavat ja vahvistavat vain niitä osia lohkoja ja tapahtumia, jotka koskevat heitä nimenomaan. Tämä ei ole optimaalisesti turvallinen, mutta on paljon vähemmän resursseja kuluttava.
Yksi suosittu tapa tehdä tämä on Bloom Filters. Lyhyesti sanottuna Bloom-suodattimet ovat salaustemppu, jolla pyydetään asiaankuuluvia tietoja verkon enemmän tai vähemmän satunnaisilta vertais solmuilta. Valitettavasti vuosien varrella on kuitenkin tullut selväksi, että Bloom-suodattimet ovat melko yksityisyyttä epäystävällisiä: ne paljastavat olennaisesti kaikki käyttäjän osoitteet (enemmän tai vähemmän satunnaiselle) vertais solmulle, jota tietysti voi käyttää yksityisyyttä tunkeutuva kyylä.
Uudempaa ja paljon yksityisyyttä säilyttävää vaihtoehtoa Bloom Filter -sovellukselle kutsutaan “pienikokoiseksi asiakaspuolen lohkosuodattimeksi” (BIP) 157/158). Pienikokoinen asiakaspuolen lohkosuodatus kääntää Bloom Filter -temppun päähänsä. Sen sijaan, että kevyet lompakot luovat suodattimia lähetettäväksi täydellisiin solmuihin, täydet solmut luovat suodattimet kullekin lohkolle ja lähettävät ne kevyille asiakkaille pyynnöstä. Kevyet asiakkaat käyttävät sitten näitä suodattimia selvittääkseen, onko heidän kannaltaan merkitykselliset tapahtumat sisällytetty lohkoon. Jos näin on, kevyt lompakko noutaa koko lohkon ja poimii siitä kaikki asiaankuuluvat tapahtumatiedot. (Tulee joitain vääriä positiivisia; lohkot, joissa ei ole asiaankuuluvia tapahtumadatoja, vaikka suodatin ehdotti, että ne saattavat olla.)
Olemassa olevat Bitcoin Core -julkaisut voisivat jo luoda suodattimet paikallisesti ja asettaa ne saataville etäkäytäntöpuhelun (RPC) kautta solmun päällä toimiville sovelluksille (kuten lompakot). Bitcoin Core 0.21.0 sisältää nyt myös vaihtoehdon asettaa nämä suodattimet saataville Bitcoinin vertaisverkossa pyynnöstä. Tämä mahdollistaa nyt erillisten valosovellusten käyttämisen, jotka käyttävät kukintasuodattimia.
Vähemmän uudelleenlähetysyrityksiä
Bloom Filtersin lisäksi snoopit voivat myös rikkoa Bitcoin-käyttäjien yksityisyyttä verkkoanalyysin avulla. Jos he pystyvät selvittämään, mistä solmusta tietty tapahtuma on alkanut, kyseisen solmun Bitcoin-osoite (osoitteet) voidaan sitoa sen IP-osoitteeseen, joka puolestaan voi liittyä tosielämän identiteettiin..
Tähän asti, kun Bitcoin Core -solmut lähettivät tapahtuman Bitcoin-verkkoon, he yrittivät lähettää tapahtuman uudelleen viidentoista minuutin välein, kunnes tapahtuma sisällytettiin lohkoon. Tämä tarkoitti sitä, että jos nämä Bitcoin Core -solmut liitetään snooping-ikäisekseen, on ilmeistä snoopille, että Bitcoin Core -solmu, joka yrittää lähettää tietyn tapahtuman uudelleen 15 minuutin välein, oli myös solmu, josta kyseinen tapahtuma syntyi..
Bitcoin Core 0.21.0 vähentää huomattavasti taajuutta, jolla se yrittää lähettää tapahtumia uudelleen: vain kerran 12-36 tunnin välein. Jos lähetetään uudelleen harvemmin, on paljon todennäköisempää, että tapahtuma on vahvistettu alkuperäisen lähetyksen jälkeen, joten solmun on todennäköisesti vähemmän lähetettävä uudelleen lainkaan.
Tulevaisuudessa Bitcoin Core -julkaisuissa tämä tietosuojavuoto korjataan kokonaan. Bitcoin Core -solmu lähettää sitten vain uudelleen tapahtumia, jotka olisi pitänyt vahvistaa sen omien mempooli- ja maksulaskelmien perusteella. Lisäksi se lähettää uudelleen muita tapahtumia, ei vain omia.
Tor V3 -tuki
Äskettäin päivitetyn yksityisyyttä säilyttävän Tor-protokollan takia uudet V3 (versio 3) Tor-osoitteet ovat pidempiä kuin ennen niitä tulleet V2 (versio 2) -osoitteet. V2-osoitteet ovat edelleen käytössä, mutta ne poistetaan käytöstä noin vuoden kuluttua.
V2-osoitteiden vanhentuminen olisi aiheuttanut ongelman Bitcoin Core -käyttäjille, jotka haluavat käyttää Bitcoinia yksityisyysverkossa. Bitcoin Core -solmut löytävät ikäisensä jakamalla toistensa Tor-osoitteita tunnetuista Toria käyttävistä Bitcoin-solmuista. He jakoivat tämän saman viestin kautta, jota he käyttävät muiden solmujen tavallisten IP-osoitteiden jakamiseen. Vaikka Tor V2-osoitteet voitaisiin “piilottaa” tavallisessa IP-osoitemuodossa (IPV6), Tor V3 -osoitteet ovat liian pitkiä siihen; toisin sanoen nykyiset viestit ovat liian rajoitettuja ollakseen yhteensopivia Tor-päivityksen kanssa.
Siksi Bitcoin Core 0.21.0 esittelee uuden muodon jakaa IP / Tor-osoitteet ikäisensä kanssa. Nämä viestit voivat olla riittävän suuria jakamaan Tor V3 -osoitteet.
Schnorr / Taproot-koodi ja Signet / Regtest-käyttöönotto
Schnorr / Taproot on valmistautunut olemaan Bitcoinin ensimmäinen protokollapäivitys Segregated Witnessin (SegWit) jälkeen elokuussa 2017.Schnorr-allekirjoitusalgoritmia on kehitetty jo yli kahden vuoden ajan, ja sitä pidetään kokonaisvaltaisena parannuksena Bitcoinin nykyiseen ECDSA-allekirjoitusalgoritmiin verrattuna. Yhdessä Taprootin kanssa – fiksu temppu piilottaa erilaiset kolikoiden kulutusolosuhteet kryptografiseen hash-puuhun – päivitys lupaa tarjota älykkäämpiä sopimusten joustavuutta skaalattavalla ja yksityisyyttä säilyttävällä tavalla.
Schnorr / Taproot-koodi sisältyy nyt Bitcoin Core 0.21.0: een. Odottamattoman kehityksen estäminen tarkoittaa sitä, että siihen ei enää tehdä muutoksia, mikä tarkoittaa esimerkiksi sitä, että sovelluskehittäjät voisivat alkaa suunnitella ohjelmistoja päivityksen ympärille. Lisäksi Schnorr / Taproot on nyt saatavana Signetillä (uudempi ja luotettavampi testnet-muunnos, jota kehittäjät käyttävät uusien Bitcoin-ohjelmistojen testaamiseen) ja mahdollisesti myös Regtests-testeissä (muut paikalliset testnet-versiot)..
Schnorr / Taproot ei kuitenkaan ole vielä saatavilla Bitcoinin verkkopalvelussa. Tätä varten päivitys on ensin aktivoitava, mikä edellyttää aktivointilogiikkaa, jota ei vielä ole sisällytetty tähän Bitcoin Core -julkaisuun. Aktivointilogiikan odotetaan sisältyvän pieneen Bitcoin Core -julkaisuun, mahdollisesti jonnekin seuraavien kuukausien aikana.
Muu…
Edellä mainittujen muutosten lisäksi Bitcoin Core 0.21.0 sisältää useita virhekorjauksia ja suorituskyvyn parannuksia, jotka eivät ole yhtä ilmeisiä tavallisille käyttäjille. Esimerkiksi Bitcoin Core -lompakko siirtyy Berkeley DB: n käytöstä SQLite-tietokantaan, joka soveltuu paremmin sovellustiedostoksi ja tarjoaa useita takeita yhteensopivuudesta, tuesta ja testauksesta. Mielenkiintoista on myös se, että Bitcoin Core 0.21.0 sisältää tapahtumapyynnön uudistuksen: uusi viestiprotokolla, jota Bitcoin-solmut käyttävät uusien tapahtumien oppimiseksi, on paremmin testattu, paremmin määritelty ja helpompi ylläpitää ja tarkistaa.
Laajempi luettelo päivityksistä, katso myös Bitcoin Core 0.21.0 -julkaisutiedot, tai katso tämä blogiviesti kirjoittanut Bitcoin Core avustaja Andrew Chow saadaksesi kattavamman selityksen kuvailulompakoista (sekä vanhoista lompakoista) ja SQLitesta (samoin kuin Berkeley DB).
Kiitos John Newberylle tiedoista ja palautteesta.