Välja antud Bitcoin Core 24.0: siin on PlatoBlockchaini andmete luure, mis on uus. Vertikaalne otsing. Ai.

Bitcoin Core 24.0 välja antud: siin on, mis on uut

Algse Bitcoini tarkvara uus versioon, mille käivitas Satoshi Nakamoto aastal 2009 on välja antud.

Bitcoin Core 24.0 kallal töötas 112 arendajat ligikaudu seitse kuud, et tuua käegakatsutavaid täiustusi Bitcoin Core'i rahakotti, P2P (peer-to-peer) sidet, graafilist kasutajaliidest (GUI) ja palju muud.

Selles artiklis käsitletakse mõningaid peamisi muudatusi.

Rahakoti värskendused

Esialgne miniskripti tugi

Bitcoin Core 24.0 tutvustab Miniscripti tuge, laiendades wsh() väljundi deskriptor. Kuigi see on esialgne ja algeline integratsioon, sillutab samm teed keerukama skripti kasutuselevõtuks Bitcoinis lihtsamal ja turvalisemal viisil.

Minikiri võib pidada raamistikuks (või malliks). Bitcoini skript, Bitcoini emakeel. Bitcoin Script vastutab kõigi Bitcoini jaoks saadaolevate programmeerimisfunktsioonide lubamise eest, sealhulgas näiteks võib-olla kõige lihtsama: määramine, kellel on lubatud antud münti kulutada. Iga Bitcoini tehingu puhul küsib saatja saaja aadressi ja koostab selle teabe põhjal skripti, mis lukustab saadetava bitcoini nii, et ainult saaja saab seda kulutada. Kuigi Bitcoin Scripti abil on üsna lihtne konstrueerida lihtsaid skripte, nagu ülaltoodud, on skripti keerukamaks muutmise tõenäosus inimliku vea tõenäosus. Siin tuleb mängu Miniscript.

Miniscript võimaldab kirjutada Bitcoini skriptide alamhulka a struktureeritud tee. See võimaldab muu hulgas analüüsi, koostamist ja üldist allkirjastamist, võimaldades arendajatel täiustatud skripte turvalisemalt kirjutada. Teisisõnu, Miniscript "sisaldab" mõnda eelseadistatud Bitcoini skriptide funktsionaalsust eeldatava käitumismustri järgi, piirates võimalikke riske, kuna ootamatu käitumine on minimeeritud. Praktikas pakub see arendajatele "tööriistakasti", mille abil saab Bitcoini jaoks täiustatud ja keerulisi skripte nuputada ja luua, selle asemel, et seda kõike Bitcoin Scripti kaudu käsitsi teha.

Alates Bitcoin Core 24.0-st saavad kasutajad nüüd luua Miniscripti skripti sisaldava rahakoti, luua selle rahakoti jaoks aadresse ja rahastada neid bitcoinidega. Bitcoin Core rahakott ei toeta aga nendelt aadressidelt kulutamist veel, mis tähendab, et Bitcoin Core'i Miniscripti toega rahakotid on praegu ainult vaatamiseks.

Muutusteta tehingud

Kasutusele on võetud uus RPC, sendall, mis võimaldab kasutajatel kulutada konkreetsed kulutamata tehinguväljundid (UTXO-d) täielikult. RPC saadab määratud UTXO-des hoitava summa ühele või mitmele adressaadile muudatusi tegemata. (Algselt, sendall kulutab iga rahakotis oleva UTXO.)

Selline käitumine võib mõnes olukorras olla soovitav. Esiteks võib kasutaja loomulikult soovida oma rahakoti tühjendada. Uue RPC kutsumine vaikekonfiguratsioonidega teeb seda lihtsalt. Teiseks võib kasutaja soovida oma privaatsust parandada, loobudes muudatustest.

Muuda aadresse on keerulised, kuna kasutajad kaotavad sageli ülevaate sellest, kust nad pärinevad, ja võivad neid tulevaste tehingute sisenditena segada teiste UTXO-dega. See tekitaks privaatsusprobleeme, kuna ühise sisendi-omandi heuristika, ahelaanalüüsis laialdaselt kasutatav eeldus, mis eeldab, et kõik tehingu sisendid kuuluvad samale kasutajale. Muudatuse väljundi näites loob kasutaja selle lingi, riskides sellega, et mitu oma münti deanonüümseks muuta, kuna ketianalüütik suudab mõned selle kasutaja aadressid rahakotiks koondada.

