Share this article

Pagsamahin ang Pag-iwas: Mga Teknik sa Pagpapahusay ng Privacy sa Bitcoin Protocol

Tinatalakay ng Bitcoin CORE Developer na si Mike Hearn ang mga pagtagas sa Privacy at isang bagong pamamaraan na pinangalanan niyang 'merge avoidance'.

Mike Hearn ay isang software developer na nagtatrabaho sa Bitcoin CORE development team at gayundin sa Google. Sa artikulong ito, tinatalakay ni Mike ang ilang pagtagas sa Privacy ng Bitcoin , at isang bagong pamamaraan na kasalukuyang walang pangalan, ngunit tinatawag niyang pagsamahin ang pag-iwas.

Panimula sa Privacy ng Bitcoin

Ito ay isang kapus-palad na katotohanan na, sa kabila ng reputasyon ng bitcoin sa press, ang mga gumagamit nito ay kasalukuyang naglalabas ng malaking halaga ng personal na impormasyon.

Story continues
Don't miss another story.Subscribe to the Crypto for Advisors Newsletter today. See all newsletters

Napakadali para sa isang tao na Learn ang tungkol sa iyong balanse, kasaysayan ng kalakalan at higit pa. Ang pagprotekta sa impormasyong ito ay isang pangunahing tungkulin ng anumang kapaki-pakinabang na sistema ng pananalapi.

Narito ang isang dakot ng mga tagas na lumalabas sa pang-araw-araw na paggamit.

Muling paggamit ng address

Maraming problema sa Privacy sa Bitcoin ang sanhi ng pag-aaral ng kalaban kung saan ang mga output ay pagmamay-ari ng parehong wallet. Kung makalkula mo ito, matutuklasan mo ang balanse ng mga wallet at posibleng kung kanino ito nakipagkalakalan.

Ang pinakakaraniwang paraan na nangyayari ito ay kapag ang mga address ay muling ginagamit. Madaling maunawaan ito dahil ang mga sikat na site tulad ng mga output ng index ng blockchain.info at mga transaksyon ayon sa address, na nagbibigay-daan sa iyong mabilis na hanapin ang lahat ng mga transaksyon na tumutukoy sa anumang ibinigay na address.

Ang muling paggamit ng address ay may maraming iba't ibang dahilan. Narito ang isang sampling:

1. Mga problema sa wallet ng end-user

Ang bitcoinj library ay palaging muling ginagamit ang mga address ayon sa Policy, kaya naglalabas ng maraming pribadong impormasyon. Mayroong dalawang dahilan para dito. Ang ONE ay bago ang pagbuo ng mga HD wallet, ang patuloy na paggamit ng mga susi ay magreresulta sa pagkawala ng bisa ng mga lumang backup ng wallet.

Ang Bitcoin-Qt ay may "key pool" upang subukan at tugunan ito, ngunit inilalagay lamang nito ang problema: ang key pool ay maaaring tahimik na maubos na nagbibigay ng parehong problema. Ang pagpapawalang-bisa sa mga backup ay maaaring maging sanhi ng pagkawala ng pera ng mga tao.

Kapag naipatupad na ang mga HD wallet (na kasalukuyang isinasagawa) mawawala ang problemang ito, na iiwan na lamang ang pangalawang problema ng presyon ng memorya sa mga low end na telepono. Maaaring kailanganin pa rin ang muling paggamit ng address sa mga naturang device, ngunit T dapat magkaroon ng anumang isyu ang mga high end na telepono at desktop/laptop.

2. Mga problema sa wallet ng server

Walang pampubliko, open-source na mga pagpapatupad ng wallet na sumusukat sa mga wallet na may napakaraming mga susi. Sa pagkakaalam ko, ang mga palitan at pangunahing tagaproseso ng pagbabayad ay kailangang magpatupad ng maraming custom na code upang malutas ang kakulangan ng scalability ng Bitcoin-Qt (at bitcoinj).

Pinipilit nito ang mga receiver na muling gamitin ang mga address.

3. Mga social convention

Mga taong naglalagay ng mga static na address sa mga lagda ng forum, QR code, ETC.

Sa paglipas ng panahon, kakailanganin nating sumulong sa lahat ng isyung ito para mabawasan ang muling paggamit ng address. Ang mga HD wallet at ang protocol ng pagbabayad ay mahalagang mga tool upang matulungan kaming makamit ito.

