Ting å vite: |
– Frøgenerering av Trust Wallet var feil, den totale entropien var bare 32 biter. Vi har laget en fil som inneholder alle mulige frø.
– Heldigvis oppdaget Ledger Donjon sårbarheten veldig raskt og unngikk sannsynligvis et av de største hackene i kryptoøkosystemet. |
14. november 2022 annonserte Trust Wallet, en mye brukt programvarelommebok, lanseringen av nettleserutvidelsen. Den gir tilgang til digitale eiendeler på flere blokkjeder direkte fra nettleseren, og er et etterlengtet tillegg til de eksisterende iOS- og Android-appene.
Ledger Donjon har nylig oppdaget en kritisk sårbarhet i denne nettleserutvidelsen, som lar en angriper stjele alle eiendelene til enhver lommebok opprettet med denne utvidelsen, uten brukerinteraksjon. Ved å kjenne adressen til en konto, er det mulig å umiddelbart beregne den private nøkkelen, og deretter få tilgang til alle dens midler. Nedenfor er detaljer om sårbarheten, hvordan Ledger Donjon oppdaget den, dens innvirkning over tid, et estimat av de sårbare eiendelene, og hvordan Trust Wallet reagerte for å fikse det. Men la oss begynne med å huske det grunnleggende.
Hvordan lommebøker lages
Entropi generering er vanskelig. Som forskere liker vi reproduserbarhet og å kunne forklare fenomener med årsak-virkningsprinsipper. Så generelt sett er det vanskelig å generere tilfeldighet. Dessuten er det vanskelig å demonstrere at tilfeldige tall er riktige, og en dårlig, men ikke terminalt defekt tilfeldig tallgenerator kan lett lure observatøren. For god tilfeldighet trenger vi ensartet fordeling av biter og byte (og til og med alle bitstørrelser), og uforutsigbarhet. For en observatør av en sekvens må det være umulig å ha noen informasjon om neste del av sekvensen som skal genereres.
Siden disse egenskapene er utrolig vanskelige å oppnå, prøver kryptovaluta-området å unngå å stole på tilfeldighet så mye som mulig – men vi trenger det fortsatt på et tidspunkt: når vi lager en ny lommebok.
Du er sannsynligvis allerede kjent med mnemonikken din, de 12 til 24 engelske ordene som lar deg sikkerhetskopiere lommeboken din (hvis ikke, kan du sjekke Ledger Academy artikkel om akkurat dette emnet).
Denne mnemonikken koder for 16 til 32 byte med entropi, ifølge BIP 39 standard – kvaliteten på denne entropien er kritisk, siden den vil være kimen til alle nøkler som brukes av lommeboken din på alle kjeder, etter en deterministisk avledningsprosess definert av BNP 32 og BNP 44 standarder.
Dette hierarkiske deterministiske opplegget er stort sett allestedsnærværende i dag, med tanke på hvor enkelt det gjør det for brukere å lage en sikkerhetskopi av en uendelig rekke nøkler og dens portabilitet (til tross for at BIP 39 er "enstemmig frarådet for implementering"). Signer-roaming er en kraftig funksjon – når favorittlommeboken din svikter eller skuffer, kan du bare ta med deg mnemonikken din (eller enda bedre, Ledger-enheten), bytte til en annen, beholde den økonomiske friheten og begrense virkningen av nedetiden.
Men igjen, det krever en feilfri entropikilde.
Oversikt over sikkerhetsproblemet
Trust Wallet er avhengig av Trust Wallet Core, et bibliotek på tvers av plattformer som implementerer lavnivå kryptografisk lommebokfunksjonalitet for mange blokkkjeder. Den var mobilfokusert, men den retter seg også mot Wasm siden april 2022 (se #2132).
Mens det meste av Trust Wallet Core er bærbart, er noen få moduler og funksjoner veldig spesifikke for et mål. Dette er spesielt tilfellet for den sikre tilfeldige generasjonsdelen, som brukes til å lage kryptografisk materiale som private nøkler, og mnemonic for HD-lommebøker. Hver implementering utnytter pseudorandom number generator (PRNG) som tilbys av operativsystemet:
- For iOS,
SecRandomCopyBytes
benyttes. - For Android leveres entropien av en forekomst av
java.security.SecureRandom
.
Dette er vanligvis en god praksis, siden slike primitiver skal være trygge.
Wasm backend
Det er en forskjell med Wasm-målet. Denne modulen kan kjøres i flere miljøer, som enhver nettleser som støtter Wasm, eller Node.js. Disse plattformene gir ikke en felles sterk PRNG, og man kan ikke få tilgang til de "klassiske" systemgrensesnittene fra disse miljøene. For eksempel kunne en Wasm-modul som kjører i Chrome for Linux ikke lese direkte /dev/urandom
.
For å takle dette er en dedikert såkalt "secure random generator" implementert i #2240. Den er basert på en PR laget i emscripten (se PR #12240 i emscripten) skrevet nøyaktig for å unngå lesing /dev/urandom
.
I følge forfatteren:
Det vi gjør her er enkelt, vi pakker inn std::random_device
med std::mt19937
og returner en tilfeldig uint32-verdi, inspirert av emscripten-core/emscripten#12240.
Det er et viktig problem her, som fører til en kritisk sårbarhet for lommebokkjerne for Wasm og for ethvert produkt som er avhengig av den: PRNG-en som brukes er en Mersenne Twister, og den skal ikke brukes til kryptografiske formål. Dessuten tar den spesialiserte versjonen mt19937 en enkelt 32-bits verdi som inngangsfrø.
Hva er konsekvensene her? Den tilpassede Random-modulen for Wasm implementerer to funksjoner: random32
som gir ut en 32-bits tilfeldig verdi, og random_buffer
som fyller en buffer av vilkårlig størrelse med tilfeldige data. I Wallet Core-prosjektet brukes disse funksjonene utelukkende av trezor-crypto, det kryptografiske biblioteket utviklet av Trezor for å sikre sikker kryptografi på maskinvare-lommebøkene deres.
La oss nå se hvordan HD-lommebøker genereres:
- Inngangspunktet er HDWallet. Det krever en styrke og en passordfrase for å beskytte den senere:
https://github.com/trustwallet/wallet-core/blob/3.1.0/src/HDWallet.cpp#L45
Denne funksjonen ringer deretter mnemonic_generate
for å lage en BIP-39 mnemonic:
https://github.com/trustwallet/wallet-core/blob/3.1.0/trezor-crypto/crypto/bip39.c#L55
mnemonic_generate
samtaler random_buffer
, som sender ut en tilfeldig buffer fylt ved hjelp av en Mersenne twister PRNG, hvis forekomst nettopp har blitt seedet:
https://github.com/trustwallet/wallet-core/blob/3.1.0/wasm/src/Random.cpp#L19
Siden frøet bare er 32 biter, tillater Wasm-versjonen av lommebokkjerne å lage bare 2^32 (~4 milliarder) mulige mnemonics. Alle disse mnemonics kan genereres på et par timer i en enkelt datamaskin.
Derfra kan en angriper:
- Beregn alle frøene, private nøkler og deretter adressene til hver kryptovaluta som håndteres av Trust Wallet.
- Skann de relaterte blokkjedene for å trekke ut alle de brukte adressene.
- Beregn krysset for å få alle adressene til lommebøker laget av Trust Wallet for Wasm, og stjel pengene deres.
Å kjøre et slikt angrep tar mye mer enn et par timer, men er gjennomførbart med noen få GPUer på mindre enn en dag (se medium.com/@johncantrell97/how-i-checked-over-1-trillion-mnemonics-in-30-hours-to-win-a-bitcoin for et kostnadsestimat. Angrep er 256 ganger lettere her).
Applikasjon til Trust Wallet-nettleserutvidelsen
De Trust Wallet nettleserutvidelse er en utvidelse for Chromium-baserte nettlesere. Det er helt klart en MetaMask-konkurrent, og er merket som en "sikker flerkjedet kryptolommebok og inngangsport til tusenvis av Web3 desentraliserte applikasjoner (dApps)."
Utvidelsen er lukket kilde, men koden kan enkelt analyseres. Den er avhengig av den sårbare Wasm-implementeringen av Trust Wallet Core.
Når en lommebok opprettes, oppretter utvidelsen en 12-ords mnemonic fra et tilfeldig 128-bits frø. Mnemonikk genereres på denne måten:
HDWallet.create
er den automatisk genererte Wasm-innpakningen for HDWallet-konstruktøren beskrevet ovenfor. Det vil si de sårbare random_buffer
funksjonen brukes, slik at mnemonics kan hentes fra brukeradressen med et brute force-angrep.
Denne utvidelsen håndterer følgende aktiva: AVAX, BNB, ETH, MATIC, SOL og TWT.
- Adressene er identiske for ETH, BNB, MATIC, AVAX og TWT. Dette er standard Ethereum-adresser, som deler samme avledningsbane (m/44'/60'/0'/0/0).
- Solana bruker en annen avledningsbane: m/44'/501'/0'/0'.
For å tappe pengene til alle brukere av Trust Wallet-utvidelsen, kan angriperen:
- Beregn og lagre alle mulige mnemonic, deretter Ethereum private nøkkel og Ethereum adresse, som kan genereres av denne utvidelsen.
- Samle alle brukte Ethereum-adresser som er opprettet siden den første utgivelsen av Trust Wallet-nettleserutvidelsen, og lagre dem lokalt.
- Utfør et oppslag i adressedatabasen.
- Tøm lommeboken med den private nøkkelen, hvis adressen er brukt.
Disse trinnene kan reproduseres for hver kjede. Vi beskriver nå hvordan Ledger Donjon implementerte dette angrepet på Ethereum og Binance Smart Chain, uten selvfølgelig å tømme lommeboken.
Angripende Trust Wallet
Sårbarheten gjør det mulig for en angriper å beregne mnemonic fra en hvilken som helst adresse til en lommebok opprettet av nettleserutvidelsen. For det må man beregne en kartlegging mellom mulige mnemonikk og den resulterende adressen.
Genererer alle adressene Trust Wallet-utvidelsen kan opprette
Basert på sårbarheten i PRNG som er forklart tidligere, er det mulig å telle opp alle adressene (og de tilhørende private nøklene) Trust Wallet-utvidelsen kan opprette. Tanken min var å lagre alle mulige adresser i et stort bord. Deretter, fra en liste over adresser hentet fra Ethereum-blokkjeden, kan man sjekke om noen adresser er til stede i denne tabellen. I så fall kan dens private nøkkel beregnes.
Avledning fra entropi til mnemonic og deretter til Ethereum-adresse bruker standard avledningsmekanisme BIP-32, BIP-39, og BIP-44 kontohierarki.
Den første vanskeligheten var å telle opp alle disse adressene. Transformasjon fra PRNG-frø til adresse krever følgende trinn:
- Entropi generasjon: initialiser Mersenne Twister med frøet, og kall det 16 ganger for å samle den første entropien.
- Entropi til mnemonikk: en SHA-256 for å beregne den endelige kontrollsummen innebygd i det siste ordet.
- Mnemonisk til frø: mnemonic konverteres til et 512-bits frø ved bruk av PKBDF2-HMAC-SHA512 med 2048 iterasjoner. Det er 2 SHA-512-beregninger per iterasjon, så totalkostnaden er 4096 SHA-512-beregninger.
- Frø til BIP-32 hovednøkkel: 1 HMAC SHA-512 koster 2 SHA-512-beregninger.
- Hovednøkkel til Ethereums privatnøkkel: hovednøkkel er utledet på m/44'/60'/0'/0/0. Dette krever 3 herdede underordnede private nøkkelavledninger og 2 normale underordnede nøkkelavledninger.
- Hver herdet underordnet privatnøkkelavledning krever én HMAC SHA-512 (2 SHA-512)-beregning og én tillegg på secp256k1.
- Hver normal underordnet privatnøkkelavledning krever en underordnet privatnøkkelavledning, og en skalar multiplikasjon på secp256k1 for å konvertere den private nøkkelen gitt i inndata til en offentlig nøkkel.
- Ethereum privat nøkkel til adresse: Dette siste trinnet krever en privat til offentlig nøkkelkonvertering, så en annen skalar multiplikasjon, og en Keccak-256-hash.
Totalkostnaden for alle disse trinnene er da:
- Initialisering og 16 samtaler til Mersenne Twister
- 1 SHA-256
- 4108 SHA-512
- 5 poeng tillegg
- 2 skalar multiplikasjoner på secp256k1
De dyreste trinnene er SHA-512-beregningene og skalarmultiplikasjonene. For å gjøre det kort, er den generelle prosessen for å transformere PRNG-frøet til en Ethereum-adresse sakte. Å kjøre slik beregning på en enkelt CPU ville ta måneder, og sannsynligvis flere uker på CPUene som var tilgjengelige i Donjon. Så vi implementerte det ved å bruke OpenCL (basert på BIP39 Solver GPU) og kjørte den på 2 NVIDIA GeForce GTX 1080 Ti GPUer.
Utdataene fra dette verktøyet er en stor fil som inneholder alle Ethereum-adressene som utvidelsen kan generere. Siden det er 2^32 mulige frø, og hver adresse er 20 byte lang, tar denne tabellen 80 Gb.
Derfra går tabelloppslag tregt: for å matche en adresse, vil det kreve gjentakelse gjennom hele denne store tabellen.
For å få fart på disse oppslagene deler vi tabellen i 256 mindre tabeller, i henhold til den første byten til Ethereum-adressen. Hver tabell inneholder par med PRNG-frø, og deres resulterende Ethereum-adresse.
Til slutt, for å kunne utføre raske oppslag i hver tabell, sorterte vi dem i henhold til Ethereum-adressen. Det er nå mulig å gjøre binære søk på disse tabellene: oppslag på disse sorterte tabellene er veldig billige.
For å spare litt diskplass, lagret vi PRNG-frø og bare de første 8 bytene av hver Ethereum-adresse. De siste 12 bytene er ikke nødvendige, da kollisjoner er ubetydelige i mitt brukstilfelle. Hver oppføring tar da 12 byte. Hele bord tar da 48 Gb.
Her er tidspunktene for hvert trinn:
Ved å bruke disse tabellene er det mulig å umiddelbart hente minnene som brukes til å generere en adresse. For å vurdere virkningen av sårbarheten, spurte Binance meg om hukommelsen til 3 testadresser de ga. Her er resultatet:
Det tok noen hundre millisekunder å hente de 3 mnemonikkene og de private nøklene. I følge våre tester, prosessen er faktisk rask nok til å behandle i sanntid alle transaksjonene på Ethereum blockchain og å bryte alle sårbare adresser så snart de er brukt. Ved å bufre adresser som allerede er testet, gjelder det samme for andre blokkjeder som BSC. I dette angrepsscenarioet kan man overvåke transaksjoner når de når mempoolen, og beregne private nøkler avsender eller mottaker i sanntid.
Viser alle brukte Ethereum-adresser
Det vi ønsker er å estimere det reelle antallet sårbare lommebøker, og deres balanse. Dette høres enkelt ut, siden alle transaksjonene er offentlige, og derfor er alle adressene tilgjengelige på blokkjeden. Det er imidlertid ingen måte å direkte hente listen over brukte adresser.
Vi implementerte en metode som itererer gjennom hver blokk av Ethereum-blokkjeden. Vi hentet ut avsender- og mottakeradressene til alle transaksjonene, og adresseparametrene for hver samtale til ERC-20-kontrakter.
Merk at med denne metoden kan kun brukte lommebøker oppdages: noen sårbare lommebøker som ikke mottok eiendeler har aldri samhandlet med blokkjeden.
Vi skannet Ethereum-blokkjeden mellom blokkene 14820000 og 16096000. Blokk 14820000 ble opprettet 21. mai 2022, derfor like før pull-forespørselen som la til den sårbare koden i Trust Wallet Core. 16096000 var den siste blokken da jeg skrev dette innlegget.
Offentlige noder ser ut til å ha en takstgrense, så jeg spurte flere offentlige noder parallelt for å samle totalt 147,910,120 32,613,317 XNUMX adresser i løpet av flere dusin timer. Etter at duplikater er fjernet, får vi en liste med XNUMX XNUMX XNUMX unike adresser.
Den samme metoden har blitt brukt for Binance Smart Chain. Offentlige BSC-noder er skannet.
Estimerer antall sårbare kontoer
Til slutt er det skrevet et verktøy for å teste om en adresse er opprettet av Trust Wallet-utvidelsen. Den gjør et oppslag i de genererte tabellene, henter PRNG-frøet og beregner derfra mnemonikken, Ethereum-privatnøkkelen og den tilhørende adressen.
Beregningen er veldig rask. Kandidatadresser ble sortert på forhånd for å minimere I/O og for å utføre et nestet binært søk. Oppslag på de 32 millioner adressene tar noen minutter med et enkelt Python-skript.
Her er et eksempel med en adresse hentet fra en offentlig tweet svar på kunngjøringen av Trust Wallet-utvidelsen. Jeg tok denne som et eksempel som denne adressen har aldri blitt brukt, så brukermidler er ikke i fare.
Verktøyet har blitt kjørt på datasettet på 1,873,720 4 22 beskrevet ovenfor. Å teste alle adressene og beregne de private nøklene til sårbare kontoer tok XNUMX minutter og XNUMX sekunder, så det er veldig billig.
Med denne listen over sårbare private nøkler er det mulig å liste opp alle de korresponderende adressene, saldoene deres og åpenbart tømme dem... Under våre undersøkelser var rundt 30 millioner dollar i fare på et tidspunkt, men vi overvåket ikke alle kjeder og tokens overtid .
Utbedring
2022, 17. november
Sårbarhet har blitt rapportert til Binance ved å bruke deres bug bounty-program 2022, 17. november.
For å bekrefte sårbarheten sendte Binance oss 3 adresser og ba dem om å oppgi mnemonics:
Kan du prøve å kjøre verktøyet og gi minnekort for disse 3 adressene?
Wallet 1 – 0xdf6D9547e163D5E7eafBe2FeB24Bfa12A4C913C0
Wallet 2 – 0xE1E0580cb5eA0c0FD034FF2cdfc872ce4493676C
Wallet 3 – 0x02b2Ae981b138F066344774A2AD75225A046c377
Takk!
Hilsen.
Når alle mulige adresser er forhåndsberegnet, er det like enkelt å hente minnesmerket fra en adresse som et oppslag i en tabell med 4 milliarder oppføringer. De tre mnemonikkene har blitt hentet på 0.2s:
2022, 21. november
Noen dager etter, den 21. november, teamet Trustwallet offentlig engasjert på Github, unngår man generering av nye feilfrø. Vi var ganske bekymret for at noen skulle legge merke til det og utnytte sårbarheten.
2022, november
Trustwallet-teamet oppdaterte appen for å advare brukerne sine, hindre dem i å generere nye feilfrø og fjernet mottaksstrømmene.
Derfra overvåket vi situasjonen og fondene som var i fare. Bare noen få dager etter utgivelsen av denne sårbare lommeboken var rundt 30 millioner dollar i fare.
2023, mars
Trustwallet-teamet ga oss den høyeste dusøren de tilbyr: $100k
2023, 22. april
Etter måneder å vente på at brukerne skulle migrere pengene sine, avslørte Trustwallet-teamet sårbarheten og skrev en post mortem. Per nå er det fortsatt lommebøker med gjenværende midler som kan stjeles (~$100k). Trust Wallet lovet tilbakebetaling av stjålne midler.
konklusjonen
Denne sårbarheten illustrerer det verste tilfellet av en kryptofeil – kompromitterte kontoer for alltid.
Å skape god tilfeldighet er en skremmende oppgave – Ledger-enheter er avhengige av dedikert silisiumlogikk i våre sertifiserte smartkortbrikker som har vært gullstandarden for sikre industrier de siste 40 årene for å garantere høykvalitets tilfeldighet og manipulasjonsmotstand.
Gitt kompleksiteten ved å kontakte eierne av disse kontoene og muligheten til å bruke de kompromitterte kontoene på alle slags forskjellige programvare- og maskinvarelommebøker, gjorde TrustWallet en ganske fin jobb med å redusere risikoen for brukerne deres.
I (veldig) (nær) fremtid er det sannsynlig at roboter vil kjempe for å være de første til å stjele midler som er satt inn på disse adressene, i likhet med hva som skjedde med hjernelommebøker tidligere.
Spesiell takk til Jean-Baptiste Bédrune for å redde verden. Bare noen få dager etter utgivelsen av Trust Wallet-utvidelsen var nesten 30 millioner dollar i fare. Et marerittscenario kunne ha oppstått hvis en angriper fant sårbarheten etter et par måneder.
Under våre undersøkelser la vi også merke til at noen få adresser var sårbare mens de hadde blitt generert lenge før Trust Wallet-utgivelsen. Det betyr sannsynligvis at denne sårbarheten eksisterer i noen andre lommebokimplementeringer som er bekymrende ...
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoAiStream. Web3 Data Intelligence. Kunnskap forsterket. Tilgang her.
- Minting the Future med Adryenn Ashley. Tilgang her.
- Kjøp og selg aksjer i PRE-IPO-selskaper med PREIPO®. Tilgang her.
- kilde: https://www.ledger.com/blog/funds-of-every-wallet-created-with-the-trust-wallet-browser-extension-could-have-been-stolen
- : har
- :er
- :ikke
- $OPP
- 1
- 12
- 13
- 14
- 15%
- 2022
- 23
- 24
- 30
- 39
- 40
- 49
- 8
- a
- I stand
- ovenfor
- adgang
- Ifølge
- Logg inn
- kontoer
- Oppnå
- faktisk
- la til
- tillegg
- adresse
- adresser
- Etter
- en gang til
- Alle
- tillate
- tillate
- tillater
- allerede
- også
- an
- og
- android
- annonsert
- Kunngjøring
- En annen
- noen
- app
- søknader
- Applikasjoner (DApps)
- apps
- April
- ER
- rundt
- Artikkel
- AS
- Eiendeler
- assosiert
- At
- angripe
- forfatter
- tilgjengelig
- AVAX
- unngå
- unngås
- unngå
- Backup
- dårlig
- Balansere
- balanserer
- basert
- Grunnleggende
- BE
- vært
- før du
- være
- under
- Bedre
- mellom
- Stor
- Biggest
- Milliarder
- binance
- Binance SmartChain
- pip
- Blokker
- blockchain
- blokkjeder
- Blocks
- BNB
- roboter
- skuddpremie
- Brain
- branded
- Break
- nett~~POS=TRUNC leseren~~POS=HEADCOMP
- nettlesere
- brute force
- BSC
- buffer
- Bug
- men
- by
- ring
- Samtaler
- CAN
- kandidat
- kan ikke
- saken
- Sertifisert
- kjede
- kjeder
- billig
- sjekk
- barn
- chips
- Chrome
- klart
- kode
- Felles
- konkurrent
- kompleksitet
- kompromittert
- beregningen
- beregninger
- Beregn
- datamaskin
- databehandling
- Bekrefte
- Konsekvenser
- vurderer
- inneholder
- kontrakter
- Konvertering
- konvertere
- konvertert
- Kjerne
- korrigere
- Tilsvarende
- Kostnad
- kunne
- Par
- kurs
- prosessor
- skape
- opprettet
- skaper
- kritisk
- plattform
- krypto
- Krypto-økosystem
- Krypto lommebok
- cryptocurrency
- kryptografisk
- kryptografi
- skikk
- DApps
- dato
- Database
- dag
- Dager
- desentralisert
- Desentraliserte applikasjoner
- dedikert
- definert
- demonstrere
- deponert
- Avledet
- beskrevet
- Til tross for
- detalj
- detaljert
- detaljer
- oppdaget
- utviklet
- enhet
- Enheter
- gJORDE
- forskjell
- forskjellig
- vanskelig
- Vanskelighetsgrad
- digitalt
- Digitale eiendeler
- direkte
- motet
- oppdaget
- distribusjon
- do
- nedetid
- dusin
- avløp
- duplikater
- under
- hver enkelt
- enklere
- lett
- lett
- økosystem
- innebygd
- Engelsk
- nok
- sikre
- entry
- miljøer
- ERC-20
- anslag
- ETH
- ethereum
- Ethereum blockchain
- Selv
- Hver
- eksempel
- utelukkende
- eksisterende
- finnes
- dyrt
- Forklar
- forklarte
- Exploit
- forlengelse
- trekke ut
- mislykkes
- kjent
- FAST
- Favoritt
- Trekk
- Noen få
- slåss
- filet
- fylt
- slutt~~POS=TRUNC
- finansiell
- økonomisk frihet
- slutt
- Først
- Fix
- feil
- Flows
- etter
- Til
- Tving
- for alltid
- Heldigvis
- funnet
- Frihet
- fra
- funksjon
- funksjonalitet
- funksjoner
- midler
- framtid
- gateway
- samle
- generelt
- generere
- generert
- genererer
- generasjonen
- generator
- få
- GitHub
- Gull
- Gold Standard
- god
- GPU
- innvilget
- garantere
- hack
- HAD
- Håndterer
- skjedde
- Hard
- maskinvare
- Maskinvare lommebøker
- hash
- Ha
- derav
- her.
- hierarki
- Høy
- høyest
- TIMER
- Hvordan
- Men
- HTTPS
- hundre
- i
- Tanken
- identiske
- if
- illustrerer
- umiddelbart
- Påvirkning
- gjennomføring
- implementert
- redskaper
- viktig
- umulig
- in
- utrolig
- bransjer
- Uendelighet
- informasjon
- innledende
- inngang
- inspirert
- f.eks
- interaksjon
- grensesnitt
- kryss
- inn
- Undersøkelser
- iOS
- IT
- køyring
- gjentakelser
- DET ER
- Jobb
- bare
- Hold
- nøkkel
- nøkler
- Vet
- Knowing
- Siste
- seinere
- siste
- Fører
- Ledger
- venstre
- mindre
- utnytter
- Bibliotek
- i likhet med
- Sannsynlig
- BEGRENSE
- linux
- Liste
- lokalt
- logikk
- Lang
- lang tid
- etterlengtede
- oppslag
- laget
- gjøre
- GJØR AT
- mange
- kartlegging
- Master
- Match
- materiale
- Matic
- max bredde
- Kan..
- midler
- Mempool
- metamask
- metode
- migrere
- millioner
- millioner
- minutter
- minutter
- minnesmerker
- moduler
- Moduler
- Overvåke
- overvåket
- måneder
- mer
- Videre
- mest
- mye
- flerkjede
- må
- my
- Nær
- nødvendig
- Trenger
- behov
- aldri
- Ny
- neste
- Nei.
- node
- node.js
- noder
- normal
- spesielt
- Legge merke til..
- November
- nå
- Antall
- tall
- Nvidia
- få
- forekom
- of
- tilby
- tilbudt
- on
- ONE
- bare
- drift
- operativsystem
- or
- Annen
- vår
- produksjon
- enn
- samlet
- eiere
- par
- Parallel
- parametere
- del
- Past
- banen
- utføre
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- vær så snill
- Point
- mulighet
- mulig
- Post
- kraftig
- pr
- praksis
- nettopp
- presentere
- pen
- forebygge
- tidligere
- prinsipper
- privat
- private Key
- Private nøkler
- sannsynligvis
- Problem
- prosess
- Produkt
- prosjekt
- lovet
- egenskaper
- beskytte
- gi
- forutsatt
- offentlig
- offentlig Key
- formål
- Python
- kvalitet
- raskt
- tilfeldig
- tilfeldig
- Sats
- å nå
- ekte
- sanntids
- motta
- mottak
- nylig
- redusere
- hilsen
- i slekt
- slipp
- avhengige
- gjenværende
- fjernet
- rapportert
- anmode
- krever
- Krever
- Motstand
- resultere
- resulterende
- retur
- Risiko
- Kjør
- rennende
- trygge
- samme
- Spar
- besparende
- scenario
- ordningen
- forskere
- Søk
- sikre
- sikkerhet
- se
- seed
- frø
- synes
- avsender
- sendt
- Sequence
- flere
- deling
- Kort
- bør
- Silicon
- lignende
- Enkelt
- siden
- enkelt
- situasjon
- Størrelse
- langsom
- mindre
- Smart
- Smart kjede
- So
- Software
- SOL
- noen
- Noen
- Snart
- kilde
- Rom
- sett
- spesialisert
- spesifikk
- fart
- splittet
- Scene
- Standard
- standarder
- Begynn
- Trinn
- Steps
- Still
- stjålet
- stjålne midler
- oppbevare
- lagret
- styrke
- sterk
- slik
- Støtte
- ment
- Bytte om
- system
- bord
- takle
- Ta
- tar
- Target
- mål
- Oppgave
- lag
- test
- Testing
- tester
- enn
- Takk
- Det
- De
- Grunnleggende
- verden
- deres
- Dem
- deretter
- Der.
- Disse
- de
- denne
- De
- tusener
- tre
- Gjennom
- tid
- ganger
- til
- i dag
- tokens
- tok
- verktøy
- Tema
- Totalt
- Transaksjoner
- Transform
- Transformation
- Safe
- Stol
- Stol på lommeboken
- prøve
- to
- TWT
- allestedsnærværende
- unik
- unike adresser
- oppdatert
- us
- bruke
- brukt
- Bruker
- brukerfond
- Brukere
- ved hjelp av
- vanligvis
- verdi
- versjon
- veldig
- sårbarhet
- Sårbar
- venter
- lommebok
- Lommebøker
- var
- Vei..
- we
- Web3
- uker
- var
- når
- hvilken
- mens
- hele
- hvem sin
- allment
- vil
- med
- uten
- ord
- ord
- verden
- bekymret
- verste
- ville
- skrevet
- år
- du
- Din
- zephyrnet