Muutumatu makse lahendab selle probleemi, luues tehingu, mis kulutab kogu valitud UTXO-d. Kuna muudatusi ei toimu, ei saa kasutaja ülalmainitud viga teha. Veelgi enam, muutumatu makse tekitab ahelaanalüütikule põhjendatud kahtlust, kes mõtleb, kas uus väljund kuulub samale üksusele, kes makse saatis (lihtsalt raha liikumine uuele aadressile) või kuulub nüüd hoopis teisele kasutajale.

Sõrmejälgede võtmise vältimiseks muutke väljundi juhuslikkust

Nagu eespool selgitatud, väljundite muutmine võib olla privaatsuse leke. kuigi sendall leevendab üldse muutmise aadressi kasutamist, tegelikkuses juhtub vähe kordi, mil kasutaja omab sooritatava makse suurusega täpselt sama suurust UTXO-d. Selle tagamine, et vaatleja ei suuda märgata, milline väljunditest on muutmisaadress, aitab kasutajal saada veidi privaatsust, sest ei ole triviaalne siduda vastloodud aadress (muuta väljundit) selle tehingu praeguseks kulutatud sisendiga. .

Tavaliselt, kui makse täpse summaga UTXO-d pole, valib enamik rahakotte ja kasutajaid intuitiivselt sellele numbrile kõige lähemal oleva. Selle tulemusena saab plokiahelat jälgiv vaatleja näha, milline väljund on makse (suurem) ja milline muutus (väiksem). See toob kaasa palju eelnimetatud riske.

Et vähendada tõenäosust, et vaatleja saab muudatuste väljundi ja klastri kasutajaaadresse välja tuua, randomiseerib Bitcoin Core nüüd muutuste väljundi väärtused.

Alates versioonist 24.0 valib Bitcoin Core rahakott juhusliku arvu makse suuruse ja kolmekordse makse suuruse vahel. See number teavitab selle UTXO-valikut kulutuste tegemiseks. See tähendab tegelikult, et mõnikord valib algoritm UTXO, mille väärtus on maksele lähemal, ja teinekord UTXO, mille väärtus on lähemal kolmekordsele maksesumma ülemisele piirile. Esimene stsenaarium loob tüüpilise muudatuse stsenaariumi - maksest madalam stsenaarium, teine ​​​​aga vastupidise stsenaariumi – muudatuse väljund, mis on suurem kui makse. Arvestades, et plokiahela vaatlejal pole võimalust öelda, millal iga stsenaarium teatud ajahetkel toimub, peaks kasutajal olema suurem privaatsustagatis.

Uuendused, mis asendatakse tasu eest

RBF pakub Bitcoini kasutajale valikuvõimalust alati, kui nad saadavad võrku tehingut. Tihti ei taha kasutaja kaevandustasude eest üle maksta ja sellisena saab valida “kesktee” makstud tasu ja tehingu plokki kaasamise kiiruse vahel. Kui aga kasutaja valitud tasu väärtus on liiga madal või mempool on ülekoormatud, võib tehingu plokki kaasamine võtta liiga kaua aega (või võib see mempulli üldse kinni jääda). RBF võimaldab kasutajal sellisel juhul oma tehingutasu “põrutada”, võimaldades enamasti kiiremat arveldust.

Kapoti all RBF tegelikult tasu ei tõsta. Taustal toimub see, et tarkvaraklient edastab a uus tehing samade sisendite ja enamiku samade väljunditega. (Mõned väljundväärtused muutuvad; tasu väärtus muutub loomulikult, et kajastada uut numbrit ja tavaliselt arvatakse see erinevus maha summast, mis saadeti muutmisaadressile.)

