Share this article

Modelo ng Seguridad ng Bitcoin: Isang Deep Dive

Ang CoinDesk ay tumitingin sa ilalim ng hood upang maunawaan kung ano ang mga tampok ng seguridad at T inaalok ng Bitcoin.

kailan tinatalakay ang mga mekanismo ng pinagkasunduan para sa iba't ibang cryptocurrencies, ONE isyu na kadalasang nagiging sanhi ng mga argumento ay ang kakulangan ng pag-unawa (at kahulugan) ng modelo ng seguridad na ibinibigay nila para sa makasaysayang data sa ledger. Habang ang bawat modelo ng pinagkasunduan ay naglalayon na pigilan ang iba't ibang teoretikal na pag-atake, mahalagang maunawaan ang mga layunin para sa modelo.

Ang bawat modelo ng seguridad ay may dalawang pangunahing bahagi: mga pagpapalagay at garantiya. Kung ang mga pagpapalagay na ginamit bilang mga input ay totoo, gayon din dapat ang mga garantiya na ilalabas ng modelo.

Story continues
Don't miss another story.Subscribe to the Crypto Long & Short Newsletter today. See all newsletters

Tingnan natin ang modelo ng seguridad na lumilitaw na iniaalok sa mga gumagamit ng Bitcoin na nagpapatakbo ng isang buong node.

Sa paghahanap ng katotohanan

“ONE sa mga lakas ng bitcoin – ang pinakamahalaga sa aking Opinyon kahit na – ay ang mababang antas ng tiwala na kailangan mo sa iba.” –Pieter Wuille

Ang layunin ng mga distributed ledger ay magbigay ng nakaayos na kasaysayan ng mga Events, dahil sa mga distributed system ay T mo basta-basta mapagkakatiwalaan ang isang timestamp.

Kapag sumali ang isang bagong kalahok sa isang network na nakabase sa blockchain, nagda-download sila ng anumang magagamit na mga bloke at isinasaalang-alang ang bawat wastong serye ng mga bloke na nakikita nila, simula sa isang hard-coded na genesis block.

ONE sa mga pinakadakilang pagpapalagay na ginawa ng modelo ng seguridad ng bitcoin ay ang karamihan sa mga minero ay tapat – na sila ay nagtatrabaho upang ma-secure ang blockchain sa halip na subukang pahinain ito. Sa pagsasagawa, ito ay totoo sa buong kasaysayan ng bitcoin dahil sa mga insentibo ng minero, bagaman ilang tanong kung ito ay patuloy na mananatiling totoo sa hinaharap.

Dahil sa pagpapalagay na ito, ang mga full node operator ay maaaring maging ganap na sigurado sa ilang mga katotohanan:

  • Walang sinuman ang nagpalaki ng suplay ng pera maliban sa mga minero, at ayon lamang sa isang mahusay na tinukoy na iskedyul.
  • Walang sinumang gumastos ng pera nang walang naaangkop na (mga) pribadong key.
  • Walang sinumang gumastos ng parehong pera nang dalawang beses.

Ang mga full node operator ay maaaring makatwirang sigurado sa ilang iba pang mga bagay. May matibay na garantiya na:

  • Ang anumang block sa chain ay ginawa sa loob ng humigit-kumulang dalawang oras pagkatapos ng timestamp ng block.
  • Sini-sync nila ang "tunay" na kasaysayan ng blockchain.

Sa isang mas teknikal na antas, nangangailangan ito ng maraming pagsusuri:

Thermodynamic na seguridad

Kapag nakumpirma na ang isang transaksyon sa isang bloke, T na ito mababaligtad nang walang gumagasta ng pinakamababang halaga ng enerhiya upang muling isulat ang chain.

Hangga't walang attacker ang may hawak ng higit sa 50% ng computational power ng network, at ang mga tapat na node ay maaaring makipag-ugnayan nang mabilis, ang posibilidad ng isang transaksyon ay mababaligtad nang malaki sa bilang ng mga kumpirmasyon na natanggap nito. May iba pang pag-atake, tulad ng makasariling pagmimina, na maaaring bawasan ang kinakailangang kapangyarihan na ito, kahit na mukhang mahirap gawin ang mga ito.

 Pinagmulan: "Bitcoin's Security Model Revisited" ni Yonatan Sompolinsky1 at Aviv Zohar
