Gabay Para sa Mga Nagsisimula sa Double-Spending
Talaan ng Nilalaman
Ano ang double-spending?
Paano maiiwasan ang double-spending?
Double-spending sa Bitcoin
Pangwakas na ideya
Gabay Para sa Mga Nagsisimula sa Double-Spending
Home
Mga Artikulo
Gabay Para sa Mga Nagsisimula sa Double-Spending

Gabay Para sa Mga Nagsisimula sa Double-Spending

Intermediya
Na-publish Feb 17, 2020Na-update Jan 31, 2023
7m

Ano ang double-spending?

Ang double-spending ay isang potensyal na isyu sa isang digital na cash na sistema, kung saan ang mga pondo ay sabay na ginagastos ng dalawang nakatanggap. Kapag walang sapat na aksyon, ang protocol na hindi agad nareresolba ang problema ay maituturing na mahina–  walang paraan ang mga user para maberipika na ang mga pondong natanggap nila ay hindi pa nagamit sa iba.

Pagdating sa digital cash, ang pagtitiyak na hindi nagagaya ang mga partikular na unit ay may mabigat na halaga. Magiging mahina ang buong sistema kapag nakatanggap ng 10 units si Alice, nagcopy-paste ito nang sampung beses, at hawak na ang 100 units. Ganun din, ang ganitong sistema ay hindi gagana kung sabay siyang magpapadala ng parehong 10 units kanila Bob at Carol. Kaya para gumana ang digital na pera, dapat magkaroon ng mekanismo para maagapan ang ganitong pagkilos.


Paano maiiwasan ang double-spending?

Ang centralized na paraan

Ang centralized na ruta ay maituturing na mas madaling ipatupad kaysa sa mga decentralized na alternatibo. Madalas itong may kinalaman sa pangangasiwa sa sistema ng isang namamahala at pagkontrol sa paglabas at pagbibigay ng mga unit. Isang magandang halimbawa ng centralized na solusyon sa double-spend na problema ay tulad ng sa eCash ni David Chaum. 

Para bigyan ang mga user ng digital asset na gumagaya sa cash (may kapasidad na hindi makita ang identidad at peer-to-peer na exchange), maaaring gumamit ang mga bangko ng blind signatures – tulad ng idinetalye ni David Chaum sa kanyang isinulat noong 1992 na  Blind Signatures for Untraceable Payments.

Sa ganitong konteksto, kung ang user (tawagin nating Dan) ay gustong makatanggap ng $100 na digital cash, kinakailangan niya muna itong ipagbigay-alam sa bangko. Kapag mayroon siyang balanse sa kanyang account, gagawa siya ngayon ng isang random na numero (o marami, para sa mga maliliit na halaga). Ipagpalagay natin na gagawa siya ng limang numero, ang bawat isa ay may katumbas na halagang $20. Para maiwasan ang pagsubaybay ng mga bangko sa mga partikular na unit, gagawing malabo ni Dan ang mga random na numero sa pamamagitan ng paglalagay ng  blinding factor  sa bawat isa sa kanila.

Ibibigay niya ngayon ang mga datos na ito sa bangko na siya namang kakaltas ng $100 sa kanyang account, at magsa-sign sa mensahe para kumpirmahin na ang limang piraso ng impormasyon ay maaaring makuha sa halagang $20. Maaari na ngayong gastusin ni Dan ang pondong ibinigay ng Bangko. Pupunta na siya sa kainan ni Erin, at bibili ng pagkain na nagkakahalaga ng $40. 

Maaari nang tanggalin ni Dan ang blinding factor para ilantad ang random na numero na kaugnay ng bawat digital cash ”bill,” na nagsisilbi bilang natatanging identifier ng bawat unit (tulad ng isang serial number). Ipapakita niya ang dalawa sa mga ito kay Erin, na dapat ngayong kunin agad ang mga ito sa bangko para maiwasan ang paggastos ni Dan sa mga ito sa ibang nagtitinda. Kukumpirmahin ng bangko kung may bisa ang mga signature, at kung lumabas na tama ang lahat, mapupunta sa account ni Erin ang $40.

Ang mga ginamit na bill ay masasabing nasunog na ngayon, at dapat maglabas ng mga bago kung nais ni Erin na gamitin ang kanyang bagong balanse sa parehong paraan.

