Danes zaznamujemo uradno izdajo Bitcoin Core 0.21.0, 21. večja izdaja originalnega odjemalca programske opreme Bitcoin, ki jo je pred približno 12 leti začel Satoshi Nakamoto.
Nadzoruje Bitcoin jedro vodilni vzdrževalec Wladimir van der Laan, je to zadnjo veliko izdajo v približno šestih mesecih razvilo več kot sto sodelavcev. Rezultat več kot 600 združenih zahtev za vlečenje je Bitcoin Core 0.21.0 ena največjih izdaj Bitcoin Core v zadnjih letih, ki uvaja različne nove funkcije ter izboljšave zasebnosti in zmogljivosti, hkrati pa velik korak k nadgradnji protokola Schnorr / Taproot.
Spodaj je nekaj opaznejših sprememb.
Deskriptor Denarnice
Ko se kovanci pošljejo na Bitcoin naslov, se pod pokrovom dejansko zgodi, da so “zaklenjeni” v neporabljenem izhodu transakcije (UTXO), da se v poznejši transakciji “odklenejo” (porabijo) samo, če so UTXO so izpolnjeni. Tipičen pogoj je vključitev veljavnega podpisa, ki ustreza določenemu javnemu ključu. Pogoji pa lahko na primer vključujejo tudi vključitev tajne kode, potek časovne zapore ali kombinacijo podpisov (multisig).
Do zdaj je bilo Bitcoin Core zasnovano za upravljanje UTXO-jev v svoji denarnici okoli njihovih ustreznih zasebnih ključev – čeprav so zasebni ključi le eden od številnih potencialnih pogojev za porabo kovancev. Bitcoin Core 0.21.0 namesto tega uvaja “deskriptorske denarnice”. Denarnice z deskriptorji omogočajo uporabnikom, da razvrstijo svoje UTXO glede na vrste pogojev, ki so potrebni za njihovo porabo. (Na primer: ena denarnica za UTXO, ki samo zahtevajo veljaven podpis, in ena denarnica za multisig UTXO.)
Denarnice z deskriptorji so še posebej koristne za razvijalce aplikacij, ki oblikujejo programsko opremo na vrhu Bitcoin Core. Zdaj lahko določeno aplikacijo enostavno oblikujete tako, da uporablja samo določeno vrsto UTXO, na primer multisig UTXO, in prezre vse UTXO, ki niso multisig..
Redni uporabniki lahko opazijo razliko tudi zdaj, ko so uvedene deskriptorske denarnice. Morda je najbolj opazno, da ob zagonu novega vozlišča Bitcoin Core ne bo ustvarjena privzeta denarnica. Namesto tega se nova denarnica ustvari šele, ko se uporabnik za to odloči, kar ji omogoča, da ustvari samo posebej želeno vrsto denarnice. Denarnice z deskriptorjem tudi bolje podpirajo denarnice samo za gledanje: denarnice, ki spremljajo določene UTXO, čeprav vozlišče nima zasebnih ključev, potrebnih za njihovo porabo.
Uporabniki Bitcoin Coreja, ki nadgradijo na Bitcoin Core 0.21.0, bodo za zdaj še vedno lahko uporabljali svojo zapuščeno denarnico. (Starejše denarnice bodo sčasoma zastarele, kar pomeni, da bodo morali uporabniki svojo staro denarnico preseliti v deskriptorsko denarnico, vendar to ne bo nujno potrebno do prihodnje izdaje Bitcoin Core.)
Vročanje kompaktnih blokovnih filtrov prek omrežja peer-to-peer
»Lahki odjemalci« so Bitcoin denarnice in aplikacije, ki ne prenašajo in preverjajo celotne verige blokov Bitcoin, temveč namesto tega prenašajo in potrjujejo samo dele blokov in transakcije, ki jih posebej zadevajo. To ni optimalno varno, je pa veliko manj zahtevno za vire.
Eden od priljubljenih načinov za to je uporaba Bloom Filters. Skratka, Bloom Filters so kriptografski trik za zahtevanje ustreznih podatkov iz bolj ali manj naključnih enakovrednih vozlišč v omrežju. Žal pa je z leti postalo jasno, da so filtri Bloom precej neprijazni do zasebnosti: v bistvu razkrijejo vse naslove uporabnikov na (bolj ali manj naključno) enakovredno vozlišče, ki bi ga seveda lahko upravljal poseg v zasebnost. vohljaj.
Novejša in veliko bolj varna alternativa rešitvi Bloom Filter se imenuje “kompaktno filtriranje blokov na strani odjemalca” (BIP 157/158). Kompaktno filtriranje blokov na strani odjemalca v bistvu spremeni trik Bloom Filter. Namesto da lahke denarnice ustvarijo filtre za pošiljanje celotnim vozliščem, polna vozlišča ustvarijo filtre za vsak blok in jih na zahtevo pošljejo lahkim odjemalcem. Lahki odjemalci nato s pomočjo teh filtrov ugotovijo, ali so bile transakcije, pomembne zanje, morda vključene v blok. V tem primeru bo lahka denarnica prinesla celoten blok in iz njega izbrala vse ustrezne podatke o transakcijah. (Nekaj lažnih pozitivnih sporočil; bloki, v katerih ne bodo ustrezni podatki o transakcijah, čeprav je filter nakazal, da bi lahko bili.)
Obstoječe izdaje Bitcoin Core bi lahko filtre že ustvarile lokalno in jih omogočile prek oddaljenega klica postopka (RPC) za aplikacije, ki se izvajajo na vrhu vozlišča (na primer denarnice). Bitcoin Core 0.21.0 zdaj vključuje tudi možnost, da so ti filtri na zahtevo na voljo prek Bitcoin-ovega omrežja peer-to-peer. To omogoča zdaj upravljanje samostojnih odjemalcev, ki uporabljajo bloom filtre.
Manj poskusov ponovnega predvajanja
Poleg Bloom Filters lahko snoops prekinejo tudi zasebnost uporabnikov Bitcoinov z analizo omrežja. Če lahko ugotovijo, iz katerega vozlišča izvira določena transakcija, so lahko Bitcoin-ovi naslovi tega vozlišča vezani na njegov naslov IP, kar pa je lahko povezano z resnično identiteto.
Do zdaj, ko so vozlišča Bitcoin Core oddajala transakcijo v Bitcoin omrežje, so poskušali znova oddajati transakcijo vsakih petnajst minut, dokler transakcija ni bila vključena v blok. To je pomenilo, da če bi bila ta vozlišča Bitcoin Core povezana z vohljajočim vrstnikom, bi bilo za vohljanje očitno, da je vozlišče Bitcoin Core, ki poskuša ponovno oddajati določeno transakcijo vsakih 15 minut, tudi vozlišče, od koder ta transakcija izvira.
Bitcoin Core 0.21.0 močno zmanjša frekvenco, s katero poskuša znova predvajati transakcije: le enkrat na 12 do 36 ur. Zaradi redkejšega predvajanja je veliko bolj verjetno, da je bila transakcija potrjena od začetnega predvajanja, zato je manj verjetno, da bo vozlišče sploh moralo ponovno oddajati.
V prihodnjih izdajah Bitcoin Core bo to uhajanje zasebnosti v celoti odpravljeno. Vozlišče Bitcoin Core bo nato samo znova predvajalo transakcije, ki bi jih bilo treba potrditi na podlagi lastnega izračuna mempola in provizije. Poleg tega bo znova predvajal tudi druge transakcije, ne samo svoje.
Podpora za Tor V3
Zaradi nedavne nadgradnje protokola Tor, ki varuje zasebnost, so novi naslovi Tor V3 (različica 3) daljši od naslovov V2 (različica 2), ki so bili pred njimi. Naslovi V2 so še vedno v uporabi, vendar bodo zastareli čez približno eno leto.
Opustitev naslovov V2 bi povzročila težave uporabnikom Bitcoin Core, ki želijo Bitcoin uporabljati prek zasebnega omrežja. Vozlišča Bitcoin Core najdejo vrstnike tako, da si med seboj delijo naslove Tor znanih vozlišč Bit, ki uporabljajo Tor. To so delili z istim sporočilom, ki ga uporabljajo za skupno rabo običajnih naslovov IP drugih vozlišč. Čeprav so naslovi Tor V2 lahko “skriti” v običajni obliki naslovov IP (IPV6), so naslovi Tor V3 predolgi za to; z drugimi besedami, trenutna sporočila so preveč omejena, da bi bila združljiva z nadgradnjo Tor.
Bitcoin Core 0.21.0 zato uvaja novo obliko za skupno rabo naslovov IP / Tor z vrstniki. Ta sporočila so lahko dovolj velika za skupno rabo naslovov Tor V3.
Uvajanje Schnorr / Taproot kode in Signet / Regtest
Schnorr / Taproot naj bi bila prva Bitcoinova nadgradnja protokola od ločene priče (SegWit) avgusta 2017. Ker je bil v razvoju že več kot dve leti, algoritem podpisa Schnorr velja za vsestransko izboljšanje sedanjega Bitcoinovega algoritma za podpisovanje ECDSA. V kombinaciji s Taproot – pametnim trikom za prikrivanje različnih pogojev za porabo kovancev v kriptografskem heš-drevesu – nadgradnja obljublja večjo prilagodljivost pametne pogodbe na prilagodljiv in varovalni način..
Koda Schnorr / Taproot je zdaj vključena v Bitcoin Core 0.21.0. Če ne pričakujemo nepričakovanega razvoja, to pomeni, da se ne bo več spreminjalo, kar na primer pomeni, da bi lahko razvijalci aplikacij začeli oblikovati programsko opremo okoli nadgradnje. Poleg tega je Schnorr / Taproot zdaj na voljo v Signetu (novejša in zanesljivejša različica testneta, ki jo razvijalci uporabljajo za testiranje nove programske opreme Bitcoin) in potencialno tudi v Regtests (dodatne lokalne različice testne mreže).
Schnorr / Taproot pa še vedno ne bo na voljo v glavnem omrežju Bitcoinov. Za to je treba najprej aktivirati nadgradnjo, ki zahteva logiko aktivacije, ki še ni vključena v to izdajo Bitcoin Core. Logika aktiviranja naj bi bila vključena v manjšo izdajo Bitcoin Core, morda nekje v naslednjih mesecih.
Drugo …
Poleg zgornjih sprememb Bitcoin Core 0.21.0 vključuje različne popravke napak in izboljšave zmogljivosti, ki za običajne uporabnike ne bodo tako očitne. Denarnica Bitcoin Core bo na primer prešla iz uporabe baze podatkov Berkeley v bazo podatkov SQLite, ki je bolj primerna kot podatkovna datoteka aplikacije in ponuja več zagotovil glede združljivosti, podpore in testiranja. Zanimivo je tudi, da Bitcoin Core 0.21.0 vključuje prenovo zahtevka za transakcijo: novi protokol sporočil, ki ga Bitcoin vozlišča uporabljajo za spoznavanje novih transakcij, je bolje preizkušen, bolje določen in lažji za vzdrževanje in pregled.
Za obsežnejši seznam nadgradenj glejte tudi Opombe ob izdaji Bitcoin Core 0.21.0, ali glej to objavo v spletnem dnevniku Andrew Chow, sodelavec Bitcoin Core, za obsežnejšo razlago deskriptorskih denarnic (kot tudi starejših denarnic) in SQLite (kot tudi Berkeley DB).
Hvala Johnu Newberyju za informacije in povratne informacije.