Bitcoin jedro 0.13.0, trinajsta generacija referenčnega odjemalca Bitcoina, ki ga je Satoshi Nakamoto prvič lansiral pred skoraj osmimi leti, je zdaj označena za sprostitev. To je eden zadnjih korakov v postopku izdaje programske opreme in sproži postopek gradnje Gitian.
Bitcoin Core 0.13.0 je v približno petih mesecih razvilo približno 100 sodelavcev. In čeprav je bil velik del razvojnih prizadevanj v tem času osredotočen tudi na ločeno pričo, ki se bo aktivirala šele v prihodnji manjši izdaji programske opreme, Bitcoin Core 0.13.0 vključuje približno ducat opaznih izboljšav v primerjavi z Bitcoin Core 0.12.0.
To so najpomembnejše spremembe.
Otrok plača za starša
Število transakcij v Bitcoin omrežju s časom nenehno narašča. Posledično se polni več blokov in rudarji običajno zaračunavajo višje pristojbine za vključitev transakcij v bloke. Transakcije, ki ne vključujejo zadostnih provizij, običajno trajajo dlje, da jih potrdite, ali morda celo nikoli. To se je izkazalo za nekoliko problematično, zlasti v obdobjih, ko so v omrežju izvajali tako imenovane “stresne teste”, saj so se v celotnem številu transakcij v omrežju pojavile velike zamude in zamude pri transakcijah.
Posamezni uporabniki lahko to težavo rešijo tako, da v svoje transakcije vključijo višjo provizijo, s čimer spodbudijo rudarje, da dajo prednost tem transakcijam. To je mogoče tudi po poslani transakciji z uporabo opt-in Replace-by-Fee (RBF); vendar te možnosti še ne vključuje veliko denarnic. Poleg tega je RBF možnost le za pošiljatelja transakcije. Do zdaj prejemnik ni mogel plačati provizije za dohodno transakcijo, da bi pospešil potrditev.
Ta problem je učinkovito rešen s trikom, imenovanim »Otrok plača staršem« (CPFP). CPFP je politika, ki jo rudarji uporabljajo za izbiro transakcij, ki jih bodo vključili v bloke. Pri CPFP rudarji ne izberejo nujno najbolje plačanih (in veljavnih) transakcij, temveč izberejo najbolj donosne nastavite transakcij. Z drugimi besedami: izbrali bodo transakcijo z nizko provizijo, če naslednja transakcija to se zanaša pri transakciji z nizko provizijo ponuja dovolj visoko provizijo za nadomestilo. Rudar bo vključeval oboje hkrati.
V praksi to pomeni, da lahko prejemnik transakcije z nizko provizijo “priloži” transakcijo z visoko provizijo in porabi iste kovance zase. Rudar, ki ga spodbudi nova transakcija z visokimi provizijami, bo vključeval nabor transakcij. Kot tak sprejemniku ne bo treba čakati tako dolgo na potrditev, medtem ko lahko rudar poveča dohodek.
Kompaktna podpora blokom
Bitcoinov peer-to-peer protokol je trenutno nekoliko neučinkovit. Vozlišča si večino transakcijskih podatkov medsebojno pošiljajo dvakrat: enkrat kot transakcija, kot je bila prvotno poslana po omrežju, in enkrat kot del bloka, ko je transakcija potrjena.
To ima nekaj slabosti. Prvič, pošiljanje podatkov o transakcijah dvakrat zahteva večjo pasovno širino, kot bi v resnici morala, kar poveča stroške delovanja Bitcoin Core. Drugič in, kar je morda še pomembneje, posredovanje novih blokov več vrstnikom hkrati lahko povzroči znatne skoke pasovne širine. To potencialno moti uporabo interneta vsakič, ko najde nov blok, kar je potencialno moteče za uporabnike. In morda še pomembneje, da lahko upočasni tudi širjenje blokov po omrežju. Počasno širjenje blokov pa lahko favorizira večje rudarske bazene in s tem spodbudi bolj centralizirano rudarsko pokrajino.
Kompaktni bloki (BIP 152), ki so ga razvili Bitcoin Core in Blockstream razvijalec Matt Corallo, so namenjeni zmanjšanju prekomernega prenosa podatkov. Ko najdemo nov blok, vozlišča na začetku sporočajo le zelo kompaktne zgoščene podatke transakcijskih podatkov. Ker so vozlišča že prejela celotne podatke o transakcijah, ko so bili prvotno poslani po omrežju, lahko s pomočjo teh zgoščenih podatkov ugotovijo, katere transakcije so vključene v blok, in sami rekonstruirajo blok.
Ta trik pa se ne obnese vedno popolnoma. Če vozlišče še ni prejelo začetne transakcije, preden je prejelo haše, to vozlišče seveda ne more izbrati transakcije. Poleg tega v redkih primerih a narobe transakcija lahko zgoščena v prav hash, varanje vozlišča v prepričanje, da je prejelo pravo transakcijo, dokler ne poskuša rekonstruirati bloka in ugotovi, da se ne sešteva.
V obeh primerih okvare vozlišče navsezadnje preprosto zahteva določene podatke o transakciji. Tudi z nekaj popolnimi transakcijami v njih bodo kompaktni bloki prenašali omrežje veliko hitreje in zahtevajo bistveno manj pasovne širine.
Hierarhična deterministična generacija ključev
Do zdaj je Bitcoin Core ustvaril nov in povsem naključen par javnih in zasebnih ključev za vsak nov naslov Bitcoin. Čeprav je to pomembno iz varnostnih razlogov in zaradi zasebnosti, je lahko za uporabnike tudi nekoliko v breme. Da bi zaščitili vse zasebne ključe pred izgubo, morajo redno varnostno kopirati.
Hierarhično deterministična (HD) generacija ključev (BIP 32), kriptografski trik, ki so ga v letih 2012 in 2013 razvili razvijalci Bitcoin Core Gregory Maxwell in dr. Pieter Wuille ter razvijalec Armory Alan Reiner. Z generiranjem ključev HD Bitcoin Core ustvari popolnoma nov par ključev za vsak nov naslov, vendar vsi ti ključi izvirajo iz enega, 12-besednega semena. Dokler si uporabniki zapomnijo to 12-besedno seme, lahko znova ustvarijo vse zasebne ključe in dostopajo do vseh svojih sredstev.
Treba je opozoriti, da generacija ključev HD ni nova značilnost v svetu Bitcoinov. Številne denarnice so že nekaj let vključevale to možnost. Preprosto nikoli ni obstajal v referenčnem odjemalcu Bitcoina – do zdaj.
Izvedba & Varnost
In seveda Bitcoin Core 0.13.0 uvaja pomemben seznam nadgradnje zmogljivosti in varnosti. Celoten obseg teh izboljšav presega obseg tega članka (glej Bitcoin Core 0.13.0 opombe ob izdaji za vse podrobnosti), ampak na kratko …
Povečan je predpomnilnik baze podatkov, kar vozliščem omogoča hitrejše preverjanje veljavnosti transakcij in še več. Orodje za ukazno vrstico Bitcoin zdaj uporabnikom omogoča interaktivno vnašanje geslov in drugih občutljivih podatkov, s čimer izboljša varnost, tako da teh podatkov ne shrani v navadnem besedilu. Programska oprema je posodobljena tako, da uporabljata novejši različici programskih jezikov C ++ 11 in Python 3, ki omogočata zmogljivejše funkcije. Binarni programi ARM (posebna mikroprocesorska arhitektura) za Linux so zdaj del izdaje, zato uporabnikom tega ni treba sami zbirati. Podatke o tem, katere transakcije v mempolu se zanašajo druga na drugo (kot se uporabljajo s CPFP), je mogoče sporočiti zunanjim programom. Vozlišča v omrežju lahko zahtevajo prejemanje samo transakcij, ki dosegajo določen prag provizije, da se preprečijo napadi DoS. In nenazadnje, veliko je bilo izboljšav protokolov peer-to-peer, oddaljenega klica postopkov in sistema sporočanja (ZMQ).
Zahvaljujoč vodilnemu vzdrževalcu Bitcoin Core Wladimirju van der Laanu in razvijalcu Bitcoin Coreja Ciphrex Za informacije in povratne informacije izvršni direktor Eric Lombrozo.
Opomba: Bitcoin Core 0.13.0 je bil uradno izdan 23. avgusta; prvotni naslov tega članka, ki je bil objavljen 22. avgusta, je bil napačen. Označena je bila za izdajo, kar običajno pomeni, da bo objavljena v nekaj dneh. Bitcoin Core 0.13.0 je zdaj mogoče prenesti na bitcoincore.org in bitcoin.org. (Pred prenosom pa to upoštevajte varnostno opozorilo na bitcoin.org.)