Ajalooliselt edastasid sõlmed ainult nähtud tehingu esimest versiooni. RBF-i tulekuga võeti kasutusele mehhanism, mis võimaldab kasutajatel märkida, et nad saadavad tehingu, mis võib lõpuks olla tasuline, st asendada kõrgema tasuga versiooniga. See oli sõlmedele hoiatus, andes neile teada, et selle tehingu kõrgema tasuga versioone võidakse saata hiljem ja et need tuleks ka edastada. Tõenäoliselt kipub tehingu kõrgema tasuga versioon olema kaevurite jaoks atraktiivsem ja seetõttu valitakse see esimesena. Kui see juhtub ja see plokki kaasatakse, jäetakse madalama tasuga tehing sõlmede mäludest välja, kuna see üritaks kahekordselt kulutada.

Bitcoin Core 24.0 tutvustab kahte RBF-i funktsioonide värskendust.

Esiteks võimaldab see nüüd kasutajatel konfigureerida oma sõlmed vahetatavate tehingute edastamiseks ilma RBF-i lipu jõustamine. Seda saab teha uue kaudu mempoolfullrbf valik. See seatakse olekusse maha vaikimisi, kuid selle lubamisest huvitatud saavad selle sisse lülitada.

Teiseks on RBF nüüd Bitcoin Core'i rahakotis standardiks seatud. Tehingute puhul on nüüd vaikimisi lubatud RBF ja -walletrbf käivitusvalikud on vaikimisi tõene. Kasutajad saavad RBF-ist loobuda, kohandades konkreetset tehingut selle loomise protsessis või seadistades -walletrbf käivitusvaliku väärtuseks false.

Deskriptor Wallet Migration

Bitcoin Core 23.0 muutis deskriptor-rahakotid standardiks. Deskriptorid hõlbustavad kasutaja elu rahakoti varundamisel ja hiljem selle varukoopia taastamisel standardvormingus.

Enne deskriptorite olemasolu pidid kasutajad teadma oma rahakoti tuletamise teed, mis määrab, kuidas rahakoti põhivõti tuletab aadressid, mida kasutatakse bitcoini vastuvõtmiseks ja saatmiseks. Kuna rahakottidel võivad olla erinevad tuletamisviisid, ei piisanud sellest, et varukoopia sisaldas ainult algfraase. Mõnikord võib kasutajal vedada ja ta üritab taastada varukoopia rahakotiga, mis kasutas sama tuletamisteed, kuid kuna selle juhtumise tõenäosus on väike, on terved veebisaidid pühendatud sellele, et aidata kasutajatel välja mõelda, millist tuletamisviisi kasutada vanade ja uute rahakottide jaoks. tekkinud.

Kirjeldaja lahendab selle probleemi olemisega kirjeldav selle kohta, millist tuletamisteed varundatud rahakott kasutab, parandades oluliselt kasutajakogemust. Idee seisneb selles, et deskriptori rahakoti varukoopia sisaldab kogu vajalikku teavet, et mis tahes tarkvaraklient saaks selle õigesti taastada (eeldusel, et kliendil on deskriptor lubatud).

Nüüd tutvustab Bitcoin Core 24.0 uut tööriista vanade rahakottide üleviimiseks deskriptor-rahakotivormingusse, mis võimaldab kasutajatel seda arenevat standardit ära kasutada, et oma väärtuslikku bitcoine paremini kaitsta. Kuigi see on veel eksperimentaalne, on uus RPC (migrewallet) on kasutusele võetud. See dokument annab üksikasjalikumalt selle funktsionaalsust.

GUI muudatused

Bitcoin Core GUI on tuntud selle poolest, et see ei paku samal tasemel funktsionaalsust, mida suudavad saavutada kaugprotseduuride kõned (RPC) ja käsurea tööriistad. Bitcoin 24.0 astub mõningaid samme selle muutmiseks.

Bitcoin Core'i uusim versioon toob GUI-le uue menüüüksuse, mis võimaldab kasutajatel rahakoti varukoopiast taastada, muutes mittetehniliste inimeste jaoks varukoopiate taastamise lihtsamaks. Varem oli see valik ainult käsureal.

