I dag, 2. mai 2019, markeres den offisielle utgivelsen av Bitcoin Core 0.18.0, den 18. generasjonen av Bitcoins opprinnelige programvareklient lansert av Satoshi Nakomoto for snart 10 år siden, og fremdeles den dominerende Bitcoin-implementeringen på nettverket i dag. Overvåket av Bitcoin Core-vedlikeholder Wladimir van der Laan, ble denne siste store utgivelsen utviklet over et spenn på omtrent seks måneder, av over hundre bidragsytere.
Bitcoin Core 0.18.0 inkluderer det typiske spekteret av ytelsesforbedringer og feilrettinger, samt noen nye funksjoner.
Her er en oversikt over noen av de viktigste endringene.
Kompatibilitet med maskinvarepung
En av de mest etterlengtede endringene i Bitcoin Core 0.18.0 vil tillate brukere muligheten til å koble til maskinvarepungboken (Ledger, Trezor, Digital BitBox, KeepKey og Coldcard) gjennom verktøyet Hardware Wallet Interaction (HWI). Dette kombinerer en av de sikreste måtene å lagre dine private nøkler med den sikreste måten å samhandle med blockchain.
Maskinvarelommebøker betraktes som sikre fordi brukerens private nøkler aldri forlater enheten. Tastene blir aldri utsatt for internett eller datamaskinen de er koblet til, noe som gjør lommebøker for maskinvare immun mot ekstern hacking.
Selv om det allerede er mulig å koble en maskinvarelommebok til en Electrum-lommebok som er koblet til din fulle node ved hjelp av Electrum Personal Server, vil HWI være det første innfødte alternativet hardware-to-node som en del av Bitcoin Core-prosjektet. Foreløpig er HWI-skriptene fremdeles bare kommandolinje, og det kreves en manuell prosess for å koble til maskinvareboken.
GUI-støtte for multiwallet-funksjonen
En annen fremgang fra den siste oppdateringen er å gi brukerne muligheten til å parre med flere lommebøker. Dette bygger på noe av arbeidet som er gjort i Bitcoin Core 0.17.0, der brukerne ikke lenger ble begrenset av å bare lage lommebøker når de startet noden, og i stedet kunne opprette og bruke nye lommebøker når de vil. I Bitcoin Core 0.18.0 kan brukere koble disse flere lommebøkene de har opprettet, og koble funksjonen til det grafiske brukergrensesnittet (GUI).
Denne funksjonen vil fortsette å bli forbedret med senere oppdateringer, ettersom det fortsatt er noen kjente problemer med å bruke GUI for å få tilgang til “multiwallet” -kommandoen. Det mest bemerkelsesverdige er at du ikke kan bruke myntekontrollfunksjoner med flere lommebøker lastet, ellers vil du sannsynligvis beholde feil lommebok når du prøver å bytte lommebok.
Myntekontrollfunksjonen lar brukeren kontrollere hvilke mynter i lommeboken som skal brukes når du sender en transaksjon. Denne funksjonen er et viktig aspekt ved å opprettholde brukernes personvern, siden visse ubrukte transaksjonsutganger (UTXO) kan avsløre mer enn andre, enten etter adressen de sendes fra eller beløpet de er verdt. (For eksempel, hvis du har en UTXO som er verdt 1000 BTC og en som er verdt 0,1 BTC, foretrekker du kanskje å bruke 0,1 UTXO for å forhindre at personen du betaler lærer at du eier minst 1000 BTC.)
Forbedringer av Output Script Descriptors Language
Foreslått av Blockstream-ingeniør og Bitcoin Core-bidragsyter Pieter Wuille, utgaveskriptbeskrivelsesspråket debuterte i Bitcoin 0.17.0. Hovedbruken av dette språket er å la brukerne navngi forskjellige typer offentlige og private nøkler tilknyttet lommeboken, og gjøre det lettere å flytte disse nøklene fra en lommebok til en annen. I henhold til hans opprinnelige forslagsdokument er Wuilles endelige mål å en dag “fjerne behovet for å importere skript og nøkler helt, og i stedet gjøre lommeboken bare til å være en liste over disse beskrivelsene og deres tilknyttede metadata.”
Da Wuille og andre utviklere fortsetter å jobbe for å utvide denne listen over deskriptorer, foredler den siste oppdateringen noe av det eksisterende språket ved å gi nye kommandoer for å la brukerne begynne å importere menneskelig lesbare beskrivere for hvert skript som Bitcoin Core kan signere for..
Bitcoin Mining fremmer adopsjon av segregerte vitner
Getblocktemplate (GBT) var det første forsøket på en desentralisert, open source, Bitcoin mining pool-protokoll og ble utviklet av Bitcoin-samfunnet i 2012. Noen av de bassengspesifikke gruveprotokollene på den tiden ga ganske enkelt ut blokkoverskrifter for en gruvearbeider å løse, uten kunnskap om hva som faktisk var i blokken, og ga i hovedsak kontroll blindt til bassengoperatøren. I likhet med den mye nyere BetterHash-protokollen, desentraliserte GBT denne prosessen ved å returnere kraften tilbake til gruvearbeideren (“hasher”), ved å flytte blokkeringen (transaksjonsvalg) til ham.
Hvis du er en gruvearbeider som ønsker å bli med i et støttet basseng, for å begynne å bruke protokollen, kontakter gruvearbeideren bassengtjeneren og ber om en innledende mal, som inkluderer reglene som er angitt for deltakelse i bassenget. Disse reglene er tilpasset av gruvebassenget og kan variere fra coinbase og nonce-parametere til min / max ganger hashing. Men i den siste oppdateringen mislykkes samtaler for å motta denne malen som ikke aktiverer SegWit, og gruvearbeideren vil motta en feilmelding. ((Imidlertid er en gruvearbeider som ringer getblocktemplate uten SegWit spesifisert i alle fall sannsynligvis en brukerfeil, siden dette vil resultere i lavere belønninger for gruvearbeideren.)
SegWit, implementert i 2017, regnes som den største protokolloppdateringen til Bitcoin-programvaren noensinne. Den største endringen som følge av SegWit var å fikse smidbarhetsfeilen og erstatte blokkstørrelsesgrensen med en blokk “vekt” -grense, som tillot opptil 4 megabyte transaksjonsdata, og ga et betydelig løft i nettverkets transaksjonskapasitet.