Simplified Payment Verification (SPV)
Valg av Wallet (del 2)
December 02, 2015Vi skal nå ta for oss en annen Wallet-funksjon. Det er som dere skjønner flere ulike egenskaper som er verdt å vite om før en velger Wallet.
Det finnes en "lettere" type Wallet. Denne regner ikke på alt, og stoler i større grad på andre i nettverket.
De fleste mobiltelefon Wallets, blant andre, er av denne typen. Det er på grunn av begrenset kapasitet på slike enheter. Det er rett og slett ikke praktisk å kjøre "full-node" på disse.
Tidligere har vi gått gjennom hva HD -Wallets og Mnemonic Seeds er. To smarte teknikker som kan knytte flere Bitcoin-adresser hierarkisk til samme Wallet.
Så hva er en SPV Wallet?
Simplified Payment Verification (SPV)
En ordinær Fullnode Wallet rommer til enhver tid en oppdatert kopi av hele Blockchain (dette utgjør nær 50GB i dag.) Dette krever naturlig nok en del av utstyret som brukes til Wallet.
En slik Wallet stoler bare på sine egne beregninger, og kan således selvstendig verifisere alle transaksjoner. Den utfører såkalt høydesjekk av Blockchain (Block Height Check.)
Høydesjekk innebærer en grundig sjekk av alle transaksjoner og blokker, helt fra den første blokken og frem til i dag.
Alt må stemme og passe perfekt sammen!
En SPV Wallet derimot gjør ting litt lettere. En slik Wallet kalles ofte for "Thin Wallet".
Slike Wallets er begrensede aktører i det store Bitcoin-nettverket. De gjør lite kontrollarbeid, og de opererer med tankegangen "tilstrekkelig sikkert for brukeren".
De stoler kort sagt på at andre passer på!
I stedet for å gjøre alt kontrollarbeidet, og oppbevare en komplett versjon av Blockchain selv, så klarer en slik SPV Wallet seg med kun "skjelettet" av Blockchain. Med det menes mer presist de viktige "Header -blokkene".
En overfladisk sjekk utføres for å passe på at alle blokkene passer sammen, og at vanskelighetsgraden er høy nok i blokkene. En SPV Wallet oppbevarer derimot ikke datablokkene selv!
Når en transaksjon med ubrukte verdier skal sjekkes før anvendelse, så linkes denne inn i riktig blokk i Blockchain ved hjelp av data som mottas fra nettverket. Det sjekkes at Merkle-roten (hash) for transaksjonen stemmer inn mot respektiv "Header-blokk".
Blokken som inneholder transaksjonen må i tillegg også ligge dypt nok i Blockchain, altså den må være tilstrekkelig bekreftet. En SPV Wallet utfører det som kalles en begrenset dybdesjekk (Block Depth Check.)
For å skaffe seg transaksjonsdata snakker en SPV Wallet med andre noder, såkalte "trusted nodes". Den finner på den måten ut i hvilken blokk verdiene som skal brukes hører hjemme, og om de ligger dypt nok i kjeden. Dette gjøres for å verifisere at gjeldende midler er tilgjengelige, og ikke allerede er oppbrukt.
Denne metoden medfører raskere behandling av transaksjoner, og den krever mindre ressurser og lagringsplass i Wallet! Dett er ideelt spesielt for Mobiltelefon -Wallets.
Bakdelen er at en slik node ikke opererer så sikkert som en Fullnode Wallet, men det anses likevel som sikkert nok for mindre transaksjoner.
En må hele tiden vurdere nøye om en har tillit til sine "trusted nodes".