This article has been translated from English to Tagalog.

Sa lesson na 'to, pag-aaralan natin kung paano talaga gumagana ang digital signature sa Bitcoin at iba pang cryptocurrencies.

Para makarating sa puntong 'to, kailangan muna nating matutunan ang ilang mga technical na konsepto dahil sila ang “building blocks” na kailangan para makagawa ng digital signature:

Kung hindi ka pamilyar sa mga konseptong 'to, ipinaliwanag ito nang madali sa mga naunang lessons. I-explore mo ang mga link sa itaas para matuto pa.

Paano nga ba ginagawa ang digital signature?

Tingnan natin step-by-step kung paano ang proseso ng digital signature:

  1. Kapag gusto mong magpadala ng bitcoin, ang wallet mo ay gumagawa ng isang transaction message. Kasama sa mensaheng ito ang impormasyon tulad ng halagang bitcoins na gusto mong ipadala at ang address ng tatanggap.
  2. Ang mensaheng ito ay idadaan sa isang hash function.
  3. Ang hash function ay maglalabas ng output na tinatawag na “message hash” o simpleng “hash“.
  4. Ang message hash na ito ay encrypt gamit ang iyong private key.
  5. Ang encrypted message hash ay magiging “digital signature“.

Narito ang isang flowchart ng prosesong ito:

How a Digital Signature is Created

Sa dulo ng prosesong ito, ang wallet mo ay nakagawa ng dalawang “bagay”:

  1. Transaction message
  2. Digital signature (isang encrypted hash ng transaction message)

Sa puntong ito, wala pang naipapadala sa Bitcoin network.

Kung hindi mo napansin, ang transaction message mismo ay kailangan bilang isang “sangkap” para makagawa ng digital signature.

Kaya hindi mo lang ginagamit ang private key mo para gumawa ng digital signature… gamit mo ang private key AT ang hash ng transaction message.

Ibig sabihin, hindi mo puwedeng gamitin ang digital signature na ito para sa ibang transaction. Kung subukan mo itong gamitin sa pangalawang transaction, mare-reject ito ng Bitcoin network dahil ang digital signature ay nakabase lang sa data mula sa unang transaction.

Ang bawat digital signature ay unique para sa isang spesipikong transaction.

Paano ba nabe-verify ang digital signature?

Para makapag-spend ng bitcoins mula sa isang partikular na Bitcoin address, kailangan mong patunayan ang “ownership” (o: kaalaman) sa private key na paired sa public key na konektado sa address na iyon.

Pero gusto mong gawin 'to nang hindi kailangan i-reveal ang private key mo.

Ang digital signature ay isang bagay na magagamit mo para PATUNAYAN na alam mo ang private key na konektado sa isang public key, nang hindi mo kailangang i-reveal ang aktwal na private key.

Tingnan natin kung paano ito gumagana:

  1. Kapag nag-initiate ka ng Bitcoin transaction, ang wallet software mo ay nagbibigay ng tatlong “bagay” sa Bitcoin network: ang original na transaction message, ang digital signature, at ang iyong public key (na naka-link sa address kung saan nakatago ang bitcoin na gusto mong ipadala).
  2. Kapag natanggap ng isang Bitcoin node ang mga “bagay” na ito, paghihiwalayin ito.
  3. Kukunin nito ang original transaction message at idadaan sa parehong hash function na ginamit mo kanina. (Lahat ng Bitcoin software ay gumagamit ng parehong hash function.) Para naman sa digital signature, gagamitin ang public key na ibinigay mo para i-decrypt ito.
  4. Pagkukumparahin ang parehong hashes.
  5. Sakto ba ang pagkaka-match ng parehong hashes?
  6. Kung magkapareho ang parehong hashes, ito ay nagpapatunay na ikaw ang aktwal na may-ari ng bitcoin na gusto mong ipadala.

Narito ang isang flowchart ng prosesong ito:

How a Digital Signature is Verified

May dalawang bagay na dapat tandaan dito:

1. Ang kakayahan na mag-decrypt gamit ang public key ay nagpapatunay sa pagkakakilanlan ng nagpadala.

Sa step 3, kapag ang isang node ay nakapag-decrypt ng digital signature, ito ay nagpapatunay ng iyong “identity”.

Tandaan, dahil ang private key at public key ay mathematically linked, kung kaya mong i-decrypt ang mensahe gamit ang aking public key, ibig sabihin ay in-encrypt ko ito gamit ang aking private key.

Kung hindi mo kayang i-decrypt ang mensahe, ibig sabihin ay in-encrypt ito ng private key ng iba. At ibig sabihin nito, hindi galing sa akin ang mensahe.

2. Ang eksaktong pagkaka-match ng hashes ay nagpapatunay na hindi binago ang mensahe.

Sa step 6, ang pag-check para tiyakin na parehong eksaktong match ang hashes ay nagsisiguro na ang orihinal na mensahe ay hindi binago.

Importante ito dahil habang ang digital signature ay naka-encrypt, ang original transaction message ay nasa plaintext dahil ang lahat ng Bitcoin transactions ay public para makita ng lahat.

Tandaan, anumang maliit na pagbabago ay magreresulta sa isang ganap na ibang hash. Kaya kung sakaling may mag-intercept sa original na transaction message habang papunta ito sa isang node at baguhin ito (halimbawa para ipadala ang bitcoin sa kanyang address imbes na sa iyo), kapag ang mensahe ay dumaan sa hash function, bubuo ito ng isang ganap na ibang hash mula sa digital signature.

Kagaya ng kung paano ang isang handwritten signature ay nag-uugnay sa isang tao sa isang specific na dokumento, ang isang “digital signature” gamit ang cryptography….cryptographically….inuugnay ang pagkakakilanlan sa isang specific na mensahe.

Summary

Ngayon na naiintindihan mo kung paano ginagawa ang digital signature at kung paano ito nabe-verify, narito ang isang MALAKING overview kung ano ba talaga ang ibig sabihin ng “signing” ng transaction at kung paano ginagamit ang “digital signature” ng sender para i-verify ang ownership ng bitcoins na gusto niyang ipadala:

Digital Signature Process