Spoji Izbjegavanje: Tehnike za poboljšanje privatnosti u Bitcoin protokolu | BS.democraziakmzero.org

Spoji Izbjegavanje: Tehnike za poboljšanje privatnosti u Bitcoin protokolu

Spoji Izbjegavanje: Tehnike za poboljšanje privatnosti u Bitcoin protokolu

Mike Hearnis programer koji radi na razvoju tim Bitcoin Core, kao i na Google-u. U ovom članku, Mike govori o nekim Bitcoin curenja privatnosti i novu tehniku ​​koja trenutno ne imati ime, ali koji on naziva izbjegavanje spajanja.

Uvod u bitcoin privatnost

To je nesretna činjenica da je, bez obzira na ugled Bitcoin u štampi, korisnici trenutno curenja velike količine osobnih podataka.

To je uznemirujuće lako za nekoga da se upoznaju sa ravnotežu, trgovinu povijest i više. Zaštita ova informacija je osnovna funkcija bilo kakav koristan finansijskog sistema.

Evo nekoliko curenja koje pojavljuju u svakodnevnu upotrebu.

Adresa ponovnu upotrebu

Mnogi problemi privatnost u Bitcoin uzrokovane učenja protivnika koji izlazi su u vlasništvu iste novčanik. Ako možete izračunati ovo, možete otkriti ravnotežu novčanike i eventualno koji ga trguje.

Najčešći način se to dogodi kada se ponovo koriste adrese. To se lako razumljiva jer popularne lokacije kao blockchain.info indeks izlaza i transakcije prema adresi, što vam omogućava da brzo pogledati sve transakcije, koje upućuju bilo koju adresu.

Adresa ponovnu upotrebu ima mnogo različitih uzroka. Evo uzorkovanja:

1. Krajnjeg korisnika problema novčanik

Biblioteka bitcoinj uvijek ponovo koristi adresama politikom, tako curi puno privatnih informacija. Postoje dva razloga za to. Jedan od njih je da će prije razvoja HD novčanike, stalno koriste se tipke dovesti do poništavanja starih novčanik backup.

Bitcoin-Qt ima "ključ pool" da pokuša i rješavanje ovog, ali to samo stavlja problem off: ključ bazen može biti tiho iscrpljena daje isti problem. Nevažećom backup može uzrokovati da ljudi gube novac.

Jednom HD novčanici sprovode (koja je u toku) ovaj problem neće nestati, ostavljajući samo drugi problem memorije pritiska na low-end telefone. Adresa ponovnu upotrebu i dalje može biti potrebno na takvim uređajima, ali više kraj telefona i desktop / laptopi ne bi trebalo da naiđete na probleme.

2. Problemi Server novčanik

Nema javnih, open-source novčanik implementacijama da skalira na novčanike s vrlo velikim brojem ključeva. Koliko ja znam, razmjene i velikih procesora plaćanja su svi morali implementirati puno prilagođeni kod za rad oko nedostatka skalabilnost Bitcoin-Qt (i bitcoinj).

Ovo stavlja pritisak na prijemnicima ponovno koristiti adrese.

3. Socijalni konvencija

 Ljudi stavljanje statičke adrese u forum potpisa, QR kodova, itd

Tokom vremena, trebat će nam da se napredak u svim ovim pitanjima kako bi se smanjila adresu ponovnu upotrebu. HD novčanika i protokola plaćanja su važno sredstvo da nam pomognu to postigne.

Promjene izlaza

Jedan od najvažnijih iritantan curenja privatnost u Bitcoin je ljudi koji uče donju granicu na ravnotežu.

Kako to radi može se shvatiti intuitivno preko analogija gotovine. Uz papirni novac, ako preda 500 CHF napomenu da plati za piće košta samo 5 CHF, bar tender uči da je vaš saldo je najmanje 495 CHF. To može biti i veći, naravno, ali to je barem ne niže. Bitcoin ima isti problem.

Osnovni uzrok ovog problema je nesklad između veličine plaćanje želite napraviti i kovanice (izlaza) na raspolaganju.

