Aš nuskaitau visą Bitcoin Blockchain vaizdams. Tai, ką radau, jus šokiruos
Nuskaitau Bitcoin blockchain vaizdų; tai, ką radau, jus šokiruos. Internete daug kalbėta apie savavališkus duomenis ir turinį, kuriuos galima rasti Bitcoin blokų grandinėje. Ši galimybė ne tik sukūrė nišinę meno sceną, bet ir paskatino judėjimą prieš „nepinigines operacijas“ Bitcoin tinkle. Jei išgirstumėte vieną iš jos šalininkų ar priešininkų, suprastumėte, kad blokų grandinė iš esmės yra siena, užpildyta grafičiais.
Na, aš nusprendžiau išbandyti klausimą: ar blokų grandinėje iš tikrųjų yra vaizdų? Ir ką tai iš tikrųjų reiškia bitkoinininkams, tiesiog bandantiems valdyti savo pilną mazgą ir maksimaliai padidinti savo finansinį suverenumą?
Mano metodika buvo paprasta: turėjau nusipirkti naują standųjį diską, kad galėčiau saugoti blokų grandinę, o tada ketinau paleisti klasikinę vaizdų atkūrimo programinę įrangą, skirtą duomenims – tai kažkas, kas naudojama vaizdams iš sugedusių standžiųjų diskų gelbėti, kažkas, sukurta neapdorotiems vaizdo duomenims rasti.
Atvaizdų atkūrimo darbams atlikti pasirinkau „PhotoRec“ – atvirojo kodo vaizdo atkūrimo programą, veikiančią daugiau nei 20 metų. Programinė įranga skirta rasti vaizdo failus neapdorotuose duomenyse. Tai gali būti naudojama norint atkurti vaizdus ir kitus failų formatus iš standžiųjų diskų, kurie sugedo arba buvo sugadinti. Jis iš tikrųjų dažnai naudojamas norint atkurti prarastus wallet.dat failus iš pirmųjų „Bitcoin“ piniginių dienų, iki pradinio žodžio formato paplitimo.
Sinchronizuojamas visas Bitcoin mazgas
Norėdami saugoti visą Bitcoin blokų grandinę, nusprendžiau nusipirkti 4 terabaitų diską už porą šimtų dolerių. Tada įdiegiau naujausią Bitcoin Core versiją ir pradėjau sinchronizuoti grandinę. Procesas, apimantis visų „Bitcoin“ istorijos operacijų atsisiuntimą ir apskaitos vientisumo patikrinimą, užtruko apie 72 valandas arba tris dienas, automatizuotas ir vykdomas fone naudojant „Bitcoin Core“ programinę įrangą.
Aš tai padariau su kitaip galingu žaidimų aparatu; pagrindinė kliūtis laiko atžvilgiu buvo diskų įrenginys, kuris lėtai nuskaito ir įrašo duomenis, kai reikia sinchronizuojant Bitcoin blokų grandinę. Lėta proceso dalis apima nepanaudotų operacijų išvesties rinkinį arba UTXO. Kai vartotojas sinchronizuoja blokų grandinę, kiekviena nepanaudota operacijos vertė (išvestis) arba teigiamas likutis suskirstoma į UTXO rinkinį, o kai šios vertės išleidžiamos, jos pašalinamos iš rinkinio, o pridedamas naujas adresas, į kurį buvo išsiųsti tie satoshi.
Disko įrenginyje šis UTXO indeksavimo procesas, remiantis kai kuriais skaičiavimais, galėjo užtrukti tris savaites, todėl, kad jį pagreitintų, mano klankeris (AI agentas) pasiūlė indeksuoti duomenis RAM, o tada perkelti duomenis atgal į 4 terabaitų disko įrenginį. Nors visas procesas truko tris dienas, veikiant fone, SSD galėjo atlikti visą darbą maždaug per dieną. SSD įrenginiai yra daug greitesni nei diskų įrenginiai; jie yra modernesni, bet taip pat lengvai kainuoja keturis kartus ar daugiau.
Kai blokų grandinė buvo visiškai atsisiųsta ir patvirtinta, mes perkėlėme UTXO indeksą iš RAM atgal į diską ir paleidome Bitcoin programinę įrangą; grandinė buvo visiškai sinchronizuota, o piniginė paruošta naudoti. Dabar atėjo laikas kitam žingsniui: atkurti blokų grandinėje saugomus vaizdus.
Vaizdo atkūrimas „Blockchain“ naudojant „PhotoRec“.
Kai mano diske yra visa Bitcoin blokų grandinė, aš išjungiau Bitcoin Core ir paprašiau savo klankerio (Cursor AI agento) paleisti PhotoRec 7.2 diske. Numatytasis PhotoRec procesas ieško jpg, png, gif, tif, bmp, ico, psd ir neapdorotų formatų. Procesas truko daugiau nei 11 valandų naudojant „blockchain“ duomenis ir galiausiai nerado… (būgno sukimas)… nieko.
Daugiau nei terabaitas „blockchain“ duomenų ir pusė dienos nuskaitymo, o vaizdų neatsirado. „PhotoRec“ wiki puslapyje pateikiamas paprastas programinės įrangos veikimo pavyzdys: „PhotoRec identifikuoja JPEG failą, kai blokas prasideda: 0xff, 0xd8, 0xff, 0xe0, 0xff, 0xd8, 0xff, 0xe1 arba 0xff, 0xffxd8, 0fex. Kitaip tariant, programa peržiūri duomenis, esančius diske, ieškodama baitų, kurie signalizuoja, kad yra vaizdo failas.
Programa gali gauti klaidingus teigiamus rezultatus; ji išsaugojo 8 ICO ir 4 identiškus PNG failus, kurie atidarius nerodo jokių vaizdų, kaip matyti toliau pateiktame paveikslėlyje. Taigi iš tikrųjų nebuvo rasta jokių reikšmingų vaizdų.
Kur dingo JPEG? XOR magiški triukai
Kaip tai įmanoma? Daugelį metų kriptovaliutos žmonės kalbėjo apie NFT ir kaip išgraviruoti vaizdo duomenis Bitcoin blokų grandinėje. Šioje nišoje pajudėjo milijonai dolerių, o šiuo klausimu vyksta visas kultūros karas. Ar tikrai grandinėje negali būti vaizdų?
Pasirodo, rizika, susijusi su savavališkais duomenimis, buvo diskutuojama ir planuojama Bitcoin Core kūrimo ratuose ilgą laiką, jau 2011 m. XOR, paprasta duomenų užmaskavimo technika, naudojama visiems blokų grandinės duomenims iššifruoti, kol jie yra ramybės būsenoje standžiajame diske.
Galbūt girdėjote, kad pagrindinę kompiuterių kalbą sudaro 0 ir 1. Na, trumpai tariant, XOR lygina du skaitmenis arba bitus ir grąžina 1, jei bitai skiriasi, arba 0, jei bitai yra vienodi. Bitcoin atveju XOR lygina kiekvieną blokų grandinės duomenų bitą su atsitiktiniu raktu, sugeneruotu pradinio diegimo metu, todėl ramybės būsenos duomenys negali rasti jokios reikšmės. Tačiau kai veikia Bitcoin programinė įranga, ji turi raktą, leidžiantį iššifruoti tuos duomenis ir naudoti juos savo nuožiūra. XOR taip pat yra labai greitas, todėl neturi reikšmingos įtakos našumui. Štai Bitcoin genezės bloko pavyzdys prieš ir po XOR.
XOR šiuo metu taikomas tiek blokų grandinės duomenims, tiek UTXO rinkiniui. Iš pradžių XOR buvo aptartas 2014 m., kai antivirusinę programinę įrangą pradėjo trikdyti blokų grandinės duomenys, kuriuos ji interpretavo kaip viruso kodą. Tada antivirusinė programinė įranga karantinuotų bloką, sugadindama „blockchain“ duomenis ir sugadindama „Bitcoin“, todėl sinchronizavimas būtų neįmanomas. Iki 2015 m. pabaigos XOR buvo įdiegtas UTXO rinkinio duomenims ramybės būsenoje, o 2024 m. jis buvo įdiegtas visiems blokų grandinės duomenims ramybės būsenoje.
Beje, XOR procesas reiškia, kad jokių savavališkų duomenų negalima identifikuoti ar išgauti iš blokų grandinės, sąmoningai neapeinant XOR – proceso, kuris nėra būtinas norint naudoti Bitcoin pinigine išraiška. Kadangi „Bitcoin Core“ programinė įranga saugo paprastą kiekvieno užšifruoto bloko vietos duomenų bazę, ji gali lengvai gauti jos duomenis, iššifruoti ir tikslingai naudoti.
„Bitcoin“ sinchronizavimas neiššifruotu būdu yra pritaikytas procesas, kuris gali užtrukti tiek pat laiko, kiek sinchronizavimas nuo nulio, nes iš esmės reikia perrašyti visą terabaitą duomenų nauja tvarka, ir nėra daug prasmės tiems, kurie nori tik įprasto „Bitcoin“ mazgo privatumo ir saugumo privalumų. Taigi, kalbant apie didžiąją daugumą Bitcoin blokų grandinės duomenų kopijų, esančių įprastų bitkoinininkų kompiuteriuose visame pasaulyje, nėra jokių savavališkų duomenų ar vaizdų, kuriuos būtų galima atpažinti. Šokiruoja, žinau. Nedvejodami paleiskite PhotoRec testą savo mazge!
