I dag markerer den officielle frigivelse af Bitcoin Core 0.12.0, den tolvte generation af Bitcoins referenceklient som første gang lanceret af Satoshi Nakamoto for syv år siden. Den seneste version af Bitcoin Core er udviklet af tæt på 100 bidragydere over syv måneder og indeholder mere end 20 forbedringer, især med hensyn til ydeevne, sikkerhed og brugervenlighed.

Dette er de sjette mest bemærkelsesværdige ændringer.

Hukommelsespoolbegrænsning

Hukommelsespuljer er samlingerne af ubekræftede transaktioner, der lagres individuelt af alle fulde noder. Hukommelsespuljer udfyldes mellem blokke, da nye transaktioner transmitteres over Bitcoin-netværket og udtømmes, når disse transaktioner er inkluderet i blokke. Men hvis en række efterfølgende blokke forbliver fulde i en længere periode – enten på grund af legitime transaktioner eller spamangreb – tømmes hukommelsespulver muligvis ikke helt, og efterslæb kan opbygges. Uden maksimal grænse kan efterslæbet endda vokse til det punkt, hvor noder løber tør for hukommelse og går ned. (Dette er “crash landing”Scenario tidligere Bitcoin XT-lederudvikler Mike Hearn frygtede.)

Hukommelsespuljebegrænsning, som navnet antyder, håndhæver en hård grænse for den maksimale størrelse af hukommelsespuljer for at forhindre dette scenario. Hvis maksimumet er nået, afviser eller rydder noder deres hukommelsesgrupper af transaktioner, der tilbyder det laveste gebyr pr. Byte.

Fuld node-operatører kan konfigurere deres grænser, men den maksimale standardstørrelse i Bitcoin Core 0.12.0 er indstillet til 300 megabyte.

Beskæring af Blockchain til brugere af tegnebogen

En af byrderne ved at køre en fuld node er kravet om at gemme den komplette blockchain. Dette tilføjer op til 55 gigabyte i skrivende stund og kan vokse yderligere 50 gigabyte om året under den nuværende 1 megabyte blokstørrelsesgrænse.

For at mindske dette krav tillader Bitcoin Core 0.12.0 brugere at beskære blockchain, hvilket betyder, at de kan slippe af med ældre data, når deres node har bekræftet det. Mængden af ​​data, der skal opbevares, kan konfigureres, selvom Bitcoin Core 0.12.0 stadig kræver mindst 2 gigabyte diskplads.

Beskæring af blockchain betyder, at disse noder ikke længere er i stand til at dele alle blockchain-data med jævnaldrende, såsom fuld noder, der synkroniseres med netværket for første gang.

(Det skal bemærkes, at beskæring af blockchain først blev introduceret i Bitcoin Core 0.11.0, men endnu ikke var tilgængelig for brugere, der kører Bitcoin Core som tegnebog.)

Upload trafikbegrænsning

Fuld noder transmitterer og videresender løbende transaktioner og blokke til hinanden via Bitcoins peer-to-peer-netværk. Dette kræver typisk en beskeden mængde data, der skal downloades, men at dele de samme data med flere jævnaldrende på samme tid kan tilføje betydelige uploadomkostninger.

Bitcoin Core 0.12.0 introducerer et konfigurerbart datahætte til uploadtrafik. Hvis denne hætte kommer inden for rækkevidde, vil noden gribe uploade blokke, der er ældre end en uge, typisk anmodet af noder, der først synkroniseres med netværket. Derudover vil alle lette klienter blive afbrudt og ikke længere få vist nogen blokdata.

Opt-in Udskift efter gebyr

Da antallet af transaktioner på Bitcoin-netværket øges, passer ikke alle transaktioner muligvis i blokke. Som sådan vil minearbejdere sandsynligvis vælge de transaktioner, der sendes af brugere, der inkluderede de fleste gebyrer. Dette betyder, at nogle transaktioner – fra brugere, der betalte for lavt gebyr – slet ikke kunne bekræfte. Og da mange fulde noder og minearbejdere i øjeblikket afviser modstridende transaktioner (sendt fra de samme input som en tidligere transaktion), kan transaktioner med lavt gebyr sætte sig fast i netværket.