Baguhin ang mga output

merge-avoidance
merge-avoidance

Ang ONE sa mga pinaka nakakainis na pagtagas ng Privacy sa Bitcoin ay ang mga taong natututo ng mas mababang mga hangganan sa iyong balanse.

Kung paano ito gumagana ay maaaring maunawaan nang intuitive sa pamamagitan ng pagkakatulad ng cash. Gamit ang papel na pera, kung magbibigay ka ng 500 CHF note para magbayad para sa isang inumin na nagkakahalaga lamang ng 5 CHF, malalaman ng bar tender na ang iyong balanse ay hindi bababa sa 495 CHF. Maaaring mas mataas ito siyempre, ngunit hindi bababa sa hindi bababa. Ang Bitcoin ay may parehong isyu.

Ang ugat ng problemang ito ay isang hindi pagkakatugma sa pagitan ng laki ng isang pagbabayad na gusto mong gawin at ang mga barya (mga output) na magagamit mo.

Kung ang mismatch ay nasa ONE direksyon, marami kang maliliit na output at ang pagbabayad para sa anumang hindi maliliit na halaga ay magsisimulang magastos ng malaki sa mga bayarin, dahil napakalaki ng mga transaksyong nabuo mo.

Kung ang mismatch ay nasa kabilang direksyon kung gayon upang magbayad para sa isang maliit na bagay ay nangangailangan ng paggamit ng isang malaking barya, at ang output ng pagbabago ay naglalabas ng mahalagang data tungkol sa kung gaano ka kayaman.

Trapiko sa network

Ang mga koneksyon sa Bitcoin P2P ay hindi naka-encrypt. Ang ONE dahilan ay ang karamihan sa data na dumadaloy sa P2P network ay pampubliko, kaya ang pag-encrypt ay tila walang kabuluhan.

Ang isa pang dahilan ay dahil sa likas na katangian nito, kapag kumonekta ka sa isang P2P network ang iyong mga kapantay ay maaaring maging sinuman at ganap na gawin ang anumang bagay - halimbawa, maaari silang mga node na pinapatakbo ng NSA.

At hindi iyon isang masamang bagay! Bakit T dapat tumakbo ang NSA ng mga node? Kung may magsasabi sa kanila na huwag gawin, iyon ay magsasaad ng ilang uri ng sentral na awtoridad na nagdidikta kung sino ang magpapatakbo ng Bitcoin at kung sino ang T. T namin gusto iyon.

Kaya kapaki-pakinabang ang pag-encrypt ng data kapag mayroon kang malinaw na ideya kung sino ang dapat makakita nito at kung sino ang T dapat . Pag-encrypt ng pampublikong data sa mga random na tao na wala kang alam – hindi masyadong kapaki-pakinabang.

Sa kabila ng lahat ng iyon, mayroon pa ring apat na dahilan kung bakit makakatulong ito sa pag-encrypt ng mga koneksyon.

Ang unang dahilan ay para sa Mga filter ng Bloom.

Ito ay mga compact na representasyon ng kung ano ang nauugnay sa iyong wallet: karaniwan, kung anong mga address/key ang nasa loob nito. Ang isang filter ay ONE paraan at maaaring maging maingay, ibig sabihin, T mo maaaring basahin ang mga address nang direkta mula sa isang filter, maaari mo lamang itong ilapat sa block chain at makita kung ano ang tumutugma dito.

Ang mga filter ay maaaring magkaroon ng mga maling positibo, kaya ang isang node ay hindi makatitiyak kung ang isang address ay talagang sa iyo o hindi. Maganda iyon, ngunit kahit na may mataas na maling positibong rate, pinapaliit pa rin nito kung anong mga barya ang maaari mong pag-aari nang malaki.

Ang mga filter ng Bloom ay hindi pampublikong impormasyon, ibinabahagi lamang ang mga ito sa pagitan ng isang kliyente at ng node na kinokonekta nito. Kaya magandang itago ang mga iyon laban sa mga passive eavesdroppers, tulad ng mga taong nagbabahagi ng iyong wifi hotspot.

