Danes zaznamujemo uradno izdajo Bitcoin Core 0.17.0, 17. generacija originalnega odjemalca programske opreme Bitcoin, ki jo je pred skoraj 10 leti začel Satoshi Nakamoto in še danes prevladujoča implementacija Bitcoinov v omrežju. Nadzoruje Bitcoin jedro vodilni vzdrževalec Wladimir van der Laan, je to zadnjo veliko izdajo v približno sedmih mesecih razvilo približno 135 sodelavcev.
Rezultat več kot 700 združenih zahtev za vlečenje, Bitcoin Core 0.17.0 vključuje vrsto izboljšav učinkovitosti in popravkov napak ter druge spremembe.
Tu je pregled nekaterih teh sprememb.
Izboljšana izbira kovancev
Kovanci v denarnici se dejansko shranijo kot ločeni kosi (“izhodi za transakcije”). Običajno je en kos za vsako prejeto plačilo; zato večina kosov predstavlja različne količine. Ko plačilo opravite iz denarnice, se seštejejo različni deli, da se sešteje znesek, ki je dovolj velik za plačilo, in provizija. Različni deli se pogosto ne seštejejo do natančno potrebnega zneska, vendar se v tem primeru transakciji doda “naslov za spremembo”, ki ostanek denarja pošlje nazaj v isto denarnico..
Do zdaj je denarnica Bitcoin Core dodajala različne koščke. Šele nato bi izračunal in dodal pristojbino, potrebno za plačilo transakcije. Toda v nekaterih primerih je dodajanje provizije transakciji pomenilo, da dodani kosi niso več predstavljali dovolj velikega zneska, v tem primeru je bilo treba vključiti dodaten kos.
Bitcoin Core 0.17.0 uvaja algoritem “Branch and Bound”, ki ga je zasnoval BitGo inženir Mark Erhardt. To ponuja dve konkretni izboljšavi. Najprej se izračuna provizija za vsak kos, preden je izbran za del transakcije, da ne bi bilo treba kasneje dodajati novih kosov. Drugič, algoritem se poskuša ujemati z različnimi kosi, tako da seštejejo natančno potreben znesek, pri čemer se izogne potrebi po »spremembi naslovov« (kamor se pošlje ostanek »spremembe«), kjer je to mogoče. (Velike denarnice z veliko kosi, na primer tiste, ki jih upravljajo borze ali drugi subjekti z velikim prometom, manj verjetno potrebujejo naslove za spremembo kot druge denarnice.)
Poleg tega algoritem za izbiro kovancev v Bitcoin Core 0.17.0 vključuje neobvezno izboljšanje zasebnosti.
Čeprav je to v nasprotju z najboljšimi praksami, je mogoče prejemati več plačil na isti Bitcoin naslov. (To se na primer veliko zgodi pri naslovih za donacije.) Ponovna uporaba naslovov je sama po sebi škodljiva za zasebnost, saj je očitno, da so vsi kovanci na tem naslovu in vsa plačila z njega naslov istega uporabnika. Še huje pa je, če se različni kosi, vezani na isti naslov, uporabljajo pri različnih transakcijah in jih povežejo s kosi, ki prvotno niso bili povezani s tem naslovom.
Da bi odpravili to zadnjo težavo, Bitcoin Core 0.17.0 daje uporabnikom možnost, da v transakciji dajo prednost dodajanju kosov, vezanih na isti naslov, in kadar koli je to mogoče, ostanejo vsi drugi deli zunaj transakcije..
Preprosto ustvarite in uporabite nove denarnice
Od Bitcoin Core 0.15.0 je bilo mogoče ustvariti več denarnic, ki delujejo neodvisno druga od druge. Vse te denarnice imajo svoje ločene Bitcoin naslove, zasebne ključe in s tem sredstva. Uporabniki lahko uporabljajo različne denarnice za različne namene; na primer, eno denarnico lahko uporabite za osebne vsakodnevne nakupe, drugo za poslovne transakcije in tretjo samo za trgovanje. To lahko olajša in pripravi računovodstvo, uporabniki pa lažje izkoristijo večjo zasebnost, saj različnih denarnic ni mogoče povezati med seboj z blockchain analizo.
Do zdaj pa je bilo mogoče nove denarnice ustvariti le ob zagonu vozlišča in ni bilo na voljo uporabnikom denarnice Bitcoin Core (GUI). Obe omejitvi sta zdaj rešeni. Bitcoin Core 0.17.0 uporabnikom omogoča ustvarjanje novih denarnic, kadar koli želijo, in to funkcijo ponuja v grafičnem uporabniškem vmesniku.
Kot dodatno prednost Bitcoin Core 0.17.0 uvaja funkcijo, imenovano “Scantxoutset.” To uporabnikom omogoča, da hitro preverijo, ali njihova nova denarnica že vključuje kovance (na primer, ker so zasebni ključi uvoženi iz druge denarnice), tako da preverijo nabor neizrabljenih transakcijskih izhodov (UTXO), namesto da ponovno skenirajo celotno zgodovino transakcij.
Nadgradnja denarnice, ki ni HD do HD
Medtem ko so različice Bitcoin Core, starejše od 0.13.0, še vedno zahtevale, da uporabniki varnostno kopirajo vse svoje zasebne ključe, so vse različice Bitcoin Core od takrat ponujale Hierarchical Deterministic (HD) denarnice. Uporabniki denarnice HD morajo kot varnostno kopijo shraniti samo eno besedno zvezo (seznam besed).
Vendar pa uporabniki Bitcoin Core, ki nadgrajena njihov sistem na Bitcoin Core 0.13.0 in novejši niso mogli ustvariti novih HD denarnic. Nezdružljivost denarnic, ki niso HD, in denarnic HD je pomenila, da so bili ti uporabniki še vedno zataknjeni pri varnostnem kopiranju vseh svojih zasebnih ključev.
Bitcoin Core 0.17.0 zdaj tem uporabnikom omogoča tudi nadgradnjo na HD format. Poleg tega se lahko uporabniki denarnice Bitcoin Core, ki so že imeli denarnice HD, zdaj odločijo za ustvarjanje ali uvoz novega semena HD.
Denarnice samo za gledanje
Bitcoin denarnice običajno shranjujejo zasebne ključe, ki uporabnikom omogočajo, da porabijo svoje kovance. Toda Bitcoin Core že nekaj časa podpira tudi naslove »Samo za gledanje«. Zasebni ključi teh naslovov niso shranjeni v denarnici, kovanci, priloženi tem naslovom, pa so še vedno vidni v denarnici. Tako lahko uporabniki enostavno sprejemajo plačila in spremljajo svoja sredstva, medtem ko na primer zasebne ključe shranjujejo brez povezave.
Bitcoin Core 0.17.0 ta koncept popelje še korak dlje in uporabnikom omogoča, da ustvarijo posebne denarnice samo za gledanje, v katerih je vsak naslov naslov samo za gledanje. Kot konkreten primer bo to olajšalo uporabo Bitcoin Core za sledenje sredstev v denarnici strojne opreme ali na papirnati denarnici v obliki HD semena.
Delno podpisane Bitcoin transakcije
Čeprav so številne transakcije enostavne – en uporabnik plača drugemu – Bitcoin omogoča tudi bolj zapletene vrste transakcij. Sem spadajo na primer transakcije z več podpisi (multisig), pri katerih se mora več uporabnikov odjaviti pri pošiljanju sredstev, pa tudi transakcije CoinJoin za izboljšanje zasebnosti, kjer različni uporabniki svoje neodvisne transakcije združijo v eno veliko transakcijo..
Za boljše olajšanje teh vrst transakcij Bitcoin Core 0.17.0 uvaja BIP 174 Delno podpisan okvir Bitcoin Transaction (PSBT), ki ga je zasnoval Andrew Chow. Ta okvir uporabnikom Bitcoin Core omogoča, da delno podpišejo transakcijo, dodaja pa tudi metapodatke tako delno podpisani transakciji. Te metapodatke lahko nekdo drug uporabi za dokončanje transakcije.
PSBT bo še posebej koristen, če bodo standard sprejele druge denarnice. Kot potencialni primer uporabe bi lahko na primer dovolil uporabniku, da zaščiti svoja sredstva tako, da jih zaklene v račun multisig, v katerem bi za transakcijo potreben podpis, ustvarjen iz denarnice Bitcoin Core, in podpis iz denarnice strojne opreme. Ali pa lahko uporabnikom Bitcoin Core omogoči, da sodelujejo v shemah CoinJoin z (drugimi) uporabniki denarnice, ki ohranjajo zasebnost.
Za zdaj je funkcija delno podpisane transakcije namenjena samo uporabnikom, ki upravljajo Bitcoin Core iz ukazne vrstice ali prek povezanih aplikacij.
Obrezovanje iz uporabniškega vmesnika
Bitcoin blockchain trenutno shranjuje vse (v verigi) Bitcoin transakcije, ki so se kdajkoli zgodile, veliko več kot 180 gigabajtov in raste vsak dan. Novi uporabniki Bitcoin Core morajo prenesti in preveriti vse te podatke.
Zaradi trika, imenovanega “obrezovanje blokov”, tem uporabnikom ni treba nujno shraniti vseh teh podatkov. V načinu obrezovanja vozlišča samodejno pozabijo na starejše podatke o transakcijah in hranijo le tisto, kar je potrebno za varno delovanje. Do zdaj je bil način obrezovanja omogočen samo prek ukazne vrstice.
Bitcoin Core 0.17.0 prvič ponuja priročen preklop GUI, ki omogoča obrezovanje iz denarnice, zaradi česar je bolj dostopen za priložnostne, netehnične Bitcoin uporabnike, ki želijo za optimalno varnost zagnati celotno vozlišče.
Za več podrobnosti o novostih v tej najnovejši različici Bitcoin Core glejte Opombe ob izdaji Bitcoin Core 0.17.0 ali pazi Laboratoriji verižne kode inženir in sodelavec Bitcoin Core John Newberry’s predstavitev na londonskem srečanju Bitcoin Devs.