Ako je neslaganje je u jednom smjeru, imate puno malih izlaza i isplate za bilo koje ne-male količine počinje da košta mnogo u taksi, jer je transakcija koje stvaraju su ogromne.

Ako je neusklađenost je u drugom pravcu onda da plati za mala stvar zahtijeva korištenje velike novčić, a izlaz promjene curenje vrijednih podataka o tome koliko bogat si.

Mrežnog prometa

Bitcoin P2P veze su u nezaštićenom obliku. Jedan od razloga je da je većina podataka teče preko P2P mreža javnosti, tako enkripciju čini besmisleno.

Drugi razlog je da po samoj svojoj prirodi, kada se povežete P2P mreže vašeg vršnjaka može biti apsolutno nikoga i ne rade apsolutno ništa - na primjer mogu biti čvorova vodi NSA.

A to nije ni loša stvar! Zašto ne bi trebalo da NSA radi čvorova? Ako je neko da im kažem da ne, to bi značilo neku vrstu centralnog autoriteta koji je diktirao koji solidno za pokretanje Bitcoin, a ko ne. Mi to ne želimo.

Dakle, kriptiranje podataka je korisno kada imate jasnu ideju o tome ko treba da ga vide i koji ne bi trebalo. Kriptiranje javnih podataka slučajnim ljudima kojima ste ništa znati o - ne toliko koristan.

Uprkos svemu tome, i dalje postoje četiri razloga zbog kojih bi pomoći da šifriranje veze.

Prvi razlog je za Bloom filtera.

Ovi su kompaktni predstave ono što je relevantno za novčanik: obično, što se odnosi / Ključevi su u njemu. Filter je jedan od načina i može biti bučan, to jest, ne možete pročitati adrese izravno iz filtera, možete primijeniti samo da blok lanac i vidim kako to odgovara.

Filteri mogu imati lažno pozitivnih rezultata, tako da čvor nikada ne može biti siguran da li je adresa zaista tvoj ili ne. To je prilično dobro, ali čak i uz visoku stopu lažno pozitivnih i dalje sužava što novčiće možda imate prilično masovno.

Bloom filteri nisu javne informacije, oni samo dijele između klijenta i čvora ga povezuje. Tako da bi bilo dobro da se sakrije one protiv pasivnog prisluškivaĉa, kao i ljudi koji dele svoj wifi hotspot.

Drugi razlog je da, iako transakcije su javni, svoje porijeklo IP adresa nije (ili se to ne bi trebalo da bude).

Ali protivnik koji može posmatrati puno internet linkova mogao prilično pouzdano odlučiti gdje transakcije započeo upravo snimanje puta kada je transakcija je prvi put viđena i ispitivanje prvog trenutka je u tranzitu link vlakana.

Čini se kao neki obavještajne agencije mogao ovu vrstu analize. Kriptiranje veze ne garantuje fix za to, jer tajming analiza može biti moguće, ali svakako otežava.

Treći razlog je da ako enkripcija je u kombinaciji sa "povjerenje na prve upotrebe" (TOFU) autentifikaciju, to bi bilo teže, čak i za aktivan MITMs za obavljanje Sybil napade na novčanike i hrane ih loše podatke.

Ovo je važnije za SPV klijenata nego punu čvorova, ali oba mogu imati koristi.

Konačni razlog je da pravilno implementiran, koristeći SSL za P2P veze bi ih teže identificirati i blokirati koristeći deep packet inspection uređajima.

CoinJoin

Svih problema gore, rješenje curi podataka preko izlaza promjena je jedan od najvažnijih žestoko raspravlja (iako mnogo ljudi ne shvataju oni raspravljaju o njemu).

U CoinJoin proposalhas dobio mnogo pažnje i neke početne implementacije. Neki ljudi to vide prvenstveno kao alat za privatnost, a drugi kao način da se pokuša razbiti novčić praćenje.

Kada se koristi za privatnost, to se najbolje može opisati kao način da se probati i brisanje informacija koje je već procurio.

Međutim, CoinJoin ima niz ozbiljnih problema koji čine alternativu poželjno.

To je duboko kompleks dobro implementirati, osjetljivi na Sybil / DoS napadi (oni su često ista stvar u ovom kontekstu), zakonski upitno i to nije jasno da je zamračenje čak i radi.