Maaaring maging kapaki-pakinabang sa mga pribadong pagpapadala ang eCash na sistema ni Chaum. Ngunit, bagsak ito pagdating sa katatagan dahil ang bangko ang central point of failure. Ang bill na inilabas ay dapat ding tandaan dahil ang halaga nito ay kinukuha lamang mula sa kagustuhan ng bangko na ipagpalit ito sa dolyar. Ang mga kustomer ay nakaasa sa bangko, at dapat dumepende sa pagiging tapat nito para magkaroon ng silbi ang pera. Ito mismo ang problema na layong solusyunan ng cryptocurrency.


Ang decentralized na paraan

Isang hamon ang pagtiyak na hindi double-spent ang mga pondo sa isang ecosystem na walang namamahala. Ang mga kalahok na may pantay-pantay na kapangyarihan ay dapat makipag-ugnayan gamit ang mga itinakdang alituntunin na pumipigil sa mga pandaraya at nagbibigay ng insentibo sa mga tapat na user.

Ang pinakamalaking pagbabago na ipinakita sa Bitcoin white paper ay isang solusyon sa probema sa double-spending. Bagamat hindi gaanong nababanggit sa ganitong paraan, iminungkahi ni Satoshi ang istruktura ng datos na ngayon ay kilala na bilang blockchain.
Ang blockchain ay isa lamang talaan ng datos na may mga natatanging katangian. Ang mga kalahok sa network (na tinatawag na mga node) ay tumatakbo sa isang espesyal na software, na binibigyan sila ng kakayahan para ipareho ang kopya ng kanilang talaan sa kanilang mga kasama. Bilang resulta, nasusuri ng kabuuan ng network ang kasaysayan ng mga transaksyon maging hanggang sa genesis block. Sa pamamagitan ng pagiging pampubliko ng blockchain, madaling natutukoy at napipigilan ang anumang pandaraya, tulad ng mga transakyon na tinatangkang magdouble-spend.
Kapag ipinalaam ng isang user ang isang transaksyon, hindi agad ito naidadagdag sa blockchain – dapat muna ito mapabilang sa isang block sa pamamagitan ng mining. Dahil dito, ang nakatanggap ay dapat lamang ituring na tunay ang transaksyon kapag naidadagdag na ang block nito sa chain. Kung hindi, may panganib na mawala sa kanila ang pondo dahil maaari itong gastusin sa iba ng nagpadala. 
Oras na makumpirma na ang transaksyon, hindi na maaaring madouble-spend ang mga coin dahil ang pagmamay-ari nito ay itatalaga na sa bagong user – at mabeberipika ito ng buong network. Ito ang dahilan kung bakit inirerekomenda ng marami na maghintay ng ilang mga kumpirmasyon bago tanggapin bilang tunay ang bayad. Sa bawat kasunod na block, nadaragdagan ang kinakailangang aksyon para baguhin o muling isulat ang chain (na maaaring maganan sa isang 51% attack).

Balikan natin ang eksena sa kainan. Babalik si Dan sa kainan, at sa pagkakataong ito nakita niya ang sticker na  Bitcoin Accepted Here  sa bintana. Nagustuhan niya ang pagkain noong nakaraan, kaya muli niya itong binili. Nagkakahalaga ito ng 0.005 BTC. 

Pinakitaan siya ngayon ni Erin ng public address kung saan niya dapat ipadala ang pondo. Ipinaalam ni Dan ang transaksyon na isa ngayong signed na mensahe kung saan nakasaad na hawak na niya ngayon ang 0.005 BTC na dating kay Dan. Nang hindi gaanong hinahalungkat ang detalye, ang sinumang pagpakitaan ng signed na transaksyon ni Dan ay magagawang iberipika na siya nga ang nagmamay-ari ng mga coin, at samakatuwid ay may kapangyarihan na ipadala ito.

Ganunpaman, tulad ng nabanggit, may bisa lamang ang transaksyon kung isinama sa isang nakumpirmang block. Ang pagtanggap sa hindi kumpirmadong transaksyon ay tulad ng pagtanggap ng $40 na eCash sa nakaraang halimbawa, nang hindi agad ito kinukuha sa bangko – pinahihintulutan nito ang nagpadala na gastusin ito sa iba. Kaya, inirerekomenda na hintayin muna ni Erin ang hindi bababa sa 6 na block ng kumpirmasyon (nasa isang oras) bago tanggapin ang bayad ni Dan.


