Danes zaznamujemo uradno izdajo Bitcoin jedro 0.12.0, dvanajsta generacija referenčnega odjemalca Bitcoina, kot jo je pred sedmimi leti prvič lansiral Satoshi Nakamoto. Najnovejša različica Bitcoin Core, ki jo je v sedmih mesecih razvilo skoraj 100 sodelavcev, vključuje več kot 20 izboljšav, zlasti glede zmogljivosti, varnosti in uporabnosti.
To so šeste najpomembnejše spremembe.
Omejevanje pomnilniškega področja
Pomnilniška področja so zbirke nepotrjenih transakcij, ki jih posamično shranijo vsa polna vozlišča. Pomnilniški skladi se napolnijo med bloki, ko se nove transakcije prenašajo po Bitcoin omrežju in se izpraznijo, ko so te transakcije vključene v bloke. Če pa vrsta nadaljnjih blokov ostane dlje časa polna – bodisi zaradi zakonitih transakcij bodisi zaradi neželenih napadov – se pomnilniški bazeni morda ne bodo popolnoma izpraznili in se lahko kopičijo zaostanki. Brez največje omejitve se lahko zaostanek celo poveča do te mere, da vozliščem zmanjka pomnilnika in se zruši. (To je “nesrečo“Scenarija, ki se ga je nekdanji vodilni razvijalec Bitcoin XT bal Mike Hearn.)
Omejitev pomnilniškega področja, kot že ime pove, uveljavlja strogo omejitev največje velikosti pomnilniških področij, da prepreči ta scenarij. Če je dosežen maksimum, vozlišča zavrnejo ali očistijo svoje pomnilniške baze transakcij, ki ponujajo najnižji znesek provizij na bajt.
Polni operaterji vozlišč lahko konfigurirajo svoje omejitve, vendar je privzeta največja velikost v Bitcoin Core 0,12.0 nastavljena na 300 megabajtov.
Obrezovanje blokchainov za uporabnike denarnic
Eno od bremen izvajanja celotnega vozlišča je zahteva po shranjevanju celotne verige blokov. To sešteva do 55 gigabajtov v času pisanja tega dokumenta in lahko zraste še 50 gigabajtov na leto pod trenutno omejeno velikostjo 1 megabajta.
Da bi zmanjšali to zahtevo, Bitcoin Core 0.12.0 omogoča uporabnikom, da obrezujejo verigo blokov, kar pomeni, da se lahko starejših podatkov znebijo, ko jih preveri njihovo vozlišče. Količina podatkov, ki jo je treba hraniti, je nastavljiva, čeprav bo Bitcoin Core 0.12.0 še vedno zahteval najmanj 2 gigabajta prostora na disku.
Obrezovanje verige blokov pomeni, da ta vozlišča ne bodo mogla več deliti vseh podatkov o verigi, na primer celotna vozlišča, ki se prvič sinhronizirajo z omrežjem..
(Omeniti je treba, da je bilo obrezovanje verige blokov prvič predstavljeno v Bitcoin Core 0.11.0, vendar še ni bilo na voljo uporabnikom, ki Bitcoin Core uporabljajo kot denarnico.)
Naloži omejitev prometa
Celotna vozlišča med seboj neprekinjeno prenašajo in posredujejo transakcije in bloke prek Bitcoin-ovega omrežja peer-to-peer. Običajno je treba prenesti skromno količino podatkov, toda skupna uporaba istih podatkov z več enakovrednimi napravami hkrati lahko pomeni znatne stroške nalaganja.
Bitcoin Core 0.12.0 uvaja nastavljivo omejitev podatkov za prenos prometa. Če je ta zgornja meja dosegljiva, bo vozlišče zaseglo bloke za nalaganje, starejše od enega tedna, kar običajno zahtevajo vozlišča, ki se najprej sinhronizirajo z omrežjem. Poleg tega bodo morebitni lahki odjemalci prekinjeni in ne bodo več prejemali nobenih blokovnih podatkov.
Omogočite nadomestilo za nadomestilo
Ko se število transakcij v Bitcoin omrežju povečuje, se morda vse transakcije ne ujemajo v bloke. Kot taki bodo rudarji verjetno izbrali transakcije, ki jih pošljejo uporabniki, ki vključujejo večino provizij. To pomeni, da nekatere transakcije – od uporabnikov, ki so plačali prenizko provizijo – sploh ne morejo potrditi. In ker veliko polnih vozlišč in rudarjev trenutno zavrača nasprotujoče si transakcije (poslane z enakih vhodov kot prejšnja transakcija), se lahko transakcije z nizko provizijo “zataknejo” v omrežju.
Da bi to rešili, Bitcoin Core 0.12.0 uvaja možnost nadomestila za nadomestilo. Če je transakcija poslana z uporabo možnosti nadomestitve s provizijo, lahko uporabniki lastno transakcijo nadomestijo z novejšo transakcijo z vključitvijo višje provizije. (To tudi pomeni, da lahko rudarji povečajo svoj dohodek, saj lahko izbirajo transakcije, ki vključujejo višje provizije.)
Del »opt-in« v opciji za nadomestilo za nadomestilo pomeni, da te vrste transakcij ne bodo privzete in bodo označene kot transakcije, ki jih nadomešča plačilo v omrežju Bitcoin. Kdor se zanaša na transakcije z ničelno potrditvijo, bi moral želeti spremljati te transakcije, ki jih nadomešča plačilo, saj jih je mogoče zelo enostavno razveljaviti, dokler niso potrjene. (Seveda ni bilo transakcij z ničelno potrditvijo nikoli varno.)
Ali bo prijava za nadomestilo dejansko koristna, je odvisno od rudarjev Bitcoinov; na koncu se odločijo, katere transakcije vključiti v bloke in pod katerimi politikami.
Tor po privzetku
Čeprav se za Bitcoin pogosto trdi, da zagotavlja anonimnost uporabnikom, to ni povsem res. Uporabnike bitcoinov je mogoče anonimizirati, na primer prek omrežja peer-to-peer. Če se ugotovi, iz katerega IP-naslova je izvirala transakcija, lahko te podatke uporabimo za identifikacijo uporabnikov Bitcoina.
Za zaščito zasebnosti uporabnikov se Bitcoin Core 0.12.0 samodejno poveže z Bitcoin omrežjem z orodjem za anonimizacijo Tor (The Onion Router) – če je Tor nameščen v istem računalniku. Tor šifrira podatke in jih usmerja skozi več vozlišč po vsem svetu, preden jih odda. Zaradi tega je težko – morda nemogoče – izslediti, od kod izvira Bitcoin transakcija.
(Opozoriti je treba, da uporaba Tor sama po sebi morda ne bo zadostovala za zaščito identitete uporabnika Bitcoin. Za več informacij glejte Vodnik za začetnike Bitcoin Magazine o zasebnosti Bitcoin.)
Hitrejše preverjanje podpisa
Podpisi so kriptografski trik, pri katerem se zasebni ključi “kombinirajo” s katerimi koli drugimi podatki za izračun edinstvenega niza števil. Z ustreznimi javnimi ključi lahko preverimo, ali so bili podpisi ustvarjeni z zasebnimi ključi. V primeru Bitcoina se podpisi učinkovito uporabljajo za dokazovanje lastništva bitcoinov in kot take za potrjevanje transakcij.
Vendar obstaja več načinov, kako izvesti ta kriptografski trik, ki bi lahko privedel do različnih podpisov – vsi veljajo po svoje. In če različna vozlišča Bitcoin uporabljajo različne metode za preverjanje veljavnosti, lahko nekatera vozlišča določene transakcije štejejo za veljavne, druga vozlišča pa ne, kar bi lahko razdelilo Bitcoin omrežje.
Nadaljevanje a mehke vilice da bi lani rešil to težavo, Bitcoin Core 0.12.0 zdaj preusmeri vso validacijo iz kriptografske knjižnice “OpenSSL” na “libsecp256k1”, ki so jo razvili dr. Pieter Wuille, Gregory Maxwell in drugi razvijalci Bitcoin Core.
Kot dodatna prednost ta nova shema za preverjanje veljavnosti podpisa zahteva manj procesorske moči, kar znižuje stroške izvajanja celotnega vozlišča in znatno skrajša čas preverjanja veljavnosti bloka.
Za celoten seznam izboljšav glejte opombe k izdaji Bitcoin Core 0.12.0 GitHub.
Zahvaljujoč vodilnemu razvijalcu Bitcoin Core Wladimirju van der Laanu in Ciphrex Izvršni direktor in razvijalec Bitcoin Core Eric Lombrozo za lektoriranje in dodane povratne informacije.