Pinagmulan: "Bitcoin's Security Model Revisited" ni Yonatan Sompolinsky1 at Aviv Zohar

Kung titingnan ang kasalukuyang pinagsama-samang gawaing ginagawa ng mga minero ng Bitcoin , aabutin ng halos 1026 na mga hash upang makabuo ng alternatibong blockchain mula sa genesis na may mas malaking pinagsama-samang patunay ng trabaho na ang buong node ay ituturing na "totoo" na chain.

trabaho-kailanman

Upang i-crunch ang ilang mga numero sa gastos na kasangkot sa naturang pag-atake:

Ang isang Antminer S9 ay tumatakbo sa 0.1 Joule bawat GH (109 hashes)

1026 hash * 0.1 J / 109 hash = 1015 joules

1015 joules = 2,777,777,778 kw na oras * $0.10 kw/oras = $277,777,778 halaga ng kuryente para muling isulat ang buong blockchain

Samantalang sa oras ng pagsulat ng isang bloke ay dapat maabot ang isang target na kahirapan na 253,618,246,641 na mangangailangan ng humigit-kumulang:

253,618,246,641 * 248 / 65535 = 1.09 * 1021 na mga hash

1.09 * 1021 hash * 0.1 J / 109 hash = 1.09 * 1011 joules

1.09 * 1011 joules = 30,278 kw na oras * $0.10 kw/oras = $3,028 halaga ng kuryente bawat bloke

Ito ang dahilan kung bakit maaari naming sabihin na ang Bitcoin ay napatunayang thermodynamically secure.

Mayroong ilang mga variable na maaari mong i-tweak sa pagkalkula sa itaas upang bawasan ang gastos, ngunit maaari naming siguraduhin na mangangailangan ito ng maraming milyong dolyar na halaga ng kuryente nang mag-isa upang muling isulat ang buong blockchain. Gayunpaman, ang isang attacker na may ganito kalakas na hash power ay pinakamalala na makakapag-reverse ng mga transaksyon pabalik sa 2014 – malalaman natin ang dahilan nito sa lalong madaling panahon.

Tandaan din na T nito isinasaalang-alang ang mga gastos na kinakailangan upang makakuha at magpatakbo ng sapat na kagamitan sa pagmimina upang maisagawa ang naturang pag-atake.

paglaban ng Sybil

Dahil ang Bitcoin protocol ay isinasaalang-alang na ang totoong chain ay ang may pinakamaraming pinagsama-samang patunay ng trabaho (hindi ang pinakamahabang chain na madalas na mali ang pagkakasabi,) ang resulta ay ang isang bagong peer na sumali sa network ay kailangan lamang kumonekta sa isang matapat na peer upang mahanap ang tunay na chain.

Ito ay kilala rin bilang "Sybil resistance," na nangangahulugang hindi posible para sa isang tao na maglunsad ng isang pag-atake laban sa isang node sa pamamagitan ng paggawa ng maraming hindi tapat na mga kapantay na nagpapakain dito ng maling impormasyon.

Mga node
Mga node

Ang larawan dito ay isang NEAR pinakamasamang sitwasyon kung saan ang iyong node ay malawakang inaatake ng Sybil ngunit mayroon pa ring isang koneksyon sa isang matapat na node na konektado sa totoong Bitcoin network. Hangga't ang isang matapat na kapantay ay nagpapasa ng totoong blockchain data sa iyong buong node, magiging malinaw na ang sinumang umaatake sa Sybil ay nagtatangkang linlangin ka at hindi sila papansinin ng iyong node.

Real-time na pinagkasunduan

Ang Bitcoin protocol ay lumilikha ng ilang iba pang mga kawili-wiling katangian patungkol sa pagpapanatili ng consensus sa buong network kapag ang iyong node ay nasa dulo ng blockchain.

Ang mga may-akda ng "Mga Pananaliksik at Hamon para sa Bitcoin at Cryptocurrencies” tandaan ang mga sumusunod na katangian na mahalaga sa katatagan ng isang Cryptocurrency:

Sa wakas pinagkasunduan. Sa anumang oras, lahat ng mga sumusunod na node ay sumasang-ayon sa isang prefix ng kung ano ang magiging "totoo" na blockchain.

Exponential convergence. Ang posibilidad ng isang tinidor ng lalim n ay O(2−n). Nagbibigay ito sa mga user ng mataas na kumpiyansa na ang isang simpleng "k confirmations" na panuntunan ay titiyakin na ang kanilang mga transaksyon ay permanenteng naaayos.

Kasiglahan. Ang mga bagong bloke ay patuloy na idaragdag at ang mga wastong transaksyon na may naaangkop na mga bayarin ay isasama sa blockchain sa loob ng makatwirang tagal ng panahon.

Katumpakan. Ang lahat ng mga bloke sa chain na may pinakamaraming pinagsama-samang patunay ng trabaho ay magsasama lamang ng mga wastong transaksyon.

Pagkamakatarungan. Ang isang minero na may X% ng kabuuang computational power ng network ay magmimina ng humigit-kumulang X% ng mga bloke.

Ang mga may-akda ng papel ay nagpapansin na ang Bitcoin ay lumilitaw na may mga pag-aari na ito, hindi bababa sa sa ilalim ng pagpapalagay na ang karamihan sa mga minero ay nananatiling tapat, na kung ano ang gantimpala ng bloke kasama ang patunay ng trabaho na sinusubukang magbigay ng insentibo.

Mayroong maraming iba pang mga algorithm na maaaring magamit upang mapanatili ang pinagkasunduan sa mga distributed system tulad ng:

  • Katibayan ng Stake
  • Katibayan ng Panahon ng Barya
  • Katibayan ng Deposito
  • Katibayan ng Paso
  • Patunay ng Aktibidad
  • Patunay ng Lumipas na Panahon
  • Federated Consensus
  • Praktikal na Byzantine Fault Tolerance

Lumilikha ang mga ito ng iba't ibang modelo ng seguridad – ang pinaka-halatang pagkakaiba mula sa patunay ng trabaho ay ang bawat isa sa mga alternatibong sistema ay hinihimok sa gastos ng mga panloob na mapagkukunan (mga barya o reputasyon) sa halip na mga panlabas na mapagkukunan (kuryente.) Lumilikha ito ng ibang-iba na hanay ng mga insentibo para sa (at nagtitiwala sa) mga validator sa network na lubhang nagbabago sa modelo ng seguridad.

Mga hindi pagkakaunawaan sa modelo ng seguridad

Ang isang karaniwang maling palagay ay mayroong isang mahusay na tinukoy na modelo ng seguridad para sa Bitcoin.

Sa katotohanan, ang Bitcoin protocol ay ginawa at ginagawa nang walang pormal na tinukoy na detalye o modelo ng seguridad. Ang pinakamahusay na magagawa natin ay pag-aralan ang mga insentibo at pag-uugali ng mga aktor sa loob ng system upang mas maunawaan at subukang ilarawan ito.

Iyon ay sinabi, mayroong ilang mga katangian ng Bitcoin protocol na madalas na nasuri nang hindi tama.

Ang ilang mga blockchain ay nagdusa nang husto mula sa mga pag-atake na idinagdag ng mga developer centrally broadcasted signed checkpoints sa node software, mahalagang sinasabi na "ang block X ay napatunayan ng mga developer bilang nasa tamang makasaysayang chain." Ito ay isang punto ng matinding sentralisasyon.

Ito ay nagkakahalaga na tandaan na ang Bitcoin ay mayroon 13 hard-coded checkpoints, ngunit hindi nila binabago ang modelo ng seguridad sa paraang ginagawa ng mga naka-broadcast na checkpoint. Ang huling checkpoint ay idinagdag sa Bitcoin CORE 0.9.3 at nasa block 295000, na ginawa noong Abril 9, 2014. Ang block na ito ay nagkaroon ng kahirapan na 6,119,726,089 na mangangailangan ng humigit-kumulang:

6,119,726,089 * 248 / 65535 = 2.62 * 1019 na mga hash

2.62 * 1019 hash * 0.1 J / 109 hash = 2.62 * 109 joules

2.62 * 109 joules = 728 kw na oras * $0.10 kw/oras = $73 halaga ng kuryente para makabuo

