I dag markeres den offisielle utgivelsen av Bitcoin Core 0.12.0, den tolvte generasjonen av Bitcoins referanseklient, først lansert av Satoshi Nakamoto for syv år siden. Den siste versjonen av Bitcoin Core er utviklet av nærmere 100 bidragsytere over syv måneder, og inneholder mer enn 20 forbedringer, spesielt når det gjelder ytelse, sikkerhet og brukervennlighet..
Dette er de sjette mest bemerkelsesverdige endringene.
Memory Pool Limiting
Minnepooler er samlingene av ubekreftede transaksjoner som lagres individuelt av alle fulle noder. Minnepooler fylles ut mellom blokker etter hvert som nye transaksjoner overføres over Bitcoin-nettverket og tømmes når disse transaksjonene er inkludert i blokker. Men hvis en rekke påfølgende blokker forblir fulle i en lengre periode – enten på grunn av legitime transaksjoner eller spamangrep – kan det hende at minnepooler ikke tømmes helt, og etterslep kan bygge seg opp. Uten maksimumsgrense kan etterslaget til og med vokse til det punktet hvor noder går tom for minne og krasjer. (Dette er “krasjlandingScenario tidligere Bitcoin XT-lederutvikler Mike Hearn fryktet.)
Begrensning av minnepool håndhever, som navnet antyder, en hard grense for maksimal størrelse på minnepooler for å forhindre dette scenariet. Hvis maksimumet er nådd, avviser eller tømmer noder deres minnepasser med transaksjoner som tilbyr det laveste beløpet per byte.
Fullnodeoperatører kan konfigurere sine grenser, men standard maksimumsstørrelse i Bitcoin Core 0.12.0 er satt til 300 megabyte.
Beskjæring av Blockchain for brukere av lommeboken
En av byrdene med å kjøre en full node er kravet om å lagre hele blockchain. Dette legger opp til 55 gigabyte i skrivende stund, og kan vokse ytterligere 50 gigabyte per år under den nåværende 1 megabyte blokkstørrelsesgrensen.
For å redusere dette kravet tillater Bitcoin Core 0.12.0 brukere å beskjære blockchain, noe som betyr at de kan kvitte seg med eldre data når noden deres har bekreftet det. Mengden data å beholde er konfigurerbar, selv om Bitcoin Core 0.12.0 fortsatt vil kreve minst 2 gigabyte diskplass.
Beskjæring av blockchain betyr at disse nodene ikke lenger vil kunne dele all blockchain-data med jevnaldrende, for eksempel full noder som synkroniseres med nettverket for første gang.
(Det bør bemerkes at beskjæring av blockchain først ble introdusert i Bitcoin Core 0.11.0, men var ennå ikke tilgjengelig for brukere som kjører Bitcoin Core som lommebok.)
Last opp trafikkbegrensning
Fulle noder overfører og videresender kontinuerlig transaksjoner og blokkeringer til hverandre over Bitcoins peer-to-peer-nettverk. Dette krever vanligvis en beskjeden mengde data som skal lastes ned, men å dele de samme dataene med flere jevnaldrende samtidig kan legge opp til betydelige opplastingskostnader.
Bitcoin Core 0.12.0 introduserer et konfigurerbart datatak for opplastingstrafikk. Hvis denne hetten kommer innen rekkevidde, vil noden gripe opp opplasting av blokker eldre enn en uke, vanligvis bedt om av noder som først synkroniseres med nettverket. I tillegg vil alle lette klienter bli koblet fra og ikke lenger få blokkeringsdata.
Meld deg på Erstatt etter gebyr
Etter hvert som antall transaksjoner i Bitcoin-nettverket øker, kan det hende at ikke alle transaksjoner passer inn i blokker. Som sådan vil gruvearbeidere sannsynligvis velge transaksjonene som sendes av brukere som inkluderte de fleste gebyrene. Dette betyr at noen transaksjoner – fra brukere som betalte for lavt gebyr – aldri kunne bekrefte i det hele tatt. Og siden mange fulle noder og gruvearbeidere for øyeblikket avviser motstridende transaksjoner (sendt fra de samme inngangene som en tidligere transaksjon), kan transaksjoner med lave avgifter sette seg fast i nettverket.
For å løse dette introduserer Bitcoin Core 0.12.0 opt-in erstatt av avgift. Hvis en transaksjon sendes ved hjelp av opt-in erstatt-av-avgift, kan brukere erstatte sin egen transaksjon med en nyere transaksjon ved å inkludere et høyere gebyr. (Dette betyr også at gruvearbeidere kan øke inntekten, ettersom de får velge transaksjoner som inkluderer høyere avgifter.)
Den “opt-in” delen av opt-in erstattet av avgift betyr at disse typer transaksjoner ikke vil være standard, og vil bli markert som erstatning for avgiftstransaksjoner i Bitcoin-nettverket. Alle som er avhengige av null-bekreftelsestransaksjoner, vil ønske å overvåke disse bytte-av-transaksjonene, da disse veldig lett kan tilbakestilles til de er bekreftet. (Selvfølgelig var null-bekreftelse transaksjoner aldri sikre.)
Hvorvidt opt-in-by-by-fee faktisk vil være nyttig, avhenger av Bitcoin-gruvearbeidere; de bestemmer til slutt hvilke transaksjoner som skal inkluderes i blokker, og under hvilke retningslinjer.
Tor som standard
Mens Bitcoin ofte hevdes å gi brukere anonymitet, er dette ikke helt sant. Bitcoin-brukere kan de-anonymiseres, for eksempel gjennom peer-to-peer-nettverket. Hvis det bestemmes fra hvilken IP-adresse en transaksjon stammer, kan denne informasjonen brukes til å identifisere Bitcoin-brukere.
For å beskytte brukernes privatliv kobles Bitcoin Core 0.12.0 automatisk til Bitcoin-nettverket gjennom anonymiseringsverktøyet Tor (The Onion Router) – hvis Tor er installert på samme datamaskin. Tor krypterer data og ruter dem gjennom flere noder over hele verden før de kringkaster dem. Dette gjør det vanskelig – kanskje umulig – å spore hvor en Bitcoin-transaksjon stammer.
(Det bør bemerkes at bruk av Tor i seg selv ikke er tilstrekkelig for å beskytte en Bitcoin-brukeres identitet. Se Bitcoin Magazines nybegynnerveiledning for Bitcoin-personvern for mer informasjon.)
Raskere validering av signatur
Signaturer er det kryptografiske trikset der private nøkler “kombineres” med andre data for å beregne en unik tallstreng. Tilsvarende offentlige nøkler kan brukes til å verifisere at signaturene ble opprettet ved hjelp av de private nøklene. I Bitcoins tilfelle blir signaturer effektivt brukt for å bevise eierskap til bitcoin, og som sådan for å validere transaksjoner.
Men det er flere måter å gjennomføre dette kryptografiske trikset, som kan resultere i forskjellige signaturer – alle gyldige på sin egen måte. Og hvis forskjellige Bitcoin-noder bruker forskjellige metoder for validering, kan noen noder vurdere visse transaksjoner som gyldige mens andre noder ikke gjør det, noe som kan splitte Bitcoin-nettverket.
Oppfølging av en myk gaffel for å løse dette problemet i fjor, bytter Bitcoin Core 0.12.0 nå all validering fra kryptografibiblioteket “OpenSSL” til “libsecp256k1”, utviklet av Dr. Pieter Wuille, Gregory Maxwell og andre Bitcoin Core-utviklere..
Som en ekstra fordel krever denne nye signaturvalideringsordningen mindre CPU-kraft, noe som reduserer kostnadene ved å kjøre en full node og reduserer blokkvalideringstiden betydelig..
For en fullstendig liste over forbedringer, se Bitcoin Core 0.12.0’s release notes on GitHub.
Takk til Bitcoin Core hovedutvikler Wladimir van der Laan, og Ciphrex Administrerende direktør og Bitcoin Core-utvikler Eric Lombrozo for korrekturlesing og tilsatt tilbakemelding.