Ovaca Marketplace thefthas vidjeti nekoga tvrde da uđe u trag novca kroz prevrtača i mikseri, a po svemu sudeći sa malo postovanja uspjeh. Jedan od alata tragača je bio Sybil / DoS napadi na miješanje usluga tako da oni nisu teorijska zabrinutost.

Dok igračka implementacije nisu previše teško sastaviti, robustan stvarnog svijeta implementacije s rukovanjem odgovarajuće timeout, sigurnosne provjere, dobar novčanik UI integracija itd su mnogo više truda.

Do sada je samo blockchain.info je uspio da stvori jedan (na sharedcoin.com), a vi samo da vjerovati da se ne vodi evidencija. U suprotnom svako sa dnevnicima mogao unmix.

Možda je najmanje raspravljalo pitanje je korisničko iskustvo.

A CoinJoin transakcija potrebno drugim ljudima da učestvuju. Što je više ljudi koji učestvuju, to bolje. Međutim, Bitcoin samo vrhova trenutno na oko jednu transakciju u sekundi.

Čak i ako su sve transakcije CoinJoined, a sve se sastali u jednom trenutku (ACK, centralizacija!), Ti bi i dalje morati čekati 10-15 sekundi da biste dobili dobar set učesnika da se mešaju sa.

To je samo za početak protokol. Onda oni učesnici će svi morati da preuzme transakcije kandidata i potpisati. Ako bilo time out, cijela stvar mora ponovo početi.

U siromašnim uvjetima lako može uzeti minutu ili više da završi ovaj proces, pogotovo ako neki učesnici imaju lisnatom mreže (tj telefoni) i koriste Tor. S obzirom da pokušavamo poboljšati performanse, a ne smanjiti, to izgleda kao veliki problem sve od sebe.

Uz istovremeno povećanje prometa i korištenja će pomoći da se smanji ovaj problem, čak i ako saobraćaj udvostručio, razdvajanje jedinstvenog centralnog sastajanja bi odmah stavio čekanja vratio na početak.

Možda ćete riješiti ovaj problem time CoinJoins u pozadini, nevezano za stvarni potrošnje koja se odvija.

To rješava problem čekanja u redu u kafiću, ali tada naknada mora biti plaćen na tim transakcijama, a to može biti teško da se ljudima zašto je njihova ravnoteža naglo pala preko noći objasniti zbog neočekivanog porez privatnost.

Takva vrsta gadno iznenađenje bi Bitcoin radije neprivlačni običnim korisnicima. Takođe, postavlja pitanje kada i koliko često se to radi.

Merge izbjegavanje

Kao zajednički uzrok curenja privatnost je neusklađenost u veličinama dostupnih kovanica vs ono što je potrebno, čini se nismo mogli prići problem iz drugog ugla: izbjegavajući stvaranje bilo curenja informacija koje je potrebno izbrisati na prvom mjestu.

Razmotrimo slučaj Alice, radnik kafić koji dobija platu.

Alice radi odličan posao i njen šef priznaje da sa paket veći od normalnog plate.

Njen kolega Bob sumnja da ne plaćaju onoliko koliko Alice i želi da zna, pa uvjeri Alice napraviti malu uplatu da ga odmah nakon dan plate (možda čine ulog i Bob osvaja).

Uz redovnu Bitcoin, Alice novčanik će vjerojatno koristiti izlaz platu a promjena će otkriti ono što je plaćen. Čak i ako je već napravio nekoliko plaćanja, Bob može pratiti lanac transakcija unazad dok ne nađe razumno okrugli tražim broj na desnoj strani datum i zaključiti da je najvjerojatnije joj je isplata plaća.

Običan CoinJoin također ne da joj pomogne. Ona bi staviti u jedan veliki ulaz u miks, i vratite jednu veliku izlaz.

Mogla bi tražiti puno manje izlaza, ali je ulaz će i dalje biti plata veličine, a na desnoj datum. Osim ako puno ljudi koji zarađuju kafana veličine plate sve dogoditi dijele isti CoinJoin transakcije, curenje nije fiksna.