Kaya, kung ganap na napapalibutan ng isang Sybil attacker ang isang bagong node na nagsi-sync mula sa simula, maaari itong lumikha ng ilang maiikling blockchain sa mababang taas nang halos walang gastos, ngunit hanggang sa iba't ibang checkpointed blocks lamang.

Kung nahahati nito ang isang node sa network na nag-sync sa nakalipas na block 295,000, magagawa nitong simulan ang pagpapakain ng mga maling bloke sa halagang $73 bawat bloke, hindi bababa sa hanggang sa magkaroon ito ng kahirapan sa muling pagsasaayos. Gayunpaman, habang mas naka-sync ang node ng biktima, mas malaki ang magiging gastos para sa attacker na lumikha ng isang chain na may mas pinagsama-samang trabaho.

pareho Greg Maxwell at Pieter Wuille nagpahayag na umaasa silang balang araw ay ganap na alisin ang mga checkpoint. Binanggit ni Bitcoin CORE lead maintainer na si Wladimir van der Laan na ang mga checkpoint ay a patuloy na pinagmumulan ng kalituhan sa mga taong naghahangad na maunawaan ang modelo ng seguridad ng bitcoin.

Maaaring gumawa ng argumento na nangangahulugan ito na ang isang buong node ay "nagtitiwala" sa mga CORE devs hinggil sa bisa ng kasaysayan ng blockchain hanggang ika-9 ng Abril, 2014, ngunit sinusuri pa rin ng node ang Merkle hash sa header ng bawat bloke, ibig sabihin, ang pagiging maayos ng kasaysayan ng transaksyon ay sinisiguro pa rin ng patunay ng trabaho. Ang mga lumang checkpoint na ito paganahin ang pagtaas ng pagganap (nilaktawan ang pag-verify ng lagda) noong una ay nagsi-sync ng makasaysayang blockchain, kahit na ang pagpapakilala ng libsecp256k1 ay ginawa ang hindi gaanong makabuluhan ang pagkakaiba sa pagganap.

Nananatili ang mga checkpoint

sa lugar para sa tatlong layunin:

  • Upang maiwasan ang mga node mula sa na napuno ang kanilang memorya na may wasto ngunit mababang proof-of-work block header
  • Nilaktawan ang mga lagda sa mga naunang bloke (pagpapabuti ng pagganap)
  • Upang matantya ang pag-unlad ng pag-sync

Habang isinusulat ang artikulong ito Greg Maxwell iminungkahi na palitan ang mga checkpoint may a pinagsama-samang pagsusuri sa trabaho sa halip. Kapag ang isang node ay may chain na naglalaman ng higit sa 5.4 * 1024 na mga hash na gumanap, ang mga chain na may mas kaunting pinagsama-samang trabaho ay tatanggihan. Kasabay ito ng dami ng gawaing isinagawa hanggang sa humigit-kumulang block 320,000 noong Setyembre 2014, kung saan ang mga indibidwal na bloke ay nahihirapan ~27,000,000,000.

kahirapan-3

Ang mga bloke ng pagmimina sa kahirapan ng 27,000,000,000 ay mangangailangan ng humigit-kumulang

27,000,000,000 * 248 / 65535 = 1.16 * 1020 na mga hash

1.16 * 1020 hash * 0.1 J / 109 hash = 1.16 * 1010 joules

1.16 * 1010 joules = 3,222 kw na oras * $0.10 kw/oras = $322 na halaga ng kuryente bawat bloke

Kaya, sa iminungkahing pagbabagong ito, kung ganap na napapalibutan ng isang Sybil attacker ang isang bagong node na nagsi-sync mula sa simula, magagawa nitong simulan ang pagpapakain ng mga maling bloke simula sa anumang bloke pagkatapos ng simula nang karaniwang walang gastos. Kung ganap na napapalibutan ng isang Sybil attacker ang isang node na nag-sync sa nakalipas na block ~320,000 maaari itong magsimulang magpakain ng false chain mula sa puntong iyon sa halagang $322 bawat block.