For at løse dette introducerer Bitcoin Core 0.12.0 opt-in-udskiftning af gebyr. Hvis en transaktion sendes ved hjælp af opt-in-erstatningsgebyr, kan brugere erstatte deres egen transaktion med en nyere transaktion ved at inkludere et højere gebyr. (Dette betyder også, at minearbejdere kan øge deres indkomst, da de kommer til at vælge transaktioner, der inkluderer højere gebyrer.)

Den “opt-in” del af opt-in-udskiftningsgebyr betyder, at disse typer transaktioner ikke er standard, og vil blive markeret som udskiftningstransaktion på Bitcoin-netværket. Enhver, der er afhængig af nul-bekræftende transaktioner, skal overvåge for disse erstatningstransaktioner, da disse meget let kunne tilbageføres, indtil de er bekræftet. (Selvfølgelig var nul-bekræftende transaktioner aldrig sikker.)

Om opt-in-udskiftningsgebyr faktisk vil være nyttigt afhænger af Bitcoin-minearbejdere; de beslutter i sidste ende, hvilke transaktioner der skal medtages i blokke, og under hvilke politikker.

Tor som standard

Mens Bitcoin ofte hævdes at give brugere anonymitet, er dette ikke helt sandt. Bitcoin-brugere kan de-anonymiseres for eksempel gennem peer-to-peer-netværket. Hvis det bestemmes fra hvilken IP-adresse en transaktion stammer, kan disse oplysninger bruges til at identificere Bitcoin-brugere.

For at beskytte brugernes privatliv opretter Bitcoin Core 0.12.0 automatisk forbindelse til Bitcoin-netværket via anonymiseringsværktøjet Tor (The Onion Router) – hvis Tor er installeret på den samme computer. Tor krypterer data og dirigerer dem gennem flere noder over hele verden, før de sender dem. Dette gør det svært – måske umuligt – at spore, hvor en Bitcoin-transaktion stammer.

(Det skal bemærkes, at brug af Tor i sig selv måske ikke er tilstrækkelig til at beskytte en Bitcoin-brugeres identitet. Se Bitcoin Magazines begynderevejledning til Bitcoin-privatliv for mere information.)

Hurtigere signaturvalidering

Signaturer er det kryptografiske trick, hvor private nøgler “kombineres” med andre data for at beregne en unik talstreng. Tilsvarende offentlige nøgler kan bruges til at kontrollere, at underskrifterne blev oprettet ved hjælp af de private nøgler. I Bitcoins tilfælde bruges signaturer effektivt til at bevise ejerskab af bitcoin og som sådan til at validere transaktioner.

Men der er flere måder at udføre dette kryptografiske trick på, hvilket kan resultere i forskellige underskrifter – alle gyldige på deres egen måde. Og hvis forskellige Bitcoin-noder anvender forskellige metoder til validering, kan nogle noder måske betragte visse transaktioner som gyldige, mens andre noder ikke gør det, hvilket kan opdele Bitcoin-netværket.

Opfølgning på en blød gaffel for at løse dette problem sidste år skifter Bitcoin Core 0.12.0 nu al validering fra kryptografibiblioteket “OpenSSL” til “libsecp256k1”, udviklet af Dr. Pieter Wuille, Gregory Maxwell og andre Bitcoin Core-udviklere.

Som en ekstra fordel kræver denne nye signaturvalideringsordning mindre CPU-effekt, hvilket sænker omkostningerne ved at køre en fuld knude og reducerer blokvalideringstiden markant.

For en komplet liste over forbedringer, se Bitcoin Core 0.12.0’s release notes on GitHub.

Tak til Bitcoin Core blyudvikler Wladimir van der Laan, og Ciphrex CEO og Bitcoin Core-udvikler Eric Lombrozo til korrekturlæsning og tilføjet feedback.