Pagpapaliwanag sa Coin Mixing at CoinJoins
Talaan ng mga Nilalaman
Panimula
Ano ang coin mixing?
Ano ang CoinJoin?
Paano gumagana ang CoinJoin?
Pagiging pribado sa pamamagitan ng pagtatanggi
Pangwakas na ideya
Pagpapaliwanag sa Coin Mixing at CoinJoins
HomeMga Artikulo
Pagpapaliwanag sa Coin Mixing at CoinJoins

Pagpapaliwanag sa Coin Mixing at CoinJoins

Advanced
Published Mar 25, 2020Updated Apr 29, 2021
5m

Panimula

Madalas tinatawag na digital cash ang Bitcoin, ngunit walang katiyakan ang paghahambing na ito. Kapag nagbayad si Alice kay Bob ng cash na sampung dolyar, walang ideya si Bob kung saan nanggaling ang pera. Kapag kalaunan ay ibinigay niya ito kay Carol, hindi mahuhulaan ni Carol na unang pagmamay-ari ni Alice ang perang iyon.
Iba ang Bitcoin dahil sa likas nitong pampublikong katangian. Ang kasaysayan ng nasabing coin (partikular na ang unspent transaction output or UTXO) ay maaaring obserbahan nang sinuman. Bahagyang katulad ito ng halaga ng transaksyon at pangalan ng mga kasali sa tuwing ginagamit ang isang perang papel. 
Dahil dito, ang pagiging tago ng isang public address ay tumitiyak na ang identidad ng mga user ay hindi madaling nakikita. Ganunpaman, hindi ganap na pribado ang Bitcoin. Lalong nagiging sopistikado ang blockchain analysis at may kapasidad na mahusay na iugnay ang mga address sa mga identidad. Kasama ng iba pang mga technique sa pagmamatiyag, isang itinalagang tao ang maaring magtanggal ng pagtatago ng identidad ng mga cryptocurrency user. Para masolusyunan ito, umusbong ang mga technique sa mga nakalipas na taon para matanggal ang ugnayan ng mga transaksyon.


Ano ang coin mixing?

Sa simpleng paliwanag, ang coin mixing ay maaring tumukoy sa anumang aktibidad na may kinalaman sa sayang pagiging malabo ng detalye ng mga pondo sa pamamagitan ng pakikipagpalitan sa iba. Ganunpaman, sa mundo ng cryptocurrency, karaniwang nangangahulugan ang coin mixing bilang serbisyong iniaalok ng isang third-party. Karaniwan,  kinukuha ng mga service provider ang mga coin (at maliit na singil) mula sa mga user, at ibinabalik ang mga coin na wala nang kaugnayan sa naunang ipinadala. Ang mga serbisyong ito ay kilala rin bilang tumblers o mixers.

Malamang na kahina-hinala ang seguridad at pagtatago ng identidad sa ganitong centralized na serbisyo. Walang katiyakan ang mga user na ibabalik ng mixer sa kanila ang pera o kung ang mga ibinalik na coin ay hindi nabahiran. Isa pang dagdag na aspetong dapat isaalang-alang sa paggamit ng mixer ay ang posibleng pagtala ng third party sa IP at Bitcoin address. Sa ganitong sitwasyon, isinusuko ng user ang kontrol sa kanyang pondo sa pag-asang makatatanggap pabalik ng mga coin na wala nang kaugnayan.

Isa pang mas nakakaakit na paraan ay umusbong bilang mga transaksyong CoinJoin, na gumagawa ng higit na mataas na antas ng pagtatangging hindi maikakaila. Masasabi na pagkatapos ng isang CoinJoin, walang ebidensyang tiyak na mag-uugnay sa user sa mga nakaraan nilang transaksyon. Maraming mga solusyong CoinJoin ang nagbbiigay ng decentralized na alternatibo sa mga mixer. Bagamat may mga sangkot na tagapangasiwa, hindi kinakailangan ng mga user na isakripisyo ang paghawak sa kanilang mga pondo.


Ano ang CoinJoin?

Unang iminungkahi ng Bitcoin developer na si Gregory Maxwell ang mga transaksyong CoinJoin noong 2013. Sa kanyang thread, nagbigay siya ng pangkalahatang ideya kung paano ang istruktura ng mga transaksyong ito at kung paano makakamit ang mataas na antas ng pagiging pribado nang hindi binabago ang protocol.
Sa pangkalahatan, may kinalaman ang CoinJoin sa kombinasyon ng mga input ng iba’t ibang mga user sa iisang transaksyon. Bago natin ipaliwanag kung paano (at bakit), tignan natin ang istruktura ng simpleng transaksyon.

Binubuo ng mga input at output ang mga transaksyon sa Bitcoin. Kapag gusto ng user na gumawa ng transaskyon, kukunin nila ang kanilang mga UTXO bilang input, itatala ang mga output, at isa-sign ang mga input. Mahalagang tandaan na magkakahiwalay ang signing ng bawat input, at maaaring magtakda ang mga user ng iba’t ibang mga output (papunta sa magkakaibang mga address).