Teine GUI puudus võrreldes RPC liidesega oli seotud Bitcoin Core kliendi seadistustega. Kuulus bitcoin.conf fail on Bitcoin Core'i konfiguratsiooni püha graal, kuid jällegi oli seda kohandatav peamiselt käsurea kaudu. GUI sätteid oli võimalik kohandada, kuid hoiatus tegi selle selgeks bitcoin.conf oli GUI ees ülimuslik juhul, kui nii fail kui ka GUI üritasid sama konfiguratsiooni jaoks andmeid määrata. Seega, kuigi GUI pakkus seadete muutmiseks lihtsat võimalust, oli konfiguratsioonifail endiselt kõige usaldusväärsem viis Bitcoin Core'i kliendi kohandamiseks.

Bitcoin Core 24.0 muudab seda. Uus värskendus ühendab GUI seadete lehe bitcoin.conf faili. Nüüd, kui kasutaja avab GUI-s kliendi sätted, tõmmatakse näidatud sätted konfiguratsioonifailist. Samamoodi kajastuvad nüüd GUI-s tehtud konfiguratsioonimuudatused bitcoin.conf. (Väärib märkimist, et sealne seos on kaudne, kuna GUI-s toimuvad muudatused on tegelikult seatud settings.json, fail, mis on ülimuslik bitcoin.conf.)

Muudatused P2P-suhtluses

Uus loogika päiste allalaadimiseks

Bitcoin Core 24.0 toob värskenduse sellesse, kuidas võrgu eakaaslased jõuavad keti tippu, kas seetõttu, et nad käivituvad esimest korda või on veetnud pikka aega Bitcoini võrguga ühenduseta.

Enne seda väljalaset hakkaks Bitcoiniga liituv uus partner otsima partnereid, kust plokipäiseid alla laadida. Peer ei laadi alguses alla terveid plokke, kuna ta on motiveeritud enne selle ahela plokkide allalaadimist kontrollima, kas ta järgib õiget ahelat. Vastasel juhul on oht vale ahela plokke alla laadida, raiskades sellega ressursse.

Kuigi päiste allalaadimine aitab säästa aega ja ressursse, võib siiski juhtuda ressursside ammendumise rünnak, kui pahatahtlik osaleja saadab partnerile rämpsposti miljonite võltsplokipäistega. Kuna klient peab päised alla laadima ja kettale salvestama, võib piisavalt suur andmemaht kahjustada partneri riistvara.

Selle ohu leevendamiseks tutvustas Bitcoin Core kontseptsiooni kontrollpunktid aastaid tagasi. Kontrollpunktid määravad, millised plokid peab olema ahelas kohal, et see kehtiks. Kuid see lahendus kujutab endast ka probleemi, kuna kontrollpunkte võidakse kuritarvitada, et pikima ahela tõhusalt tagasi pöörata. Bitcoinis pole selline võimalus soovitav, mistõttu tuli välja mõelda teistsugune lahendus. Sisestage see uus värskendus.

Bitcoin Core 24.0 abil laadivad kolleegid nüüd kaks korda alla plokkide päised. Esimesel käivitamisel laaditakse päised alla ja visatakse ära (ei salvestata kettale), kuni leitakse piisav hulk tööd – mis viitab sellele, et ahel, mida partner on järginud, on kehtiv. Sel juhul taaskäivitab partner protsessi, kuid nüüd salvestab partner lisaks allalaadimisele ka ploki päised kettale. Salvestades päised kettale alles siis, kui partner on kindel, et nad on osa ahelast, millel on märkimisväärne töötõend, väldib partner suurte salvestusmahtude ärakasutamist võimaliku rünnaku korral, näiteks ressursside ammendumise korral. See eemaldab ka vajaduse kontrollpunktide järele ja on vaieldamatult elegantsem lahendus, kuna ahela kehtivuse määramine ei sõltu inimese panusest.

Täname Aaron van Wirdumit tagasiside eest.

Lisateabe saamiseks ja muude muudatuste saamiseks vaadake Bitcoin Core 24.0 väljalaske märkmed. Bitcoin Core 24.0 allalaadimiseks navigeerige siin. Bitcoin Core 24.0 üksikasju selgitatakse ka Bitcoin, Explained podcasti helis episood 65.

Ajatempel:

Veel alates Bitcoin ajakiri