I dag markerer den officielle frigivelse af Bitcoin Core 0.17.0, den 17. generation af Bitcoins originale softwareklient, der blev lanceret af Satoshi Nakamoto for næsten 10 år siden og stadig den dominerende Bitcoin-implementering på netværket i dag. Overvåget af Bitcoin Core ledende vedligeholder Wladimir van der Laan, blev denne seneste store frigivelse udviklet af ca. 135 bidragydere over et tidsrum på ca. syv måneder.

Resultatet af godt over 700 flettede pullanmodninger, Bitcoin Core 0.17.0 inkluderer en række ydeevne forbedringer og fejlrettelser samt andre ændringer.

Her er en oversigt over nogle af disse ændringer.

Forbedret møntvalg

Mønter i en tegnebog opbevares effektivt som separate klumper (“transaktionsoutputs”). Der er typisk et stykke for hver modtaget betaling; derfor repræsenterer de fleste klumper forskellige mængder. Når en betaling foretages fra en tegnebog, tilføjes forskellige klumper sammen for at udgøre et beløb, der er stort nok til at foretage betalingen plus gebyret. De forskellige bidder tilføjer ofte ikke det nøjagtige behov, men i så fald tilføjes en “skift adresse” til transaktionen, hvilket sender eventuelle resterende midler tilbage til den samme tegnebog.

Indtil nu tilføjede Bitcoin Core-tegnebogen forskellige klumper sammen. Først da ville det beregne og tilføje det gebyr, der kræves for at betale for transaktionen. Men i nogle tilfælde betød tilføjelse af gebyret til transaktionen, at de tilføjede klumper ikke længere udgjorde et stort nok beløb, i hvilket tilfælde et ekstra stykke måtte medtages.

Bitcoin Core 0.17.0 introducerer “Branch and Bound” -algoritmen designet af BitGo ingeniør Mark Erhardt. Dette giver to konkrete forbedringer. For det første beregnes gebyret for hvert stykke, før det vælges til at være en del af en transaktion for at undgå, at nye stykker skal tilføjes senere. For det andet forsøger algoritmen at matche forskellige stykker, så de tilføjer det nøjagtige beløb, der er nødvendigt, og undgår behovet for “skift adresser” (hvor den resterende “ændring” sendes) hvor det er muligt. (Store tegnebøger med mange stykker, som dem, der drives af børser eller andre enheder med høj trafik, har mindre sandsynlighed for at skulle skifte adresse end andre tegnebøger.)

Derudover inkluderer møntudvælgelsesalgoritmen i Bitcoin Core 0.17.0 en valgfri forbedring af privatlivets fred.

Selvom det er imod bedste praksis, er det muligt at modtage flere betalinger til den samme Bitcoin-adresse. (Dette sker f.eks. Meget med donationsadresser.) At genbruge adresser er dårligt for privatlivet i sig selv, da det er indlysende, at alle mønter på den adresse og alle betalinger foretaget fra denne adresse er fra den samme bruger. Men det er endnu værre, når de forskellige klumper, der er bundet til den samme adresse, bruges i forskellige transaktioner, der forbinder dem med klumper, der ikke oprindeligt var knyttet til den adresse.

For at løse dette sidste problem giver Bitcoin Core 0.17.0 brugerne mulighed for at prioritere at tilføje klumper bundet til den samme adresse sammen i en transaktion og at lade andre klumper være ude af transaktionen, hvor det er muligt.

Opret og brug nemt nye tegnebøger

Siden Bitcoin Core 0.15.0 har det været muligt at oprette flere tegnebøger, der fungerer uafhængigt af hinanden. Disse tegnebøger har alle deres egne separate Bitcoin-adresser, private nøgler og derfor midler. Brugere kan bruge de forskellige tegnebøger til forskellige formål; for eksempel kan en tegnebog bruges til personlige daglige indkøb, en anden til forretningsrelaterede transaktioner og en tredje kun til handel. Dette kan gøre regnskab lettere og mere praktisk, og brugere kan lettere drage fordel af øget privatliv, da de forskellige tegnebøger ikke kan knyttes til hinanden ved blockchain-analyse.

Indtil nu kunne nye tegnebøger kun oprettes, når noden startes, og den var ikke tilgængelig for Bitcoin Core-tegnebog (GUI) -brugere. Begge disse begrænsninger er nu løst. Bitcoin Core 0.17.0 giver brugerne mulighed for at oprette nye tegnebøger, når de vil, og det tilbyder denne funktion i GUI.

Som en ekstra fordel introducerer Bitcoin Core 0.17.0 en funktion kaldet “Scantxoutset.” Dette giver brugerne mulighed for hurtigt at kontrollere, om deres nye tegnebog allerede indeholder mønter (for eksempel fordi de private nøgler importeres fra en anden tegnebog) ved at kontrollere det ubrugte transaktionsoutput (UTXO) -sæt i stedet for at scanne hele transaktionshistorikken.