Kung titignan natin ang ibinigay na transaksyon na binubuo ng apat na input (0.2 BTC bawat isa) at dalawang mga output (0.7 BTC at 0.09 BTC), may ilang magkakaibang assumption na maaari nating gawin. Una ay napapanood natin ang nagaganap na pagbabayad – ang nagpadala ay nagpapadala ng isa sa mga output sa isang tao, at ibinabalik din nila ang ilang mga sukli sa sarili. Dahil gumamit sila ng apat na input, ang mas malaking output ay maaaring para sa tatanggap. Tandaan na may nawawala sa ating 0.01 BTC mula sa mga output, na siyang singil na ibinibigay sa miner.

Imposible ring gustuhin ng sender na lumikha ng malaking UTXO mula sa mga mas maliit, kaya iipunin nila ang mga mas maliit na input para makuha ang ninanais na 0.7 BTC na resulta.

Isa pang palagay na maaari nating gawin ay ang katotohanan na magkakahiwalay ang signing ng bawat inpur. Ang transaksyong ito ay maaaring magkaroon ng hanggang sa apat na partido para magsign sa mga input. At dito nakapaloob ang prinsipyo na ginagawang epektibo ang CoinJoining.


Paano gumagana ang CoinJoin?

Ang ideya sa likod nito ay ang pag-uugnayan ng iba’t ibang mga partido para makagawa ng transaksyon, ang bawat isa ay nagbibigay ng mga input at ninanais na mga output. Kapag pinagsama na ang lahat ng mga input, nagiging imposibleng sabihin nang may katiyakan kung sinong user ang nagmamay-ari ng bawat output. Tignan ang diagram sa ibaba:



Dito, mayroon tayong apat na kalahok na gustong putulin ang ugnayan sa pagitan ng mga transaksyon. Makikipag-ugnayan sila sa isa’t isa (o sa tulong ng itinalagang tagapangasiwa) para ianunsyo ang mga input at output na gusto nilang isali. 

Kukunin ng tagapangasiwa ang lahat ng impormasyong ito, lilikha ng transaksyon mula rito, at sasabihan ang bawat kalahok na magsign bago ito ipagbigay-alam sa network. Oras na makapag-sign na ang mga user, hindi na mababago o mapapawalang-bisa ang transaksyon. Samakatuwid, walang panganib na itakbo ng tagapangasiwa ang mga pondo. 

Nagsisilbi ang transaksyon bilang black box sa mix coins. Tandaan na epektibo nating nasisira ang mga UTXO para makagawa ng mga bago. Ang tanging ugnayan sa pagitan ng mga luma at bagong UTXO ay ang mismong pagkakaroon ng transaksyon, ngunit, syempre, hindi na mapag-iiba iba ang mga kalahok. Maaari lamang masabi na ang bawat kalahok ay nagbigay ng output at posibleng nagmamay-ari ng isa sa mga resultang output.

Ngunit maging iyon ay hindi maituturing na garantiya. Sinong makapagsasabi, na kapag tinignan ang transaksyon sa itaas, na may apat na mga kalahok? May isa bang tao na nagpadala ng kanilang mga pondo sa apat na sarili nilang address? Dalawang tao na may biniling dalawang magkahiwalay at ibinalik ang 0.2 BTC bawat isa sa sarili nilang mga address? Apat na taong nagpadala sa mga bagong kalahok, o pabalik sa kanila? Hindi tayo nakasisiguro.


Pagiging pribado sa pamamagitan ng pagtatanggi

Ang mismong katotohanan na mayroong implementasyon ng CoinJoin ay sapat para pagdudahan ang mga paraang ginagamit para suriin ang mga transaksyon. Maari mong sabihin na nagkaroon na ng CoinJoin sa maraming kaso, ngunit hindi mo pa rin mahuhulaan kung sino ang nagmamay-ari ng mga output. Habang nagiging popular ang mga ito, ang assumtoion na ang mga input ay pagmamay-ari ng parehong user ay humihina – isang malaking hakbang para sa pagiging pribado sa mas malawak na ecosystem.

Sa nakaraang halimbawa, sinasabi natin na ang transaksyon na may anonymity set na 4 – ang nagmamay-ari ng output ay maaaring sinuman sa apat na kalahok na sangkot. Kapag mas malaki ang anonymity set, mas maliit ang tiyansang maiugnay ang mga transaksyon sa mga orihinal na nagmamay-ari. Sa kabutihang-palad, ang mga implementasyon ng CoinJoin kamakailan ay ginagawang hindi mahalaga sa mga user na huwag pagtiwalaan ang pagsasanib ng kanilang mga input sa iba pa, kaya nagbibigay ito ng mataas na deniability. Kamakailan lang, matagumpay na naidaos ang transaksyon na may 100 tao.


Pangwakas na ideya

Ang mga kasangkapan sa coin mixing ay mahalagang karagdagan sa mga armas na gamit ng sinumang user na seryoso pagdating sa pagiging pribado. Di tulad sa mga iminungkahing pagpapaunlad sa pagiging pribado (tulad ng Confidential Transactions), ang mga ito ay tugma sa kung ano ang protocol ngayon. 

Para sa mga nagtitiwala sa integridad at metodolohiya ng mga third party, ang mixing na serbisyo ay madaling solusyon. Para sa mga mas gusto ang nabeberipika at walang gaanong responsibilidad na alternatibo, higit na makabubuting alternatibo ang mga CoinJoin . Madali itong nagagawa ng mga user na may teknikal na kaalaman. Ngayon pa lang, marami nang ganitong mga kasangkapan na patuloy na nakikilala sa paghahanap ng mga user ng mas mataas na antas ng pagiging pribado.