Sa madaling sabi, alinman sa pagsuri para sa pag-secure ng paunang pag-sync ng node ay medyo mura sa pag-atake kung ang isang entity ay makakakuha ng kumpletong kontrol sa koneksyon sa Internet ng iyong node; kung T nila magagawa, kung gayon ang node ay madaling i-dismiss ang mga bloke ng umaatake.

Sa isang kaugnay na tala, ang bawat blockchain system ay mayroon nito genesis block hard coded sa node software. Maaari mong ipangatuwiran na mayroong isang social na kontrata sa "nakabahaging kasaysayan" na ang ledger - kapag ang isang bloke ay sapat na, may pagkakaunawaan sa gitna ng lahat sa network na hindi na ito maibabalik. Dahil dito, kapag ang mga developer ay kumuha ng isang napakalumang bloke at lumikha ng isang checkpoint mula dito, ito ay ginagawa nang higit pa bilang isang napagkasunduang pagsusuri sa katinuan sa halip na bilang isang pagdidikta ng kasaysayan.

Bilang karagdagan sa mga checkpoint, mayroon ding usapin kung paano mag-bootstrap ang isang node mismo. Ang kasalukuyang proseso para sa mga Bitcoin node ay upang tingnan kung mayroon itong lokal na database ng mga kapantay na dati nitong natutunan. Kung hindi, magtatanong ito ng isang set ng "DNS Seeds" na hard-coded sa software. Ang mga buto na ito ay nagpapanatili ng isang listahan ng mahusay na konektadong mga Bitcoin node na ibinabalik nila sa iyong node.

Tulad ng nakikita natin mula sa code, ang Bitcoin CORE 0.13 ay kasalukuyang gumagamit ng DNS Seeds na pinapatakbo nina Pieter Wuille, Matt Corallo, Luke Dashjr, Christian Decker, Jeff Garzik, at Jonas Schnelli. Kahit sino ay maaaring magpatakbo ng DNS seed sa pamamagitan ng paggamit ng Pieter Wuille's bitcoin-seeder software o Ang software ni Matt Corallo, bagama't para magamit ito ng mga bagong node kailangan mong kumbinsihin ang mga developer ng ONE sa buong pagpapatupad ng node na idagdag ang iyong DNS seed host sa kanilang software.

Maaaring muli itong tila isang punto ng matinding sentralisasyon na ang proseso ng bootstrapping para sa isang bagong node ay umaasa sa anim na DNS seeds lamang. Alalahanin na ang modelo ng seguridad ng bitcoin ay nangangailangan lamang na kumonekta ka sa isang tapat na peer upang makayanan ang mga pag-atake ng Sybil.

Dahil dito, kailangan lang ng isang bagong node na makakonekta sa isang DNS seed na T nakompromiso at nagbabalik ng mga IP address ng mga tapat na node. Gayunpaman, mayroong isang pagbagsak kung sa ilang kadahilanan ang lahat ng mga buto ng DNS ay hindi maabot – a hard-coded na listahan ng mga maaasahang node IP address na iyon na-update para sa bawat paglabas.

Ang modelo ng seguridad para sa iba't ibang mga parameter ng pagsisimula na ito ay hindi dahil ang buong node operator ay nagtitiwala sa mga X DNS seed o Y CORE na mga developer na pakainin sila ng tapat na data, ngunit sa halip na hindi bababa sa 1 / X DNS seeds ay hindi nakompromiso o 1 / Y CORE developer ay tapat tungkol sa sinusuri ang bisa ng mga hard-coded na pagbabago ng peer.

Walang ganap na ligtas

Sa mas malalim na antas, kapag nagpatakbo ka ng isang buong node, malamang na nagtitiwala ka sa hardware at software na iyong pinapatakbo sa isang tiyak na lawak.

May mga paraan upang i-verify ang software sa pamamagitan ng pagsuri sa mga lagda ng iyong binary laban sa mga van der Laan, ngunit malamang na maraming tao ang nag-abala na dumaan sa prosesong ito. Tulad ng para sa mapagkakatiwalaang hardware, iyon ay isang mahirap na problema. Ang pinakamalapit na malamang na makarating ka sa isang secure na solusyon sa hardware ay katulad nito ORWL, na garantisadong "mawawasak sa sarili" kung sinuman ang magtangkang pakialaman ito.

ORWL hardware
ORWL hardware