Ikke-HD til HD Wallet-opgradering

Mens Bitcoin Core-versioner, der var ældre end 0.13.0, stadig krævede, at brugerne sikkerhedskopierede alle deres private nøgler, har alle Bitcoin Core-versioner siden i stedet tilbudt Hierarchical Deterministic (HD) tegnebøger. Brugere af HD-tegnebog behøver kun at gemme en frøsætning (en ordliste) som sikkerhedskopi.

Dog Bitcoin Core-brugere, der opgraderet deres system til Bitcoin Core 0.13.0 og nyere kunne ikke oprette nye HD-tegnebøger. En inkompatibilitet mellem ikke-HD-tegnebøger og HD-tegnebøger betød, at disse brugere stadig sidder fast og sikkerhedskopierer alle deres private nøgler.

Bitcoin Core 0.17.0 lader nu også disse brugere opgradere til HD-format. Derudover kan brugere af Bitcoin Core-tegnebogen, der allerede havde HD-tegnebøger, nu vælge at generere eller importere et nyt HD-frø.

Se kun – kun tegnebøger

Bitcoin-tegnebøger gemmer typisk private nøgler, som giver brugerne mulighed for at bruge deres mønter. Men Bitcoin Core har også understøttet “Watch Only” -adresser i nogen tid nu. De private nøgler til disse adresser er ikke gemt i tegnebogen, men mønter knyttet til disse adresser er stadig synlige i tegnebogen. Dette giver brugerne mulighed for nemt at acceptere betalinger og holde styr på deres midler, mens de f.eks. Gemmer deres private nøgler offline.

Bitcoin Core 0.17.0 tager dette koncept et skridt videre og giver brugerne mulighed for at oprette specifikke Watch Only-tegnebøger, hvor hver adresse er en Watch Only-adresse. Som et konkret eksempel vil dette gøre det lettere at bruge Bitcoin Core til at holde styr på midler i en hardware-tegnebog eller på en papir tegnebog i form af et HD-frø.

Delvis underskrevne Bitcoin-transaktioner

Mens mange transaktioner er ligetil – en bruger betaler en anden – giver Bitcoin også mulighed for mere komplekse transaktionstyper. Disse inkluderer for eksempel multisignature (multisig) -transaktioner, hvor flere brugere har brug for at logge på at sende midler, samt fortrolighedsfremmende CoinJoin-transaktioner, hvor forskellige brugere fletter deres uafhængige transaktioner til en stor transaktion.

For bedre at lette disse typer transaktioner introducerer Bitcoin Core 0.17.0 BIP 174 Delvis underskrevet Bitcoin Transaction (PSBT) ramme, designet af Andrew Chow. Denne ramme gør det muligt for Bitcoin Core-brugere at underskrive en transaktion delvist, men tilføjer også metadata til en sådan delvist signeret transaktion. Disse metadata kan bruges af en anden til at gennemføre transaktionen.

PSBT vil være særligt nyttigt, hvis standarden er vedtaget af andre tegnebøger. Som en potentiel brugssag kunne det for eksempel lade en bruger beskytte sine midler ved at låse dem på en multisig-konto, hvor en transaktion ville kræve en signatur oprettet fra Bitcoin Core-tegnebogen samt en signatur fra en hardware-tegnebog. Eller det kan lade Bitcoin Core-brugere deltage i CoinJoin-ordninger med (andre) privatlivsbevarende tegnebogbrugere.

Indtil videre er den delvist underskrevne transaktionsfunktion kun til brugere, der driver Bitcoin Core fra kommandolinjen eller gennem tilsluttede applikationer.

Beskæring fra brugergrænsefladen

Lagring af alle (on-chain) Bitcoin-transaktioner, der nogensinde er sket, er Bitcoin-blockchain i øjeblikket godt over 180 gigabyte og vokser hver dag. Nye Bitcoin Core-brugere skal downloade og validere alle disse data.

Takket være et trick kaldet “blockchain beskæring” behøver disse brugere ikke nødvendigvis at gemme alle disse data. I beskæringstilstand glemmer noder automatisk ældre transaktionsdata og beholder kun det, der er nødvendigt for at fungere sikkert. Indtil nu kunne beskæringstilstand kun aktiveres via kommandolinjen.

For første gang tilbyder Bitcoin Core 0.17.0 en praktisk GUI-skift, der muliggør beskæring fra tegnebogen, hvilket gør den mere tilgængelig for afslappede, ikke-tekniske Bitcoin-brugere, der ønsker at køre en fuld knude for optimal sikkerhed.

For flere detaljer om, hvad der er nyt i denne seneste version af Bitcoin Core, se Udgivelsesnoter for Bitcoin Core 0.17.0 eller se Chaincode Labs ingeniør og Bitcoin Core-bidragyder John Newberry’s præsentation på London Bitcoin Devs Meetup.