Ono što je stvarno potrebno je da se izbjegne ikada imati tako veliki-jedan izlaz na prvom mjestu. Nazovimo to izbjegavanje spajanja.

Kada je predala BIP 70 zahtjeva za plaćanje za svog poslodavca, ona zahtijeva lijep mix denominacija, baš kao i kao da se kupuje gotovine na devizni stola.

Zahtjev također navodi jedinstvenu adresu za svaki izlaz. Protokol plaćanja ne precizira kako novčanik treba zadovoljiti ovaj zahtjev, ali to ne dopuštaju mogućnost da pošiljatelje novčanik podnosi više nezavisnih transakcije kako bi zadovoljili željeni rezultati.

"To je uznemirujuće lako za nekoga da se upoznaju sa svojim [Bitcoin] ravnoteže, trgovinu povijest i više. Zaštita ova informacija je osnovna funkcija bilo kakav koristan finansijskog sistema "

Ako je njen poslodavac koristi stari novčanik koji ne razumije izbjegavanje spajanja, to će generirati i dostaviti joj jedan gigant transakciju koja ima mnogo ulaza (od svih kafa) i sve njene tražene izlaze.

To će izgledati slično kao CoinJoin transakcija bi, ali ima samo jedan učesnik. Međutim, ne postoji način da se znam iz jednostavno gledajući blok lanca.

Ako je njen poslodavac koristi noviju novčanik to ne razumiju izbjegavanje spajanja, onda se dogodi nešto bolje - ona će dobiti veliki broj različitih, manje transakcija, od kojih svaki stvara jedan ili dva izlaza ona tražila.

Ne postoji ništa da se povežu bilo koji od njih zajedno. Jer ona vjeruje njen poslodavac ne udvostruči provesti, ona se može proširiti kroz emitiranje tako ni tajming im daje daleko.

Ako je izbor izlaza bira pametno, ona nikada neće biti u stanju u kojem ona ima izlaza nezgrapno velike ili male za određenu isplatu. Bob će jednostavno vidjeti malu transakciju koja daje mali izlaz promjene, i bez obzira na to koliko on prati nazad on nikada neće naći nikakve izlaz plata veličine. Alice osvaja!

Promjene izlaza može doći do curenja podataka na drugi način. Bob nije u njegovom pokušaju da nauči Alice platu prateći unazad kroz lanac blokova, ali on i dalje mogu gledati izlaz promjenu plaćanja je dobio da vidi šta se događa sa njim.

Ako promjena je kasnije u kombinaciji s mnogim drugima da se stvori ogroman plaćanja, odjednom zna da Alice mora da je u vlasništvu najmanje toliko novca.

Evo čini CoinJoin kao da treba raditi - ako promjena ide u mix, koji može da kaže ko je vlasnik izlaza? Ali to je krhak. Čak i ako izlazi su nasumično veličine, u nedostatku izbjegavanje spajanja oni će biti ponovo rekombinovani napraviti velike uplate.

Ako Alice dogodi spomenuti u prolazu da ona ide na odmor sa svojim dečkom, Bob Možete pogledati na izlazima miksa njene promjene otišao u i čekati za neke od izlaza da se kombinuju.

Ako 1/3 izlaza sedi tamo neutrošenih, 1/3 se troše bez kombinaciji na bilo koji značajan način, a druga 1/3 se kombinirati u $ 5,000 plaćanja večeri Alice spominje njen praznik, to je prilično dobar ulog da je putovanje košta njen $ 5,000.

Svojstva implementacija

