I dag markeres den offisielle utgivelsen av Bitcoin Core 0.20.0, den 20. store utgivelsen av Bitcoins opprinnelige programvareklient lansert av Satoshi Nakamoto for over 11 år siden.
Overvåket av Bitcoin Core hovedansvarlig Wladimir van der Laan, ble denne siste store utgivelsen utviklet av over 100 bidragsytere i løpet av omtrent seks måneder. Resultatet av mer enn 500 sammenslåtte trekkforespørsler, Bitcoin Core 0.20.0 rydder for det meste opp og herder Bitcoin Core-kodebasen, fremmer integrering av maskinvarebokladen, forbedrer nettverkssikkerheten og inkluderer flere andre forbedringer.
Her er noen av de mer bemerkelsesverdige endringene.
Ytterligere integrering av maskinvarepungebok i GUI
Bitcoin Core har vært kompatibel med hardware lommebøker siden versjon 0.18.0. Imidlertid kan brukerne ennå ikke gjøre transaksjoner med en maskinvarepungebok fra Bitcoin Core’s grafiske brukergrensesnitt (GUI); de må i stedet bruke kommandolinjegrensesnittet (CLI) for å gjøre det.
Bitcoin Core 0.20.0 tar et skritt mot integrering av hardware-lommeboken i GUI. Brukere kan nå opprette en transaksjon uten signatur i Bitcoin Core GUI ved hjelp av PSBT-formatet (delvis signert bitcoin-transaksjon), og kopiere den til utklippstavlen. Når de er kopiert, kan de overføre transaksjonen til maskinvarenes lommebok for å signere den. Imidlertid er denne overføringen ennå ikke automatisert, og kringkasting av transaksjonen krever fortsatt bruk av CLI.
Fremtidige Bitcoin Core-utgivelser vil fortsette å fremme integrering av hardware-lommeboken.
Kart for mer pålitelig nettverkstilkobling
Bitcoin Core kobles til flere jevnaldrende (andre Bitcoin-noder) på Bitcoin-nettverket. Bitcoin Core kartlegger andre noder basert på deres IP-adresser, med den hensikt å etablere forbindelser med jevnaldrende fra forskjellige regioner og Internett-leverandører (ISPer). Hvis en node mottar blokker og transaksjoner fra jevnaldrende over hele verden, reduserer det risikoen for at visse data (som en bestemt transaksjon) blir holdt tilbake.
Bitcoin Core kartlegger for øyeblikket IP-adresser etter Nettverksoperatørgrupper. Imidlertid er flere av disse gruppene faktisk en del av det samme Autonomt system (AS): klynger av nettverksoperatørgrupper som deler viktige internettruter, og derfor potensielt deler de samme rutingflaskehalsene der data potensielt kan filtreres.
Bitcoin Core 0.20.0 inkluderer et nytt konfigurasjonsalternativ kalt Asmap, som kartlegger IP-adresser etter autonome systemnumre (ASN). Dette sikrer at noden kobles til jevnaldrende fra en rekke forskjellige ASer, noe som reduserer potensielle nettverksflaskehalser, og ytterligere begrenser risikoen for at spesifikke data holdes tilbake. (Kartlegging av IP-adresser i nettverksoperatørgrupper forblir imidlertid standardkonfigurasjonen for nå.)
Fjerning av BIP61 Avvis meldinger
Avvis meldinger (BIP61) er varsler om at en node returnerer når en transaksjon den mottok fra en likemann avvises, og hvorfor. (Kanskje fordi transaksjonen er ugyldig, kanskje fordi den anses å ikke omfatte tilstrekkelig avgift, er det kanskje en annen grunn til avvisningen.)
Bitcoin Core-utviklere anser imidlertid ikke avvisningsmeldingene som veldig nyttige. Det viktigste er at jevnaldrende ikke antas å returnere en avvisningsmelding pålitelig. Med andre ord, hvis en node ikke mottar en Avvis melding, betyr det ikke nødvendigvis at transaksjonen ble akseptert. Dette begrenser nytteverdien av meldingene, mens det finnes bedre løsninger for å kontrollere at en transaksjon er gyldig og inkluderer nok gebyrer. I mellomtiden gjorde meldingene peer-to-peer-protokollen mer komplisert og tok opp båndbredden.
BIP61 Avvis meldinger var derfor allerede deaktivert som standard i Bitcoin Core 0.18.0. Bitcoin 0.20.0 har nå fjernet funksjonen fullstendig.
Fjerning av BIP70 Payment Protocol (og OpenSSL)
Betalingsprotokollen (BIP 70) ble designet for flere år siden for å forbedre Bitcoins betalingsopplevelse. En bruker og en selger kunne kommunisere ytterligere detaljer om en betaling, for eksempel en menneskelig lesbar destinasjonsadresse (navnet på selgeren) og en refusjonsadresse i tilfelle noe gikk galt med kjøpet.
Mens Bitcoin Core integrerte Betalingsprotokollen, ble standarden aldri allment vedtatt. I stedet bruker de fleste lommebøker fortsatt den mer grunnleggende URI-ordningen (BIP21): Den klikkbare lenken eller det skannbare QR-kodeformatet som for eksempel kommuniserer betalingsadressen og beløpet.
Kanskje enda viktigere enn mangelen på adopsjon, led BIP70 Payment Protocol en rekke sikkerhets- og personvernproblemer i løpet av årene. Spesielt krevde dens avhengighet av OpenSSL-programvarebiblioteket for kryptografiske funksjoner en rekke kortvarige nødoppgraderinger. Noen Bitcoin-lommebøker har av disse grunnene, avvist implementere BIP70 helt.
Bitcoin Core 0.19.0 fjernet Betalingsprotokollen fra GUI, men brukere kan fortsatt kompilere noden sin med en spesiell konfigurasjon for å gjøre bruk av funksjonen. Bitcoin Core 0.20.0 har nå fjernet Betalingsprotokollen.
Med BIP70 borte (og noen andre programvarejusteringer for å fjerne avhengigheten), har Bitcoin Core også vært i stand til å fjerne OpenSSL helt fra kodekassen.
Dumptxoutset Som et første skritt mot Assumeutxo for rask bootstrapping
En ny ekstern prosedyreanrop (RPC) lar Bitcoin Core 0.20.0 generere et øyeblikksbilde av UTXO-settet, som gjenspeiler tilstanden til Bitcoin-eierskap som registrert i blockchain på et bestemt tidspunkt (blokkhøyde). Dette øyeblikksbildet kan deles.
Fremtidige Bitcoin Core-utgivelser vil dele et slikt øyeblikksbilde når jevnaldrende først blir med i nettverket. Dette gjør at de nye nodene umiddelbart kan delta i nettverket fra tidspunktet da øyeblikksbildet ble laget, mens hele historikken til blockchain er sjekket i bakgrunnen. (I likhet med Assumevalid, en lignende snarvei, kommer Assumeutxo med tillitsvekster før hele blokkjeden blir sjekket, og skal til da brukes med disse avveiningene i tankene.)
For en mer omfattende liste over oppgraderinger, se også Utgivelsesmerknader for Bitcoin Core 0.20.0.
Takk til Sjors Provoost for informasjon og tilbakemelding.