Asjad teada: |
– Trust Walleti seemne genereerimine oli vigane, koguentroopia oli vaid 32 bitti. Oleme loonud faili, mis sisaldab kõiki võimalikke seemneid.
– Õnneks avastas Ledger Donjon haavatavuse väga kiiresti ja vältis tõenäoliselt krüptoökosüsteemi üht suurimat häkki. |
14. novembril 2022 teatas laialdaselt kasutatav tarkvarakott Trust Wallet oma brauseri laienduse väljalaskmisest. See võimaldab juurdepääsu mitme plokiahela digitaalsetele varadele otse brauserist ning on kauaoodatud täiendus olemasolevatele iOS-i ja Androidi rakendustele.
Ledger Donjon avastas hiljuti selles brauserilaiendis kriitilise haavatavuse, mis võimaldab ründajal ilma kasutaja sekkumiseta varastada selle laiendusega loodud rahakoti kogu vara. Teades konto aadressi, on võimalik selle privaatvõti kohe välja arvutada ja seejärel pääseda juurde kogu selle raha. Allpool on üksikasjad haavatavuse kohta, kuidas Ledger Donjon selle avastas, selle mõju aja jooksul, haavatavate varade hinnang ja kuidas Trust Wallet selle parandamiseks reageeris. Aga alustame põhitõdede meenutamisest.
Kuidas rahakotid tekivad
Entroopia genereerimine on keeruline. Teadlastena meeldib meile reprodutseeritavus ja võime seletada nähtusi põhjuse ja tagajärje põhimõtetega. Seega on üldiselt raske juhuslikkust tekitada. Pealegi on raske näidata, et juhuslikud arvud on õiged, ja halb, kuid mitte lõplikult vigane juhuslike arvude generaator võib vaatleja hõlpsalt lollitada. Hea juhuslikkuse tagamiseks vajame bittide ja baitide ühtlast jaotust (ja isegi kõigi tükkide suurust) ning ettearvamatust. Jada vaatlejal peab olema võimatu omada teavet jada järgmise genereeritava osa kohta.
Kuna neid omadusi on uskumatult raske saavutada, üritab krüptoraharuum võimalikult palju vältida juhuslikkusele lootmist – kuid meil on seda siiski vaja ühes etapis: uue rahakoti loomisel.
Tõenäoliselt olete juba tuttav oma mnemoonikaga, 12–24 ingliskeelse sõnaga, mis võimaldavad teil oma rahakotti varundada (kui mitte, saate kontrollida Ledger Akadeemia artikkel sellel teemal).
See märguanne kodeerib 16–32 baiti entroopiat, vastavalt BIP 39 standard - selle entroopia kvaliteet on kriitiline, kuna see on kõigi võtmete seeme, mida teie rahakott kasutab kõigis ahelates, järgides deterministlikku tuletamisprotsessi, mille on määratlenud Piir 32 ja Piir 44 standardid.
See hierarhiline deterministlik skeem on tänapäeval üsna üldlevinud, arvestades, kui lihtsaks on kasutajatel võimalik luua lõpmatuse võtmete varukoopiaid ja selle kaasaskantavust (hoolimata sellest, et BIP 39 rakendamist ei soovitata üksmeelselt rakendada). Signeri rändlus on võimas funktsioon – kui teie lemmikrahakott ebaõnnestub või pettumust valmistab, võite lihtsalt oma märguande (või veelgi parem, Ledgeri seadme) kaasa võtta, teisele lülituda, säilitada oma rahalist vabadust ja piirata selle seisakuid.
Kuid jällegi on selleks vaja veatut entroopiaallikat.
Haavatavuse ülevaade
Trust Wallet tugineb Usaldage Wallet Core'i, platvormideülene raamatukogu, mis rakendab paljude plokiahelate jaoks madala taseme krüptograafilise rahakoti funktsionaalsust. See oli mobiilikeskne, kuid sihib ka Wasmi alates 2022. aasta aprillist (vt #2132).
Kuigi enamik Trust Wallet Core'ist on kaasaskantavad, on mõned moodulid ja funktsioonid sihtmärgile väga spetsiifilised. See kehtib eriti turvalise juhusliku genereerimise osa kohta, mida kasutatakse krüptograafilise materjali (nt privaatvõtmed) loomiseks ja HD-rahakottide märguande loomiseks. Iga rakendus kasutab operatsioonisüsteemi pakutavat pseudojuhuslike arvude generaatorit (PRNG).
- iOS-i jaoks
SecRandomCopyBytes
kasutatakse. - Androidi puhul pakub entroopia eksemplar
java.security.SecureRandom
.
Tavaliselt on see hea tava, kuna sellised primitiivid peaksid olema ohutud.
Wasm taustaprogramm
Wasmi sihtmärgiga on erinevus. See moodul võib töötada mitmes keskkonnas, näiteks mis tahes brauseris, mis toetab Wasmi või Node.js-i. Need platvormid ei paku ühist tugevat PRNG-d ja nendest keskkondadest ei saa juurdepääsu "klassikalistele" süsteemiliidestele. Näiteks Chrome'is Linuxile töötav Wasm-moodul ei saanud otse lugeda /dev/urandom
.
Selle probleemi lahendamiseks on kasutusele võetud spetsiaalne nn turvaline juhusliku generaator #2240. See põhineb emscriptenis tehtud PR-l (vt PR #12240 emscriptenis) kirjutatud just lugemise vältimiseks /dev/urandom
.
Autori sõnul:
See, mida me siin teeme, on lihtne, me mähime std::random_device
koos std::mt19937
ja tagastab juhusliku uint32 väärtuse, mis on inspireeritud emscripten-core/emscripten#12240.
Siin on oluline probleem, mis toob kaasa Wasmi ja mis tahes sellele tugineva toote rahakotituuma kriitilise haavatavuse: kasutatav PRNG on Mersenne Twister ja seda ei tohiks kasutada krüptograafilistel eesmärkidel. Lisaks võtab spetsialiseeritud versioon mt19937 sisendseemnena ühe 32-bitise väärtuse.
Millised on siin tagajärjed? Wasmi kohandatud Random moodul rakendab kahte funktsiooni: random32
mis väljastab 32-bitise juhusliku väärtuse ja random_buffer
mis täidab suvalise suurusega puhvri juhuslike andmetega. Wallet Core'i projektis kasutab neid funktsioone eranditult trezor-crypto, Trezori välja töötatud krüptograafiateek, et tagada turvaline krüptograafia nende riistvaralistes rahakottides.
Nüüd vaatame, kuidas HD-rahakotte genereeritakse:
- Sisenemispunkt on HDWallet. Selle hilisemaks kaitsmiseks on vaja tugevust ja parooli:
https://github.com/trustwallet/wallet-core/blob/3.1.0/src/HDWallet.cpp#L45
See funktsioon töötab siis helistab mnemonic_generate
BIP-39 märguande loomiseks:
https://github.com/trustwallet/wallet-core/blob/3.1.0/trezor-crypto/crypto/bip39.c#L55
mnemonic_generate
kõned random_buffer
, mis väljastab juhusliku puhvri, mis on täidetud Mersenne twisteri PRNG-ga, mille eksemplar on just külvatud:
https://github.com/trustwallet/wallet-core/blob/3.1.0/wasm/src/Random.cpp#L19
Kuna seeme on vaid 32 bitti, võimaldab wallet-core Wasmi versioon luua ainult 2^32 (~ 4 miljardit) võimalikku mnemoonikat. Kõik need mnemoonikud saab ühes arvutis luua paari tunniga.
Sealt saab ründaja:
- Arvutage välja kõik Trust Walleti hallatavate krüptovaluutade seemned, privaatvõtmed ja seejärel aadressid.
- Kõigi kasutatud aadresside eraldamiseks skannige seotud plokiahelaid.
- Arvutage ristmik, et saada kõik Trust Wallet for Wasmi loodud rahakottide aadressid, ja varastada nende raha.
Sellise rünnaku käivitamine võtab palju rohkem kui paar tundi, kuid on mõne GPU-ga teostatav vähem kui päevaga (vt medium.com/@johncantrell97/how-i-checked-over-1-trillion-mnemonics-in-30-hours-to-win-a-bitcoin kuluhinnangu jaoks. Rünnak on siin 256 korda lihtsam).
Rakendus Trust Walleti brauserilaiendile
. Trust Walleti brauserilaiendus on Chromiumipõhiste brauserite laiendus. See on selgelt MetaMaski konkurent ja seda nimetatakse "turvaliseks mitmeahelaliseks krüptorahakotiks ja lüüsiks tuhandetele Web3 detsentraliseeritud rakendustele (dApps)."
Laiendus on suletud lähtekoodiga, kuid selle koodi saab hõlpsasti analüüsida. See tugineb Trust Wallet Core'i haavatavale Wasm-rakendusele.
Rahakoti loomisel loob laiendus juhuslikust 12-bitisest seemnest 128-sõnalise märguande. Mnemoonika genereeritakse järgmiselt:
HDWallet.create
on ülalkirjeldatud HDWalleti konstruktori jaoks automaatselt loodud Wasm-ümbris. See tähendab haavatavaid random_buffer
funktsiooni kasutatakse, nii et mnemoonika saab kasutaja aadressist toore jõu rünnaku abil hankida.
See laiendus käsitleb järgmisi varasid: AVAX, BNB, ETH, MATIC, SOL ja TWT.
- ETH, BNB, MATIC, AVAX ja TWT aadressid on identsed. Need on standardsed Ethereumi aadressid, millel on sama tuletustee (m/44'/60'/0'/0/0).
- Solana kasutab teistsugust tuletusteed: m/44'/501'/0'/0'.
Kõigi Trust Walleti laienduse kasutajate raha kulutamiseks saab ründaja teha järgmist.
- Arvutage ja salvestage kõik võimalikud märgukirjad, seejärel Ethereumi privaatvõti ja Ethereumi aadress, mida see laiend saab genereerida.
- Koguge kokku kõik kasutatud Ethereumi aadressid, mis on loodud pärast Trust Walleti brauserilaienduse esimest väljalaskmist, ja salvestage need kohapeal.
- Tehke aadresside andmebaasist otsing.
- Tühjendage rahakott privaatvõtmega, kui aadressi on kasutatud.
Neid samme saab korrata iga ahela jaoks. Nüüd kirjeldame üksikasjalikult, kuidas Ledger Donjon selle rünnaku Ethereumi ja Binance Smart Chaini vastu rakendas, ilma loomulikult rahakotte tühjendamata.
Trust Walleti ründamine
See haavatavus võimaldab ründajal arvutada brauseri laienduse loodud rahakoti mis tahes aadressi põhjal märguande. Selleks tuleb arvutada võimalike mnemoonika ja saadud aadressi vaheline vastendus.
Kõigi aadresside loomine, mida Trust Walleti laiendus saab luua
Eelnevalt selgitatud PRNG haavatavuse põhjal on võimalik loetleda kõik aadressid (ja seotud privaatvõtmed), mida Trust Walleti laiendus saab luua. Minu idee oli salvestada kõik võimalikud aadressid suurde tabelisse. Seejärel saab Ethereumi plokiahelast eraldatud aadresside loendist kontrollida, kas selles tabelis on mõni aadress. Kui jah, saab selle privaatvõtme välja arvutada.
Entroopiast mnemoonilisele ja seejärel Ethereumi aadressile tuletamisel kasutatakse standardset tuletamismehhanismi Piir-32, Piir-39Ja Piir-44 konto hierarhia.
Esimene raskus oli kõigi nende aadresside loetlemine. PRNG seemnest aadressiks teisendamine nõuab järgmisi samme.
- Entroopia genereerimine: lähtestage Mersenne Twister seemnega ja helistage sellele 16 korda, et koguda esialgne entroopia.
- Entroopia kuni mnemoonikani: üks SHA-256 viimasesse sõna manustatud lõpliku kontrollsumma arvutamiseks.
- Mnemooniline seemneks: mnemoonikud teisendatakse 512-bitiseks seemneks, kasutades PKBDF2-HMAC-SHA512 2048 iteratsiooniga. Iga iteratsiooni kohta on 2 SHA-512 arvutust, seega on kogumaksumus 4096 SHA-512 arvutust.
- Seeme BIP-32 põhivõtmesse: 1 HMAC SHA-512, mis maksab 2 SHA-512 arvutust.
- Ethereumi privaatvõtme põhivõti: peavõti on tuletatud m/44'/60'/0'/0/0. Selleks on vaja 3 tugevdatud alam-privaatvõtme tuletust ja 2 tavalist alamvõtme tuletust.
- Iga tugevdatud alam-privaatvõtme tuletamiseks on vaja ühte HMAC SHA-512 (2 SHA-512) arvutust ja ühte lisamist saidil secp256k1.
- Iga tavaline alam-privaatvõtme tuletamine nõuab alam-privaatvõtme tuletamist ja skalaarkorrutamist koodis secp256k1, et teisendada sisendis antud privaatvõti avalikuks võtmeks.
- Ethereumi privaatvõti aadressi saamiseks: see viimane samm nõuab privaatse võtme teisendamist avalikuks, seega veel üht skalaarkorrutist ja üht Keccak-256 räsi.
Kõigi nende sammude kogumaksumus on siis:
- Initsialiseerimine ja 16 kõnet Mersenne Twisterile
- 1 SHA-256
- 4108 SHA-512
- 5 punkti täiendused
- 2 skalaarkorrutist sekundis secp256k1
Kõige kallimad sammud on SHA-512 arvutused ja skalaarkorrutised. Lühidalt öeldes on PRNG seemne Ethereumi aadressiks muutmise üldine protsess aeglane. Sellise arvutuse käivitamine ühel CPU-l võtaks kuid ja tõenäoliselt mitu nädalat Donjonis saadaolevatel protsessoritel. Niisiis, rakendasime selle OpenCL-i abil (põhineb BIP39 lahendaja GPU) ja kasutas seda kahel NVIDIA GeForce GTX 2 Ti GPU-l.
Selle tööriista väljund on suur fail, mis sisaldab kõiki Ethereumi aadresse, mida laiendus saab luua. Kuna võimalikke seeme on 2^32 ja iga aadress on 20 baiti pikk, võtab see tabel 80 Gb.
Sealt edasi on tabeliotsing aeglane: aadressi sobitamiseks oleks vaja kogu see suur tabel läbi itereerida.
Nende otsingute kiirendamiseks jagasime tabeli 256 väiksemaks tabeliks vastavalt Ethereumi aadressi esimesele baidile. Iga tabel sisaldab PRNG seemnete paare ja nendest tulenevat Ethereumi aadressi.
Lõpuks, et saaksime igas tabelis kiireid otsinguid teha, sorteerisime need Ethereumi aadressi järgi. Nüüd on nendes tabelites võimalik teha binaarseid otsinguid: nende sorteeritud tabelite otsing on väga odav.
Kettaruumi säästmiseks salvestasime PRNG seemne ja ainult esimesed 8 baiti igast Ethereumi aadressist. Viimased 12 baiti pole vajalikud, kuna kokkupõrked on minu kasutusjuhul tühised. Iga kirje võtab siis 12 baiti. Terved lauad võtavad siis 48 Gb.
Siin on iga etapi ajastused.
Neid tabeleid kasutades on võimalik aadressi genereerimiseks kasutatud mnemoonika kohe kätte saada. Haavatavuse mõju hindamiseks küsis Binance minult nende esitatud kolme testaadressi märgukirja. Siin on tulemus:
3 märguande ja privaatvõtmete otsimine võttis paarsada millisekundit. Meie testide kohaselt protsess on tegelikult piisavalt kiire, et töödelda reaalajas kõiki Ethereumi plokiahelas olevaid tehinguid ja purustada kõik haavatavad aadressid niipea, kui neid kasutatakse. Juba testitud aadresside vahemällu salvestamisel kehtib sama ka teiste plokiahelate (nt BSC) kohta. Selle rünnaku stsenaariumi korral saab tehinguid jälgida, kui need jõuavad mempooli, ja arvutada saatja või saaja privaatvõtmed reaalajas.
Kõigi kasutatud Ethereumi aadresside loend
Tahaksime hinnata haavatavate rahakottide tegelikku arvu ja nende tasakaalu. See kõlab lihtsalt, kuna kõik tehingud on avalikud, seega on kõik aadressid plokiahelas saadaval. Kasutatud aadresside loendit pole aga võimalik otse hankida.
Rakendasime meetodi, mis kordab läbi iga Ethereumi plokiahela ploki. Ekstraheerisime kõigi tehingute saatja ja saaja aadressid ning iga kõne aadressiparameetrid ERC-20 lepingutele.
Pange tähele, et selle meetodi abil saab tuvastada ainult kasutatud rahakotte: mõned haavatavad rahakotid, mis ei saanud varasid, pole kunagi plokiahelaga suhelnud.
Skaneerisime Ethereumi plokiahelat plokkide 14820000 ja 16096000 vahel. Plokk 14820000 loodi 21. mail 2022, seega vahetult enne tõmbamistaotlust, mis lisas Trust Wallet Core'i haavatava koodi. 16096000 oli viimane plokk, kui selle postituse kirjutasin.
Tundub, et avalikel sõlmedel on kiiruspiirang, nii et küsisin paralleelselt mitut avalikku sõlme, et koguda mitmekümne tunni jooksul kokku 147,910,120 32,613,317 XNUMX aadressi. Pärast duplikaatide eemaldamist saame loendi XNUMX XNUMX XNUMX unikaalsest aadressist.
Sama meetodit on kasutatud ka Binance Smart Chaini puhul. Avalikud BSC sõlmed on skannitud.
Haavatavate kontode arvu hindamine
Lõpuks on kirjutatud tööriist, mis testib, kas Trust Walleti laiendus on loonud aadressi. See otsib loodud tabelites, hangib PRNG seemne ja arvutab sealt välja märguande, Ethereumi privaatvõtme ja sellega seotud aadressi.
Arvutamine on väga kiire. Kandidaatide aadressid sorteeriti eelnevalt, et minimeerida I/O ja teha pesastatud binaarotsing. 32 miljoni aadressi otsimine võtab lihtsa Pythoni skripti abil mõne minuti.
Siin on näide aadressist a avalik säuts vastates Trust Walleti laienduse teadaandele. Võtsin selle näitena, nagu see aadress on pole kordagi kasutatud, seega pole kasutaja raha ohus.
Tööriista on käitatud ülalkirjeldatud 1,873,720 4 22 andmestikul. Kõigi aadresside testimine ja haavatavate kontode privaatvõtmete arvutamine võttis aega XNUMX min XNUMX sekundit, seega on see väga odav.
Selle haavatavate privaatvõtmete loendi abil on võimalik loetleda kõik vastavad aadressid, nende saldod ja ilmselgelt tühjendada… Meie uurimise ajal oli mingil hetkel ohus umbes 30 miljonit dollarit, kuid me ei jälginud kõiki kette ja märke ületunnitöö ajal. .
Tervendamine
2022, 17. november
Binance'ile on nende abil teatatud haavatavusest veahalastusprogramm 2022, 17. novembril.
Haavatavuse kinnitamiseks saatis Binance meile 3 aadressi ja palus neil edastada märguande:
Kas saaksite proovida oma tööriista käivitada ja anda nende 3 aadressi jaoks mnemoonika?
Wallet 1 – 0xdf6D9547e163D5E7eafBe2FeB24Bfa12A4C913C0
Wallet 2 – 0xE1E0580cb5eA0c0FD034FF2cdfc872ce4493676C
Wallet 3 – 0x02b2Ae981b138F066344774A2AD75225A046c377
Aitäh!
Parimate soovidega.
Kui kõik võimalikud aadressid on eelnevalt välja arvutatud, on märgusõna hankimine aadressist sama lihtne kui 4 miljardi kirjete tabelist otsimine. Kolm mnemoonikat on leitud 0.2 sekundiga:
2022, 21. november
Mõni päev hiljem, 21. novembril, Trustwalleti meeskond avalikult toime pandud Githubis on parandus, mis väldib uute vigaste seemnete teket. Olime üsna mures, et keegi märkab seda ja kasutab haavatavust ära.
2022, November
Trustwalleti meeskond värskendas rakendust, et hoiatada oma kasutajaid, takistada neil luua uusi vigaseid seemneid ja eemaldada vastuvõtvad vood.
Sealt edasi jälgisime olukorda ja riskis olevaid fonde. Vaid mõni päev pärast selle haavatava rahakoti vabastamist oli ohus umbes 30 miljonit dollarit.
2023, märts
Trustwalleti meeskond andis meile suurima pakutava boonuse: 100 XNUMX dollarit
2023, 22. aprill
Pärast mitu kuud ootamist, kuni kasutajad oma raha üle viivad, avalikustas Trustwalleti meeskond haavatavuse ja kirjutas a postmortem. Praeguse seisuga on veel rahakotte allesjäänud rahaga, mida saab varastada (~100 XNUMX dollarit). Trust Wallet lubas varastatud raha tagasi maksta.
Järeldus
See haavatavus illustreerib krüptovea halvimat stsenaariumi – kontod on igaveseks ohustatud.
Hea juhuslikkuse loomine on hirmuäratav ülesanne – Ledgeri seadmed tuginevad meie sertifitseeritud kiipkaardikiipides spetsiaalsele räniloogikale, mis on viimase 40 aasta jooksul olnud turvaliste valdkondade kuldstandard, et tagada kvaliteetne juhuslikkus ja võltsimiskindlus.
Arvestades nende kontode omanikega ühenduse võtmise keerukust ja võimalust kasutada neid ohustatud kontosid kõikvõimalikes tarkvara- ja riistvarataskutes, tegi TrustWallet kasutajate riski vähendamisel päris head tööd.
(väga) (lähi)tulevikus on tõenäoline, et robotid võitlevad selle nimel, et varastada esimesena nendele aadressidele deponeeritud raha, sarnaselt mis juhtus ajurahakottidega minevikus.
Eriline tänu Jean-Baptiste Bédrune'ile maailma päästmise eest. Vaid mõni päev pärast Trust Walleti laienduse avaldamist oli ohus peaaegu 30 miljonit dollarit. Õudusunenäo stsenaarium oleks võinud juhtuda, kui ründaja leidis haavatavuse paari kuu pärast.
Uurimise käigus märkasime ka, et mõned aadressid olid haavatavad, kuigi need loodi tükk aega enne Trust Walleti väljalaskmist. See tähendab tõenäoliselt, et see haavatavus eksisteerib mõnes muus rahakotirakenduses, mis on seotud…
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoAiStream. Web3 andmete luure. Täiustatud teadmised. Juurdepääs siia.
- Tuleviku rahapaja Adryenn Ashley. Juurdepääs siia.
- Ostke ja müüge IPO-eelsete ettevõtete aktsiaid koos PREIPO®-ga. Juurdepääs siia.
- Allikas: https://www.ledger.com/blog/funds-of-every-wallet-created-with-the-trust-wallet-browser-extension-could-have-been-stolen
- :on
- :on
- :mitte
- $ UP
- 1
- 12
- 13
- 14
- 15%
- 2022
- 23
- 24
- 30
- 39
- 40
- 49
- 8
- a
- Võimalik
- üle
- juurdepääs
- Vastavalt
- konto
- Kontod
- Saavutada
- tegelikult
- lisatud
- lisamine
- aadress
- aadressid
- pärast
- jälle
- Materjal: BPA ja flataatide vaba plastik
- võimaldama
- Lubades
- võimaldab
- juba
- Ka
- an
- ja
- android
- teatas
- Teadaanne
- Teine
- mistahes
- app
- rakendused
- Rakendused (DApps)
- apps
- Aprill
- OLEME
- ümber
- artikkel
- AS
- vara
- seotud
- At
- rünnak
- autor
- saadaval
- AVAX
- vältima
- vältida
- vältides
- Varundamine
- Halb
- Saldo
- saldod
- põhineb
- Alused
- BE
- olnud
- enne
- on
- alla
- Parem
- vahel
- Suur
- suurim
- Miljard
- binants
- Binance nutikett
- Piiks
- Blokeerima
- blockchain
- plokiahelad
- Plokid
- BnB
- eest
- heldekäelisus
- Aju
- kaubamärgiga
- Murdma
- brauseri
- brauserid
- toores jõud
- BSC
- puhver
- Bug
- kuid
- by
- helistama
- Kutsub
- CAN
- kandidaat
- ei saa
- juhul
- atesteeritud
- kett
- ketid
- odav
- kontrollima
- laps
- laastud
- Kroom
- selgelt
- kood
- ühine
- konkurent
- keerukus
- Kompromissitud
- arvutamine
- arvutused
- Arvutama
- arvuti
- arvutustehnika
- Kinnitama
- Tagajärjed
- arvestades
- sisaldab
- lepingud
- Konverteerimine
- muutma
- ümber
- tuum
- parandada
- Vastav
- Maksma
- võiks
- Paar
- kursus
- Protsessor
- looma
- loodud
- loob
- kriitiline
- platvormiülene
- krüpto
- Krüpto ökosüsteem
- Krüptoraha
- cryptocurrency
- krüptograafia
- krüptograafia
- tava
- DApps
- andmed
- andmebaas
- päev
- Päeva
- Detsentraliseeritud
- Detsentraliseeritud rakendused
- pühendunud
- määratletud
- näitama
- hoiule
- Tuletatud
- kirjeldatud
- Vaatamata
- detail
- üksikasjalik
- detailid
- tuvastatud
- arenenud
- seade
- seadmed
- DID
- erinevus
- erinev
- raske
- Raskus
- digitaalne
- Digitaalsed varad
- otse
- heidutanud
- avastasin
- jaotus
- do
- seisakuaeg
- tosin
- äravool
- duplikaadid
- ajal
- iga
- lihtsam
- kergesti
- lihtne
- ökosüsteemi
- varjatud
- Inglise
- piisavalt
- tagama
- kanne
- keskkondades
- ERC-20
- hinnata
- ETH
- ethereum
- Ethereumi plokiahel
- Isegi
- Iga
- näide
- ainult
- olemasolevate
- olemas
- kallis
- Selgitama
- selgitas
- Ekspluateeri
- laiendamine
- väljavõte
- ei
- tuttav
- KIIRE
- Lemmik
- tunnusjoon
- vähe
- võitlema
- fail
- täidetud
- lõplik
- finants-
- rahaline vabadus
- lõpp
- esimene
- Määrama
- ebakorrektne
- Voolud
- Järel
- eest
- Sundida
- igavesti
- Õnneks
- avastatud
- Vabadus
- Alates
- funktsioon
- funktsionaalsus
- funktsioonid
- raha
- tulevik
- värav
- koguma
- üldiselt
- tekitama
- loodud
- teeniva
- põlvkond
- generaator
- saama
- GitHub
- Kuldne
- Kullastandard
- hea
- GPU
- antud
- garantii
- näksima
- olnud
- Varred
- juhtus
- Raske
- riistvara
- Riistvara rahakotid
- hash
- Olema
- sellest tulenevalt
- siin
- hierarhia
- Suur
- kõrgeim
- Lahtiolekuajad
- Kuidas
- aga
- HTTPS
- sada
- i
- idee
- identiques
- if
- illustreerib
- kohe
- mõju
- täitmine
- rakendatud
- tööriistad
- oluline
- võimatu
- in
- uskumatult
- tööstusharudes
- Lõpmatus
- info
- esialgne
- sisend
- inspireeritud
- Näiteks
- suhtlemist
- liidesed
- ristmik
- sisse
- Uuringud
- iOS
- IT
- iteratsioon
- kordused
- ITS
- töö
- lihtsalt
- hoidma
- Võti
- võtmed
- Teadma
- Teades
- viimane
- pärast
- hiljemalt
- Leads
- pearaamat
- lahkus
- vähem
- võimendab
- Raamatukogu
- nagu
- Tõenäoliselt
- LIMIT
- Linux
- nimekiri
- kohapeal
- loogika
- Pikk
- kaua aega
- kauaoodatud
- lookup
- tehtud
- tegema
- TEEB
- palju
- kaardistus
- meister
- Vastama
- materjal
- Matic
- max laiuse
- mai..
- vahendid
- Mempool
- MetaMask
- meetod
- rännanud
- miljon
- miljonid
- minutit
- protokoll
- mnemotehnika
- moodul
- Moodulid
- Jälgida
- jälgitakse
- kuu
- rohkem
- Pealegi
- kõige
- palju
- mitme ahelaga
- peab
- my
- Lähedal
- vajalik
- Vajadus
- vajadustele
- mitte kunagi
- Uus
- järgmine
- ei
- sõlme
- Node.js
- sõlmed
- normaalne
- eelkõige
- Märka..
- November
- nüüd
- number
- numbrid
- Nvidia
- saama
- toimunud
- of
- pakkuma
- pakutud
- on
- ONE
- ainult
- tegutsevad
- operatsioonisüsteemi
- or
- Muu
- meie
- väljund
- üle
- üldine
- omanikud
- paari
- Parallel
- parameetrid
- osa
- minevik
- tee
- täitma
- Platvormid
- Platon
- Platoni andmete intelligentsus
- PlatoData
- palun
- Punkt
- võimalus
- võimalik
- post
- võimas
- pr
- tava
- täpselt
- esitada
- ilus
- vältida
- varem
- põhimõtted
- era-
- Private Key
- Privaatvõtmed
- tõenäoliselt
- Probleem
- protsess
- Toode
- projekt
- lubas
- omadused
- kaitsma
- anda
- tingimusel
- avalik
- avaliku võtme
- eesmärkidel
- Python
- kvaliteet
- kiiresti
- juhuslik
- juhuslikkus
- määr
- jõudma
- reaalne
- reaalajas
- saama
- vastuvõtmine
- hiljuti
- vähendamine
- osas
- seotud
- vabastama
- lootma
- ülejäänud
- Eemaldatud
- Teatatud
- taotleda
- nõudma
- Vajab
- Vastupidavus
- kaasa
- tulemuseks
- tagasipöördumine
- Oht
- jooks
- jooksmine
- ohutu
- sama
- Säästa
- säästmine
- stsenaarium
- kava
- teadlased
- Otsing
- kindlustama
- turvalisus
- vaata
- seeme
- seemned
- tundub
- saatja
- Saadetud
- Jada
- mitu
- jagamine
- Lühike
- peaks
- Räni
- sarnane
- lihtne
- alates
- ühekordne
- olukord
- SUURUS
- aeglane
- väiksem
- nutikas
- Nutikas kett
- So
- tarkvara
- SOL
- mõned
- Keegi
- Varsti
- allikas
- Ruum
- rääkimine
- spetsialiseeritud
- konkreetse
- kiirus
- jagada
- Stage
- standard
- standardite
- algus
- Samm
- Sammud
- Veel
- varastatud
- varastatud raha
- salvestada
- ladustatud
- tugevus
- tugev
- selline
- Toetamine
- peaks
- Lüliti
- süsteem
- tabel
- lahendada
- Võtma
- võtab
- sihtmärk
- eesmärgid
- Ülesanne
- meeskond
- test
- Testimine
- testid
- kui
- tänan
- et
- .
- Põhitõed
- maailm
- oma
- Neile
- SIIS
- Seal.
- Need
- nad
- see
- need
- tuhandeid
- kolm
- Läbi
- aeg
- korda
- et
- täna
- märgid
- võttis
- tööriist
- teema
- Summa
- Tehingud
- Muutma
- Transformation
- Trezor
- Usalda
- Trust rahakott
- püüdma
- kaks
- TWT
- kõikjal
- ainulaadne
- kordumatud aadressid
- ajakohastatud
- us
- kasutama
- Kasutatud
- Kasutaja
- kasutaja raha
- Kasutajad
- kasutamine
- tavaliselt
- väärtus
- versioon
- väga
- haavatavus
- Haavatav
- ootamine
- rahakott
- Rahakotid
- oli
- Tee..
- we
- Web3
- nädalat
- olid
- millal
- mis
- kuigi
- kogu
- kelle
- laialdaselt
- will
- koos
- ilma
- sõna
- sõnad
- maailm
- mures
- halvim
- oleks
- kirjalik
- aastat
- sa
- Sinu
- sephyrnet