Ang pangalawang dahilan ay kahit na ang mga transaksyon ay pampubliko, ang kanilang pinagmulang IP address ay hindi (o hindi ito dapat).

Ngunit ang isang kalaban na makakapagmasid ng maraming mga link sa internet ay maaaring mapagkakatiwalaang makapagpasya kung saan nagsimula ang isang transaksyon sa pamamagitan ng tiyak na pagtatala ng mga oras kung kailan unang nakita ang isang transaksyon at sinusuri ang unang sandali na lumipat ito ng fiber LINK.

Tila ang ilang ahensya ng paniktik ay maaaring gumawa ng ganitong uri ng pagsusuri. Ang pag-encrypt ng mga link ay T ginagarantiyahan ang isang pag-aayos para dito dahil ang pagsusuri sa oras ay maaaring posible pa rin, ngunit tiyak na ginagawa itong mas mahirap.

Ang pangatlong dahilan na kung ang pag-encrypt ay pinagsama sa pagpapatotoo ng "trust on first use" (TOFU), magiging mas mahirap kahit para sa mga aktibong MITM na magsagawa ng mga pag-atake ng sybil sa mga wallet at magpakain sa kanila ng masamang data.

Ito ay mas mahalaga para sa mga kliyente ng SPV kaysa sa mga buong node, ngunit parehong maaaring makinabang.

Ang huling dahilan Naipatupad ba iyon nang maayos, ang paggamit ng SSL para sa mga koneksyon sa P2P ay magpapahirap sa kanila na tukuyin at i-block gamit ang mga deep packet inspection device.

CoinJoin

Sa lahat ng mga problema sa itaas, ang solusyon sa pagtagas ng data sa pamamagitan ng mga output ng pagbabago ay ONE sa mga pinaka-mainit na pinagtatalunan (bagaman maraming tao ang T nakakaalam na pinagdedebatehan nila ito).

Ang Panukala ng CoinJoin ay nakatanggap ng maraming atensyon at ilang mga paunang pagpapatupad. Ang ilang mga tao ay pangunahing nakikita ito bilang isang tool sa Privacy , at ang iba ay bilang isang paraan upang subukan at masira ang pagsubaybay sa barya.

Kapag ginamit para sa Privacy, ito ay pinakamahusay na mailarawan bilang isang paraan upang subukan at tanggalin ang impormasyon na na-leak na.

Gayunpaman, ang CoinJoin ay may ilang seryosong problema na ginagawang kanais-nais ang alternatibo.

Napakasalimuot na ipatupad nang maayos, mahina sa mga pag-atake ng sybil/DoS (madalas na pareho ang mga ito sa kontekstong ito), legal na kaduda-dudang at hindi malinaw na gumagana ang obfuscation.

Ang Pagnanakaw ng Sheep Marketplace ay nakakita ng isang tao na nag-aangkin na sumubaybay ng mga barya sa pamamagitan ng mga tumbler at mixer, at tila may kaunting tagumpay. Ang ONE sa mga tool ng tracer ay ang mga pag-atake ng sybil/DoS sa paghahalo ng mga serbisyo kaya hindi iyon isang teoretikal na alalahanin.

Bagama't ang mga pagpapatupad ng laruan ay hindi masyadong mahirap pagsama-samahin, ang mga matatag na pagpapatupad sa totoong mundo na may wastong paghawak sa timeout, mga pagsusuri sa seguridad, mahusay na pagsasama ng UI ng wallet ETC ay higit na pagsisikap.

Sa ngayon, ang blockchain.info lang ang nakagawa ng ONE (sa sharedcoin.com), at kailangan mo lang magtiwala na T ito KEEP ng mga log. Kung hindi, maaaring mag-unmix ang sinumang may mga log.

Marahil ang hindi gaanong napag-usapan na isyu ay ang karanasan ng user.

Ang isang transaksyon sa CoinJoin ay nangangailangan ng ibang mga tao na makilahok. Ang mas maraming tao na nakikibahagi, mas mabuti. Gayunpaman, kasalukuyang tumataas lamang ang Bitcoin sa halos ONE transaksyon bawat segundo.

Kahit na ang lahat ng mga transaksyon ay CoinJoined, at ang lahat ay nakipagtagpo sa isang punto (ack, centralization!), kailangan mo pa ring maghintay ng 10-15 segundo upang makakuha ng magandang hanay ng mga kalahok na makakasama.