Gayunpaman, dahil ang mga arkitektura ng hardware para sa mga CPU, RAM at iba pang mahalagang hardware ay may posibilidad na pagmamay-ari, hindi ka maaaring maging 100% sigurado na T sila nakompromiso.

Ang balanse ng kapangyarihan ng Bitcoin

Ang tubig ay nagiging mas malabo kapag sinimulan mong siyasatin ang relasyon sa pagitan ng iba't ibang kalahok sa system.

Ang layunin ng pagpapatakbo ng isang buong node ay upang protektahan ang iyong pinansiyal na soberanya. Sa pangkalahatan, nangangahulugan ito na sa pamamagitan ng pag-install at pagpapatakbo ng isang partikular na bersyon ng software, pumapasok ka sa isang kasunduan na susundin mo ang mga patakaran ng software na iyon at ang lahat ng gumagamit ng network ay dapat ding sumunod sa kanila.

Dahil dito, kung gusto ng mga tao na baguhin ang mga panuntunan sa paraang hindi tugma sa likod, dapat kang tahasang sumang-ayon sa pagbabago ng panuntunan sa pamamagitan ng pagpapatakbo ng bagong bersyon ng software. Sa kabilang banda, maaaring ipatupad at ipatupad ang mga pagbabago sa panuntunang katugma sa pabalik nang wala ang iyong pahintulot.

Isang napakasimpleng paglalarawan ng power dynamics sa Bitcoin:

[embed]https://twitter.com/lopp/status/786241843436544002[/embed]

Mahalagang tandaan na ang buong node software ay hindi awtomatikong ina-update ang sarili nito, at ito ay ayon sa disenyo. Ang mga awtomatikong pag-update ay lubos na maglilipat ng balanse ng kapangyarihan sa mga developer, na magbibigay-daan sa kanila na puwersahin ang mga pagbabago sa panuntunan sa mga node at minero nang walang pahintulot nila.

Sa kasamaang-palad, habang ang isang pagbabago sa panuntunan ay maaaring teknikal na pabalik na tugma, Learn namin sa paglipas ng mga taon na ang sapat na malikhaing soft forks ay maaaring aktwal na magpatupad ng mga pagbabago na malinaw na wala sa layunin ng nakaraang bersyon ng mga panuntunan. Vitalik Buterin ipinakita ito na may isang paglalarawan ng isang paraan upang malambot na tinidor ang block time ng bitcoin mula 10 minuto hanggang 2 minuto, na siyempre ay magpapabilis din sa iskedyul ng paglabas ng mga bagong bitcoin.

Mayroong ONE trump card na mayroon ang buong node upang labanan ang mga hindi gustong malambot na tinidor ay ang hard fork palayo sa mga minero na nagpatupad ng soft fork. Ito ay mahirap gawin (sa pamamagitan ng disenyo) at itinaas ang maraming mga katanungan tungkol sa pagsukat ng consensus at paghahanap ng mga ekonomikong mahalagang node.

Sa teknikal, maaari itong gawin sa pamamagitan ng pagpapalit ng algorithm ng minero mula sa dobleng SHA256 patungo sa ibang hash function, sa gayon ay nagiging walang silbi ang lahat ng SHA256 ASIC para sa pagmimina ng mga bitcoin. Ito ay para sa kadahilanang ito na ang mga operator ng node ay dapat manatiling mapagbantay sa mga pagbabago sa ecosystem at paalalahanan ang mga minero na maaari silang palitan kung lumampas sila sa kanilang awtoridad.

Maraming teorya ng laro ang kasangkot sa pagtalakay sa mga operasyon ng mga minero at ang kanilang banta sa seguridad ng bitcoin, at nag-isip ako kung paano maaaring magbago ang ecosystem ng pagmimina sa isang nakaraang artikulo. Habang ang pagmimina ng Bitcoin ay mas sentralisado kaysa sa gusto ng karamihan sa atin, ito ay tila gumagana pa rin dahil ang mga minero ng Bitcoin ay may maraming kapital na ipinuhunan – T nila maaaring ipagsapalaran na sirain ang kanilang pamumuhunan sa pamamagitan ng pagkilos na may malisya sa isang sistema kung saan ang lahat ay nanonood.

