Tänään vietetään Bitcoin Core 0.17.0, Satoshi Nakamoton melkein 10 vuotta sitten käynnistämä Bitcoinin alkuperäisen ohjelmistoasiakkaan 17. sukupolvi, joka on edelleen hallitseva Bitcoin-toteutus verkossa. Valvoo Bitcoin-ydin johtava ylläpitäjä Wladimir van der Laan, tämän viimeisimmän suuren julkaisun kehitti noin 135 avustajaa noin seitsemän kuukauden ajan.
Yli 700 yhdistetyn vetopyynnön tulos, Bitcoin Core 0.17.0, sisältää useita suorituskyvyn parannuksia ja virhekorjauksia sekä muita muutoksia.
Tässä on yleiskatsaus joihinkin näistä muutoksista.
Parannettu kolikoiden valinta
Lompakon kolikot varastoidaan tosiasiallisesti erillisinä paloina (”tapahtumalähdöt”). Jokaiselle vastaanotetulle maksulle on tyypillisesti yksi palo; siksi useimmat palat edustavat eri määriä. Kun maksu suoritetaan lompakosta, eri palat lisätään yhteen muodostamaan summa, joka on riittävän suuri maksun suorittamiseen, ja maksu. Eri palat eivät usein täsmää tarvittavaan määrään, mutta tällöin tapahtumaan lisätään “muutososoite”, jolloin kaikki jäljellä olevat varat palautetaan takaisin samaan lompakkoon..
Tähän asti Bitcoin Core -lompakko lisäsi erilaisia paloja yhteen. Vasta sitten se laskee ja lisää maksun, joka vaaditaan maksamaan tapahtumasta. Joissakin tapauksissa maksun lisääminen tapahtumaan merkitsi sitä, että lisätyt palat eivät enää muodostaneet riittävän suurta määrää, jolloin lisäkappale oli sisällytettävä.
Bitcoin Core 0.17.0 esittelee “Branch and Bound” -algoritmin, jonka on suunnitellut BitGo insinööri Mark Erhardt. Tämä tarjoaa kaksi konkreettista parannusta. Ensinnäkin kustakin palasta lasketaan maksu ennen kuin se valitaan osaksi liiketointa, jotta vältetään uusien palojen lisääminen myöhemmin. Toiseksi algoritmi yrittää sovittaa eri palat siten, että ne summaavat täsmälleen tarvittavan määrän välttäen “osoitteenmuutoksen” tarvetta (jos jäljelle jäänyt “muutos” lähetetään) mahdollisuuksien mukaan. (Suuret lompakot, joissa on paljon palasia, kuten pörssien tai muiden suurten liikennevälineiden käyttämät, eivät todennäköisesti tarvitse muutososoitetta kuin muut lompakot.)
Lisäksi Bitcoin Core 0.17.0: n kolikoiden valitsemisalgoritmi sisältää valinnaisen yksityisyyden parannuksen.
Vaikka se on parhaiden käytäntöjen vastaista, on mahdollista saada useita maksuja samalle Bitcoin-osoitteelle. (Tätä tapahtuu paljon esimerkiksi lahjoitusosoitteiden kanssa.) Osoitteiden uudelleenkäyttö on itsessään haitallista yksityisyydelle, koska on selvää, että kaikki kyseisellä osoitteella olevat kolikot ja kaikki kyseisestä osoitteesta suoritetut maksut ovat samalta käyttäjältä. Mutta se on vielä pahempaa, kun samaan osoitteeseen sidottuja paloja käytetään eri tapahtumissa ja linkitetään ne paloihin, joita ei alun perin liitetty tähän osoitteeseen..
Tämän viimeisen ongelman korjaamiseksi Bitcoin Core 0.17.0 antaa käyttäjille mahdollisuuden priorisoida samaan osoitteeseen sidottujen palojen lisääminen tapahtumaan yhdessä ja jättää muut palat pois tapahtumasta mahdollisuuksien mukaan.
Luo ja käytä uusia lompakoita helposti
Bitcoin Core 0.15.0 -versiosta lähtien on ollut mahdollista luoda useita lompakoita, jotka toimivat toisistaan riippumatta. Kaikilla näillä lompakoilla on omat erilliset Bitcoin-osoitteensa, yksityiset avaimet ja siten varat. Käyttäjät voivat käyttää erilaisia lompakoita eri tarkoituksiin; esimerkiksi yhtä lompakkoa voidaan käyttää henkilökohtaisiin päivittäisiin ostoksiin, toista yritystoimintaan ja kolmatta vain kaupankäyntiin. Tämä voi tehdä kirjanpidosta helpompaa ja helpompaa, ja käyttäjät voivat hyötyä helpommin yksityisyyden parantamisesta, koska eri lompakoita ei voida yhdistää toisiinsa blockchain-analyysillä.
Uusia lompakoita voitiin kuitenkin luoda vasta solmua käynnistettäessä, eikä niitä ollut saatavilla Bitcoin Core -lompakon (GUI) käyttäjille. Molemmat rajoitukset on nyt ratkaistu. Bitcoin Core 0.17.0 antaa käyttäjien luoda uusia lompakoita milloin tahansa, ja se tarjoaa tämän ominaisuuden käyttöliittymässä.
Lisäetuna Bitcoin Core 0.17.0 esittelee ominaisuuden nimeltä Scantxoutset. Tämän avulla käyttäjät voivat nopeasti tarkistaa, onko heidän uudessa lompakossaan jo kolikoita (esimerkiksi koska yksityiset avaimet tuodaan toisesta lompakosta) tarkistamalla käyttämätön tapahtumalähtö (UTXO) sen sijaan, että skannattaisiin koko tapahtumahistoria.
Päivitä HD-HD-HD-lompakko
Vaikka Bitcoin Core -versiot, jotka ovat vanhempia kuin 0.13.0, vaativat edelleen käyttäjiä varmuuskopioimaan kaikki yksityiset avaimet, kaikki Bitcoin Core -versiot ovat sen jälkeen tarjonneet sen sijaan hierarkkisia Deterministic (HD) -lompakoita. HD-lompakon käyttäjien on tallennettava vain yksi siemenlause (sanaluettelo) varmuuskopiona.
Kuitenkin Bitcoin Core -käyttäjät, jotka päivitetty heidän järjestelmäänsä Bitcoin Core 0.13.0 ja uudemmat eivät pystyneet luomaan uusia HD-lompakoita. Muiden kuin HD-lompakoiden ja HD-lompakoiden yhteensopimattomuus tarkoitti, että nämä käyttäjät olivat edelleen jumissa varmuuskopioimalla kaikkia yksityisiä avaimia.
Bitcoin Core 0.17.0 antaa näiden käyttäjien nyt päivittää myös HD-muotoon. Lisäksi Bitcoin Core -lompakon käyttäjät, joilla oli jo HD-lompakko, voivat nyt päättää luoda tai tuoda uuden HD-siemenen.
Katso vain – vain lompakot
Bitcoin-lompakot tallentavat tyypillisesti yksityisiä avaimia, joiden avulla käyttäjät voivat käyttää kolikoitaan. Mutta Bitcoin Core on tukenut myös “Vain katsella” -osoitteita jo jonkin aikaa. Näiden osoitteiden yksityisiä avaimia ei ole tallennettu lompakkoon, mutta näihin osoitteisiin liitetyt kolikot näkyvät silti lompakossa. Tämän avulla käyttäjät voivat helposti hyväksyä maksuja ja seurata varojaan esimerkiksi säilyttäen yksityiset avaimet offline-tilassa.
Bitcoin Core 0.17.0 vie tämän konseptin vielä pidemmälle ja antaa käyttäjille mahdollisuuden luoda erityisiä Vain katsella -lompakoita, joissa jokainen osoite on Vain katsella -osoite. Konkreettisena esimerkkinä tämä helpottaa Bitcoin Core -palvelun käyttöä varojen seuraamiseen laitteiston lompakossa tai paperilompakossa HD-siemenen muodossa..
Osittain allekirjoitetut Bitcoin-tapahtumat
Vaikka monet maksutapahtumat ovat suoraviivaisia - yksi käyttäjä maksaa toiselle – Bitcoin sallii myös monimutkaisemmat maksutapahtumat. Näitä ovat esimerkiksi moniallekirjoitustapahtumat, joissa useiden käyttäjien on kirjauduttava sisään lähettämällä varoja, sekä yksityisyyttä parantavat CoinJoin-tapahtumat, joissa eri käyttäjät yhdistävät itsenäiset tapahtumansa yhdeksi suureksi tapahtumaksi.
Tämäntyyppisten tapahtumien helpottamiseksi Bitcoin Core 0.17.0 esittelee BIP 174 Osittain allekirjoitettu Bitcoin Transaction (PSBT) -kehys, jonka on suunnitellut Andrew Chow. Tämän kehyksen avulla Bitcoin Core -käyttäjät voivat allekirjoittaa tapahtuman osittain, mutta lisää myös metatiedot tällaiseen osittain allekirjoitettuun tapahtumaan. Joku muu voi käyttää näitä metatietoja tapahtuman suorittamiseen.
PSBT on erityisen hyödyllinen, jos muut lompakot hyväksyvät standardin. Yhtenä potentiaalisena käyttötapauksena se voi esimerkiksi antaa käyttäjän suojata varojaan lukitsemalla ne multisig-tilille, jossa tapahtuma edellyttäisi Bitcoin Core -lompakosta luotua allekirjoitusta sekä allekirjoitusta laitteistolompakosta. Tai se voi antaa Bitcoin Core -käyttäjien osallistua CoinJoin-järjestelmiin (muiden) yksityisyyttä suojaavien lompakon käyttäjien kanssa.
Toistaiseksi osittain allekirjoitettu transaktio-ominaisuus on tarkoitettu vain käyttäjille, jotka käyttävät Bitcoin Core -ohjelmaa komentoriviltä tai yhdistettyjen sovellusten kautta.
Leikkaaminen käyttöliittymästä
Kaikkien koskaan tapahtuneiden (ketjuun kuuluvien) Bitcoin-tapahtumien tallentaminen Bitcoin-lohkoketju on tällä hetkellä reilusti yli 180 gigatavua ja kasvaa päivittäin. Uusien Bitcoin Core -käyttäjien on ladattava ja vahvistettava kaikki nämä tiedot.
“Blockchain-karsimiseksi” kutsutun temppun ansiosta näiden käyttäjien ei kuitenkaan tarvitse välttämättä tallentaa kaikkia näitä tietoja. Karsintatilassa solmut unohtavat automaattisesti vanhemmat tapahtumatiedot ja säilyttävät vain turvallisen toiminnan kannalta välttämättömät. Tähän asti karsintatila voitiin ottaa käyttöön vain komentorivillä.
Ensimmäistä kertaa Bitcoin Core 0.17.0 tarjoaa kätevän GUI-kytkimen, joka mahdollistaa karsimisen lompakosta, mikä tekee siitä helpommin saatavilla rentoille, ei-teknisille Bitcoin-käyttäjille, jotka haluavat käyttää täydellistä solmua optimaalisen turvallisuuden takaamiseksi.
Lisätietoja Bitcoin Corein uusimman version uusista ominaisuuksista on artikkelissa Bitcoin Core 0.17.0 -julkaisutiedot tai katsella Ketjukoodilaboratoriot insinööri ja Bitcoin Core -edustaja John Newberry’s esitys Lontoon Bitcoin Devs Meetupissa.