Iyon ay upang simulan lamang ang protocol. Pagkatapos ang mga kalahok na iyon ay kailangang kunin ang transaksyon ng kandidato at lagdaan. Kung mayroon mang oras, kailangang magsimulang muli ang lahat.

Sa mahihirap na kondisyon, madaling tumagal ng isang minuto o higit pa upang makumpleto ang prosesong ito, lalo na kung ang ilang mga kalahok ay may mga patumpik-tumpik na network (ibig sabihin, mga telepono) at gumagamit ng Tor. Dahil sinusubukan naming pahusayin ang performance sa halip na bawasan ito, parang isang malaking problema iyon nang mag-isa.

Habang ang pagtaas ng trapiko at paggamit ay makakatulong na mabawasan ang isyung ito, kahit na dumoble ang trapiko, ang paghahati sa nag-iisang gitnang tagpuan ay agad na magbabalik sa mga oras ng paghihintay sa square ONE.

Maaari mong lutasin ang problemang ito sa pamamagitan ng paggawa ng CoinJoins sa background, na walang kaugnayan sa aktwal na paggastos na nagaganap.

Nalulutas nito ang problema sa paghihintay sa linya sa coffee shop, ngunit pagkatapos ay dapat bayaran ang mga bayarin sa mga transaksyong iyon, at maaaring mahirap ipaliwanag sa mga tao kung bakit biglang bumaba ang kanilang balanse sa magdamag dahil sa hindi inaasahang buwis sa Privacy .

Ang ganitong uri ng pangit na sorpresa ay gagawing hindi kaakit-akit ang Bitcoin sa mga ordinaryong gumagamit. Itinataas din nito ang tanong kung kailan at gaano kadalas ito ginagawa.

Pagsamahin ang pag-iwas

Dahil ang karaniwang ugat ng mga pagtagas sa Privacy ay isang hindi pagkakatugma sa mga laki ng magagamit na mga barya kumpara sa kung ano ang kinakailangan, tila maaari nating lapitan ang problema mula sa ibang anggulo: sa pamamagitan ng pag-iwas sa paglikha ng anumang mga pagtagas ng impormasyon na kailangang burahin sa unang pagkakataon.

Shutterstock
Shutterstock

Isaalang-alang ang kaso ni ALICE, isang manggagawa sa coffee shop na binabayaran ng suweldo.

Mahusay ang trabaho ALICE at kinikilala iyon ng kanyang amo sa isang packet na mas mataas kaysa sa normal na suweldo.

Ang kanyang katrabaho na si Bob ay naghinala na T siya nababayaran ng kasing dami ALICE at gustong malaman, kaya nakumbinsi ALICE na magbayad sa kanya ng kaunting bayad pagkatapos ng araw ng suweldo (marahil ay tumaya sila at nanalo si Bob).

Sa regular na Bitcoin, malamang na gagamitin ng wallet ni Alice ang kanyang output ng suweldo at ang pagbabago ay magbubunyag kung ano ang binabayaran sa kanya. Kahit na nakagawa na siya ng ilang mga pagbabayad, maaaring Social Media ni Bob ang sunod-sunod na mga transaksyon pabalik hanggang sa makakita siya ng isang makatwirang round looking na numero sa tamang petsa at mapagpasyahan na iyon ang malamang na kanyang pagbabayad sa suweldo.

Ang Plain CoinJoin ay T rin nakakatulong sa kanya. Maglalagay siya ng ONE malaking input sa mix, at babalik ng ONE malaking output.

Maaari siyang Request ng maraming mas maliliit na output, ngunit ang input ay magiging laki pa rin ng suweldo at sa tamang petsa. Maliban na lang kung maraming tao na kumikita ng kasing laki ng sahod ng coffee shop na lahat ay nagkataon na nakikibahagi sa parehong transaksyon sa CoinJoin, ang pagtagas ay T naaayos.

Ang talagang kailangan niya ay iwasang magkaroon ng ganoong kalaking-isahang output sa unang lugar. Tawagin natin itong pagsama-samang pag-iwas.