Seguridad ng SPV

Maraming gumagamit ng Bitcoin ang gumagamit ng isang magaan na kliyente upang ma-access ang network sa halip na isang buong node dahil nangangailangan ito ng mas kaunting mapagkukunan habang nagbibigay pa rin ng malakas na seguridad.

Ang isang kliyenteng gumagamit ng Simplified Payment Verification (SPV) ay nagda-download ng kumpletong kopya ng mga header para sa lahat ng block sa buong chain. Nangangahulugan ito na linearly ang sukat ng mga kinakailangan sa pag-download at storage sa dami ng oras mula noong naimbento ang Bitcoin . Ito ay inilarawan sa seksyon 8 ng Bitcoin whitepaper.

screen-shot-2016-11-11-sa-9-12-35-am
screen-shot-2016-11-11-sa-9-12-35-am

Isinulat ni Satoshi na ang isang kliyente ng SPV ay "T masuri ang transaksyon para sa kanyang sarili, ngunit sa pamamagitan ng pag-link nito sa isang lugar sa chain, makikita niya na tinanggap ito ng isang network node, at idinagdag ang mga bloke pagkatapos nitong kumpirmahin na tinanggap ito ng network." Ipinapalagay ng SPV na ang isang transaksyong X blocks deep ay magastos sa panday.

Mukhang nag-aalok ang SPV ng mga katulad na garantiya bilang buong seguridad ng node, ngunit may karagdagang pagpapalagay na ang anumang bloke na may wastong header at patunay ng trabaho ay palaging naglalaman ng mga wastong transaksyon. Dahil T sinusuri ng mga kliyente ng SPV ang lahat ng mga tuntunin ng pinagkasunduan na nakasaad sa unang seksyon ng artikulong ito, ginagawa nila ang pagpapalagay na ang mga panuntunan sa pinagkasunduan ay sinusuri ng (mga) node kung saan sila Request ng mga transaksyon.

Ang isang karagdagang, maliit na pagkakaiba sa seguridad ay nagsasangkot ng pagpigil ng impormasyon sa iyo ng mga kasamahan. Kapag nagpapatakbo ka ng isang buong node, maaaring pigilan ng mga kapantay ang mga hindi kumpirmadong transaksyon at pag-block mula sa iyo. Gayunpaman, kapag nakatanggap ka ng block mula sa sinumang peer, hindi posible para sa sinuman na pigilan ang mga transaksyon sa block na iyon mula sa iyo. Sa kabilang banda, posible para sa isang peer na magbigay ng block header sa isang SPV client at pagkatapos ay itago ang impormasyon tungkol sa mga transaksyon sa block na iyon.

Ang mga kliyente ng SPV ay maaaring gumawa ng isang query upang Learn ang impormasyon tungkol sa mga transaksyon na nakakaapekto sa isang tiyak na address at habang ito ay magastos para sa mga kapantay na magsinungaling sa kanila tungkol sa pagkakaroon ng mga pekeng nakumpirma na mga transaksyon (ay mangangailangan ng pagmimina ng isang bloke na may sapat na PoW) maaari silang magsinungaling sa pamamagitan ng pag-aangkin ng pagtanggal na walang mga resulta para sa bloom filter na ginamit mo upang mag-query para sa mga transaksyon. Dapat ding tandaan na ang SPV ay napakalubha nasira mula sa pananaw sa Privacy dahil sa mga bahid na may mga bloom filter.

Ang BitcoinJ ay mayroong mahusay na pagsulat ng modelo ng seguridad ng SPV. Tungkol sa mga hindi kumpirmadong transaksyon, tandaan nila:

"Sa SPV mode, ang tanging dahilan kung bakit kailangan mong paniwalaan na ang transaksyon ay wasto ay ang katotohanan na ang mga node na iyong ikinonekta sa relayed ang transaksyon. Kung ang isang attacker ay maaaring matiyak na ikaw ay konektado sa kanyang mga node, ito ay nangangahulugan na sila ay makakain sa iyo ng isang transaksyon na ganap na hindi wasto (gumastos ng hindi umiiral na pera), at ito ay tatanggapin pa rin na parang ito ay wasto."