Ovaj program ima nekoliko stvari koje ga čine dobrim za implementaciju:

  • To se može pisati postepeno - jednostavan i ne baš pametni algoritam ipak i dalje može poboljšati nečiju privatnost. Kasnije, bolji algoritam se može razviti i raspoređeni, ali to ne zahtijeva nikakve komplikovane globalne nadogradnje. Ovo je dobar fit za volonterski prešao odgovara-i-više mahova, takmiče-novčanika razvojnog modela koji Bitcoin ima.
  • To je vrlo jednostavan i nema pokretnih dijelova ili velikih državnih mašine. Ne morate brinuti o slučajnom mobilni telefon s druge strane svijeta vožnje u tunelu u pogrešnom trenutku, ili pokretanje buggy reimplementacija softvera.
  • Nema centralizacija, čak ni bilo kakve prolazne sastanak servera.
  • Ne postoje pravne rizike, jer vi ne oslanja na bilo usluga koje bi se moglo smatrati pranjem novca alata.
  • To je robustan. Iznad, dao sam primjere kako CoinJoin se mogu pojaviti na rad, ali i dalje curi u prisustvu vrlo malo dodatnih informacija. Merge izbjegavanje nema taj problem.

Tu su i neki nedostaci:

  • Koliko je dobra vaša privatnost je u velikoj mjeri ovisi o tome kako pametno ljudi šalju novac zanat transakcija. Na taj način, vaše privatnosti oslanja na ljude koji ne mogu imati puno poticaj da ništa o tome. Nadam se da zajednički novčanik softver će učiniti pravu stvar po defaultu.
  • To povećava broj transakcija, iako iznad glave nije toliko visok kao što možda mislite - transakcija je samo liste ulaza, izlaza i zaglavlja dva polja (verzija i zaključavanje vremenu). Ulazi i izlazi nisu stvarno promijenila u dobru realizaciju CoinJoin i verzija / locktime se lako može komprimirani / varint kodirani radi uštede prostora. Razlika će biti reda bajtova, a ne kilobajta.
  • Ona se oslanja na protokol plaćanja. Međutim, mnoge stvari se oslanjaju na to, i protokol isplate je od ključne važnosti za obračun na adresu ponovnu upotrebu, koja je potrebna za sve predložene sheme privatnost ionako rade. Važno je da pravimo BIP70 tako lako i široko rasprostranjena moguće.

Merge izbjegavanje ne ometa novčić praćenje. Neki ljudi možda žele da sprovedu CoinJoin sisteme samo iz tog razloga.

Međutim, ne mogu zamisliti da postane široko rasprostranjena. Ako je privatnost ljudi zaštićena preko drugih sredstava, a zatim CoinJoin postaje "pomoć lopovi kriju svoje ukradeni novac" sistem koji smanjuje poticaj da učestvuju, povećava pravni rizik čak i dalje i da će napraviti ljudi se pitaju zašto su im njihovi novčanik aplikacija traži da plati naknada jednostavno kako bi zaštitila ljude kojima su najvjerojatnije da su loši.

Osim toga, ovce Marketplace incidentshows da decentralizovana u borbi protiv kriminala kao tehnika je ponekad jedina opcija: niko neće pitati policiju da pomogne povrate svoju ukradeni novac od droge, a ne vlada bi smetalo pomažući ako jesu.

Ovaj članak je izvorno objavljen na Medium

HackingPrivacyBitcoin Protokol

Povezane vijesti


Post Bitcoin

Inside Bitcoins NYC Day 2 Prikazuje zrelu, legitimnu industriju

Post Bitcoin

Untherhered? Bitcoin špijunira Hack kako bi potisnuo iznad 8.000 dolara

Post Bitcoin

Bitcoin Claws Back to $ 10k: Može li Bulls pretvoriti plima?

Post Bitcoin

Porodica koja putuje širom SAD, troši samo bitkoin

Post Bitcoin

Traženje problema? Džejms Altucher kritikama bitkoina: Mrtav si pogrešio

Post Bitcoin

Bitcoin cijena prelazi 3.000 dolara Milestone za postavljanje novog sve-vremenskog visoka

Post Bitcoin

Imperial College London ponudiće kredite za Bitcoin projekte

Post Bitcoin

Agora Commodities izveštava 10 miliona dolara u prodaji bitkoina

Post Bitcoin

Bitcoin Back iznad 10K, ali dobitak može biti kratko živ

Post Bitcoin

Bitcoin Eyes Consolidation kao cena Flirts sa $ 14K

Post Bitcoin

Razumevanje Bitkoinove skelinijske debate: Politika Prvo dolazi

Post Bitcoin

Bitcoin će olakšati bol u e-poslovanju kaže BitPays Gallippi