Double-spending sa Bitcoin

Maingat na dinisenyo ang Bitcoin para maiwasan ang mga pag-atake sa double-spending, kapag ginamit ang protocol nang tulad sa inaasahan. Ito ay kung hinintay ng mga indibidwal na makumpirma sa isang block ang transaksyon, walang madaling paraan para mabawi ito ng nagpadala. Para magawa ito, kinakailangan nilang “baliktarin” ang blockchain na nangangailangan ng hindi matantiyang halaga ng hasing power.

Ganunpaman, may ilang mga double-spending attack na target ang mga partidong tumatanggap ng hindi kumpirmadong mga transaksyon. Para sa mga binili sa maliit na halaga, halimbawa, ang mga nagtinda ay maaaring hindi na gustong hintayin pa na maisama ang transaksyon sa block. Ang isang abalang kainan ay maaaring hindi na kakayaning maghintay pa sa pagproseso ng network sa bawat bilihin. Kaya kapag pinayagan ng isang negosyo ang “instant” na bayad, binubuksan nila ang kanilang sarili sa mga double-spend. Kaakibat ang mas mataas na singil, ang transaksyong ito ay kinakailangan munang kumpirmahin, at samakatuwid ay pinapawalang-bisa ang nakaraan.

May tatlong kilalang paraan sa pagsasagawa ng double-spend:

  • 51% ng mga attack: kapag ang isang indibidwal o organisasyon ay nagawang i-kontrol ang higit sa 50% ng hash rate, na nagbibigay sa kanila ng kapasidad na tanggalin o baguhin ang ayos ng mga transaksyon. Mababa ang posibilidad na mangyari ang ganitong attack sa Bitcoin ngunit nangyari na sa ibang mga network.
  • Race attacks: ang dalawang hindi magkatugmang transaksyon ay ipinagbigay-alam nang magkasunod gamit ang parehong pondo – ngunit isa lang sa mga transaksyon ang nakumpirma. Ang layunin ng attacker ay ipawalang-bisa ang bayad sa pamamagitan ng pagpapatunay lamang ng transaksyon kung saan siya mabebenipsyuhan (hal. pagpapadala ng parehong pondo sa isang address na kanyang kontrolado). Kakailanganin ng mga race attack ang mga padadalhan na tanggapin ang hindi kumpirmadong transaksyon bilang bayad.
  • Finney attacks: nauna nang i-mine ng isang attacker ang isang transaksyon sa isang block nang hindi ito agad ipinagbigay-alam sa network. Sa halip, gagastusin niya ang parehong mga coin sa ibang transaksyon saka lamang ipagbibigay-alam ang naunang na-mine na block, na maaaring magpawalang-bisa sa bayad. Ang mga Finey attack ay nangangailangan ng partikular na pagkakasunod-sunod ng mga kaganapan para mangyari at nakabatay din sa pagtanggap ng hindi kumpirmadong transaksyon ng pinagpadalhan.

Makikita natin na ang tindahang naghihintay sa kumpirmasyon ng block ay nagagawang pababain nang malaki ang panganib ng pagiging biktima ng mga double-spend.


Pangwakas na ideya

Binibigyang-daan ng double-spend ang isang user na paglaruan ang sistema ng electronic cash para sa pinansyal na benepisyo, kung saan ginagamit niya ang parehong pondo nang higit sa minsan. Tulad sa nakaraan, ang kakulangan sa sapat na solusyon sa problema ay sagabal sa progreso sa isang larangan.

Ganunpaman, sa kabutihang-palad, ang paggamit ng blind signatures ay may nagmungkahi ng kanais-nais na solusyon para sa mga centralized na pinansyal na paraan. Sunod dito, ang pagkakalikha ng mga Proof of Work na mekanismo at teknolohiyang blockchain ay nagsilang sa Bitcoin bilang isang makapangyarihang uri ng decentralized na pera – na nagbigay naman ngayon ng inspirasyon sa libu-libong iba pang mga proyektong cryptocurrency.