Kapag siya ay nagsumite sa kanya BIP 70 Request sa pagbabayad sa kanyang tagapag-empleyo, humihiling siya ng magandang halo ng mga denominasyon, tulad ng kung siya ay bumibili ng pera sa isang foreign exchange desk.

Tinutukoy din ng Request ang isang natatanging address para sa bawat output. Hindi tinukoy ng protocol ng pagbabayad kung paano dapat matugunan ng wallet ang Request ito , ngunit pinapayagan nito ang posibilidad na magsumite ang mga nagpadala ng wallet ng maramihang independiyenteng transaksyon upang matugunan ang mga nais na output.

[post-quote]

Kung gumamit ang kanyang amo ng lumang wallet na T naiintindihan ang pag-iwas sa pagsasanib, bubuo at isusumite nito sa kanya ang isang higanteng transaksyon na maraming input (mula sa lahat ng kape) at lahat ng hinihiling niyang output.

Ito ay magiging katulad ng isang transaksyon sa CoinJoin, ngunit mayroon lamang itong isang kalahok. Gayunpaman, walang paraan upang malaman ito mula sa simpleng pagtingin sa block chain.

Kung gumagamit ang kanyang employer ng mas bagong wallet na nauunawaan ang pag-iwas sa pagsasanib, may mas magandang mangyayari — makakatanggap siya ng iba't ibang mas maliliit na transaksyon, na bawat ONE ay lumilikha ng ONE o dalawa sa mga output na hiniling niya.

Walang LINK sa alinman sa kanila. Dahil nagtitiwala siya sa kanyang amo na hindi magdodoble ng paggastos, kaya niyang ipakalat ang broadcast kaya kahit na ang timing ay hindi nagbibigay sa kanila.

Kung ang pagpili ng mga output ay pinili nang matalino, hindi siya kailanman malalagay sa isang sitwasyon kung saan siya ay may mga output na awkwardly malaki o maliit para sa isang partikular na pagbabayad. Makakakita lang si Bob ng isang maliit na transaksyon na magbubunga ng isang maliit na output ng pagbabago, at gaano man siya kalayo sa likod ay hindi siya makakahanap ng anumang output na kasing laki ng suweldo. panalo si ALICE !

Maaaring mag-leak ng data ang mga output ng pagbabago sa ibang paraan. Nabigo si Bob sa kanyang pagtatangka na Learn ang suweldo ni Alice sa pamamagitan ng pagsubaybay pabalik sa block chain, ngunit maaari pa rin niyang panoorin ang pagbabago ng output ng pagbabayad na natanggap niya upang makita kung ano ang mangyayari dito.

Kung ang pagbabago ay isasama sa ibang pagkakataon sa marami pang iba upang lumikha ng isang malaking pagbabayad, bigla niyang nalaman na ALICE ay dapat na nagmamay-ari ng hindi bababa sa ganoong kalaking pera.

Narito ang CoinJoin ay tila dapat itong gumana – kung ang pagbabago ay mapupunta sa isang halo, sino ang makapagsasabi kung sino ang nagmamay-ari ng mga output? Ngunit ito ay marupok. Kahit na ang mga output ay random na laki, sa kawalan ng pag-iwas sa pagsasanib ay muling isasama ang mga ito upang makagawa ng malaking pagbabayad.

Kung sakaling banggitin ALICE na magbabakasyon siya kasama ang kanyang kasintahan, maaaring tingnan ni Bob ang mga output ng halo na pinasukan niya at hintayin ang ilan sa mga output na muling pinagsama.

Kung ang 1/3 ng mga output ay hindi nagastos, ang 1/3 ay ginagastos nang hindi pinagsama sa anumang makabuluhang paraan, at ang isa pang 1/3 ay pinagsama sa isang $5,000 na pagbabayad sa gabi bago binanggit ALICE ang kanyang holiday, ito ay isang magandang taya na ang biyahe ay nagkakahalaga ng $5,000 sa kanya.

Mga katangian ng pagpapatupad