Ang seguridad ng SPV ay malamang na "sapat na mabuti" para sa karaniwang gumagamit, bagama't maaari itong mapabuti sa pamamagitan ng Mga Patunay ng Panloloko ng SPV. Nagkaroon na ilang talakayan ng konseptong ito ngunit walang ipinatupad mga panukala para sa pagbuo ng mga ito sa protocol.

Walang lugar tulad ng 127.0.0.1

Kung T ka nagpapatakbo ng isang buong node (at aktwal na ginagamit ito upang patunayan ang mga transaksyon) pagkatapos ay nag-outsourcing ka ng hindi bababa sa ilang antas ng tiwala sa mga ikatlong partido, na nagreresulta sa ibang modelo ng seguridad para sa iyong paggamit ng Bitcoin. Tandaan na hindi nito kailangang kailanganin na ang lahat ng user at negosyo ay bumuo ng kanilang software nang direkta sa ibabaw ng RPC API ng Bitcoin Core.

Ang ilang kahaliling configuration ng imprastraktura ay maaaring kabilang ngunit hindi limitado sa:

1) Paggamit ng mobile wallet tulad ng Bitcoin Wallet para sa Android, GreenAddress, o Itago na nagbibigay-daan sa iyong i-configure ang wallet upang i-query lang ang sarili mong buong node.

btc-security-graphic
btc-security-graphic

2) Bumuo ng mga app sa itaas ng mga library ng SPV node gaya ng BitcoinJ at i-configure ang mga ito upang kumonekta lamang sa mga full node na pinapatakbo mo. Sa BitcoinJ ito ay maaaring magawa sa pamamagitan ng pagtukoy sa iyong sarili SeedPeers na ipapasa mo sa iyong PeerGroup sa panahon ng pagsisimula. Sa libbitcoin maaari mong tukuyin ang isang koneksyon sa network sa isang partikular na node gamit ang halimbawang ito.

3) Pagbuo ng proxy server na tugma sa JSON-RPC API ng Bitcoin Core na nagpapadala ng ilang tawag sa mga serbisyo ng third party ngunit awtomatiko ring bini-verify ang data na ibinabalik nila sa pamamagitan ng pagtawag sa lokal na full node. Para sa isang halimbawa, tingnan BitGoD software ng BitGo. Ang hybrid na modelong ito ay maaaring magbigay sa iyo ng pinakamahusay sa parehong mundo: maaari mong gamitin ang mga advanced na feature na inaalok ng mga third party habang pinapanatili pa rin ang iyong pinansiyal na soberanya.

Buong node para sa kalayaan

Malinaw na ang pagpapatakbo ng iyong sariling buong node ay nag-aalok ng higit na seguridad na may pinakamaliit na kinakailangang pagpapalagay. Dahil maaari kang bumuo ng isang computer na may kakayahang magpatakbo ng isang maaasahang buong node para lamang sa ilang daang dolyar, gawin ang matematika at tukuyin kung ang pag-secure ng iyong pinansiyal na soberanya ay katumbas ng halaga.

Salamat kina Kristov ATLAS, Eric Martindale, Andrew Miller, at Kiara Robles sa pagsusuri at pagbibigay ng feedback para sa artikulong ito.

Itinatampok na larawan sa pamamagitan ng Dan Nott para sa CoinDesk. Iba pang mga larawan bilang naka-caption.

Jameson Lopp

Si Jameson Lopp ang CTO at co-founder ng Casa, isang self custody service. Isang cypherpunk na ang layunin ay bumuo ng Technology na nagpapalakas sa mga indibidwal, siya ay nagtatayo ng multisignature Bitcoin wallet mula noong 2015. Bago itinatag ang Casa, siya ang nangungunang inhinyero ng imprastraktura sa BitGo. Siya ang nagtatag ng Bitcoin Special Interest Group ng Mensa, ang Triangle Blockchain at Business meetup at ilang open source na proyekto ng Bitcoin . Sa buong panahong ito, nagtrabaho siya upang turuan ang iba tungkol sa kung ano ang natutunan niya sa mahirap na paraan habang nagsusulat ng mahusay na software na maaaring makatiis sa parehong mga kalaban at hindi sopistikadong mga end user.

Jameson Lopp