Ang scheme na ito ay may ilang bagay na nagpapaganda sa pagpapatupad:

  • Maaari itong isulat nang paunti-unti – ang isang simple at hindi masyadong matalinong algorithm ay maaari pa ring mapabuti ang Privacy ng isang tao . Sa ibang pagkakataon, ang isang mas mahusay na algorithm ay maaaring mabuo at ma-deploy, ngunit T ito nangangailangan ng anumang kumplikadong pandaigdigang pag-upgrade. Tamang-tama ito para sa modelo ng pag-develop ng mga boluntaryo na hinimok ng mga fit-and-spurts, nakikipagkumpitensya-wallet na mayroon ang Bitcoin .
  • Ito ay napaka-simple at walang gumagalaw na bahagi o malalaking makina ng estado. T mo kailangang mag-alala tungkol sa isang random na mobile phone sa kabilang panig ng mundo na nagmamaneho sa isang tunnel sa maling sandali, o nagpapatakbo ng isang buggy reimplementation ng software.
  • Walang sentralisasyon, kahit na anumang lumilipas na mga server ng pagtatagpo.
  • Walang mga legal na panganib, dahil hindi ka umaasa sa anumang mga serbisyong maaaring ituring na mga tool sa money laundering.
  • Ito ay matatag. Sa itaas, nagbigay ako ng mga halimbawa kung paano maaaring gumana ang CoinJoin, ngunit tumutulo pa rin sa pagkakaroon ng napakakaunting karagdagang impormasyon. Ang pag-iwas sa pagsasama ay T ganoong problema.

Mayroon ding ilang mga downsides:

  • Kung gaano kahusay ang iyong Privacy ay nakadepende nang husto sa kung gaano katalino ang mga taong nagpapadala sa iyo ng mga transaksyon sa pera. Kaya, umaasa ang iyong Privacy sa mga taong maaaring walang gaanong insentibo na gumawa ng anuman tungkol dito. Sana ay gagawin ng karaniwang wallet software ang tamang bagay bilang default.
  • Pinapataas nito ang bilang ng mga transaksyon, kahit na ang overhead ay hindi kasing taas ng iniisip mo – ang isang transaksyon ay isang listahan lamang ng mga input, output at isang header na may dalawang field (bersyon at oras ng pag-lock). Ang mga input at output ay hindi talaga nababago sa isang mahusay na pagpapatupad ng CoinJoin, at ang bersyon/locktime ay madaling ma-compress/varint na naka-encode upang makatipid ng espasyo. Ang pagkakaiba ay nasa pagkakasunud-sunod ng mga byte kaysa sa mga kilobytes.
  • Umaasa ito sa protocol ng pagbabayad. Ngunit maraming bagay ang umaasa diyan, at ang protocol ng pagbabayad ay kritikal sa crackdown sa muling paggamit ng address, na kinakailangan para gumana pa rin ang lahat ng iminungkahing mga scheme sa Privacy . Mahalagang gawin natin ang BIP70 bilang madali at laganap hangga't maaari.

Ang pag-iwas sa pagsasama ay T nakakasagabal sa pagsubaybay sa barya. Maaaring naisin ng ilang tao na ipatupad ang mga sistema ng CoinJoin para sa kadahilanang iyon lamang.

Gayunpaman, T ko maisip na magiging laganap ito. Kung ang Privacy ng mga tao ay pinoprotektahan sa pamamagitan ng iba pang paraan, ang CoinJoin ay magiging isang “tumulong sa mga magnanakaw na itago ang kanilang ninakaw na pera” na sistema na nagpapababa ng insentibo upang makilahok, nagpapataas pa ng legal na panganib at makapagpapaisip sa mga tao kung bakit hinihiling sa kanila ng kanilang mga wallet app na magbayad ng mga bayarin para lamang maprotektahan ang mga taong sa tingin nila ay masama.

Bukod, ang Insidente sa Sheep Marketplace ay nagpapakita na ang desentralisadong paglaban sa krimen bilang isang pamamaraan ay minsan ang tanging opsyon: walang hihiling sa pulisya na tumulong na mabawi ang kanilang ninakaw na pera sa droga, at walang gobyerno ang mag-aabala sa pagtulong kung gagawin nila.

Ang artikulong ito ay orihinal na nai-publish sa Katamtaman

Larawan sa Privacy ng Keyboard sa pamamagitan ng Shutterstock

Mike Hearn

Si Mike Hearn ay isang software developer na dalubhasa sa low level system software. Dati siyang nagtrabaho para sa Google, at ngayon ay nakatuon siya sa Bitcoin virtual currency system.

Picture of CoinDesk author Mike Hearn