Bitcoin(ဘစ်ကွိုင်) ဆိုတာ ဘာလဲ???
What is Bitcoin - tech behind bitcoin
Bitcoin က Market cap အကြီးဆုံးနဲ့ လူသိအများဆုံး crypto ပါ။
Bitcoin အကြောင်း beginner level စုံစုံလင်လင် ရေးထားတဲ့ blog ရှိပါတယ်။ Bitcoin ရဲ့ consensus က proof of work လို့ပြောကြပေမဲ့ တကယ်အမှန်က Nakamoto consensus လို့ပြောရင် ပိုမှန်ပါတယ်။ PoW ဆိုတာ consensus တဝက်ပဲ ရှိပါသေးတယ်။
PoW နဲ့ longest chain rule သည် Nakamoto consensus အပြည့်ပါ။
Longest chain rule အကြောင်း
Double spending အကြောင်းနိဒါန်း ကို ဒီ blog မှာ အရင်လေ့လာကြည့်ပါ။
BTC ရဲ့ PoW consensus က double spend မဖြစ်အောင် defend လုပ်ထားတာ တော်တော် strong ဖြစ်ပါတယ်။ အကြမ်းဖျင်း Transactions တွေ ဘယ်လို verify/validate လုပ်လဲဆိုတာ ပြန်ပြောပါမယ်။
1. A ကနေ B ကို transactions လုပ်တယ် ဆိုပါစို့။ အဲ့ဒီ Txn က mempool (memory pool) ထဲ အရင်ရောက်ပါတယ်။2. Mempool ထဲက Transactions တွေကို miners တွေက စတင်ပြီး mine လုပ်ရပါတယ်။3. Merkle tree ပုံစံ အထိ ရောက်ပြီဆိုရင် နောက်ဆုံး block header ရဲ့ components အတွက် hash တခုထွက်ဖို့ nonce ကို အဖြေရှာရပါတယ်။ miners တွေက computation power ကောင်းတဲ့ mining rigs တွေနဲ့ nonce ကို အပြိုင်အဆိုင်ရှာရပါတယ်။nonce မှန်သွားပြီး hash တွက်နိုင်တဲ့ miner/miners ကသာ block အသစ်တခု blockchain ပေါ်မှာ ချိတ်ခွင့်ရပြီး block rewards ရပါတယ်။ ကျန်တဲ့ miners တွေက အရှေ့မှာ ဘယ်လောက်ပဲ တွက်လာတွက်လာ နောက်ဆုံး block hash မရရင် သူတို့တွက်ထားတာ အလကားပါပဲ။ PoW မှာ သနားပါတယ် ၊ သူတို့လဲ တွက်ထားတာပဲ ဆိုပြီးအလျှော့ပေးတါမျိုးမရှိပါဘူး ၊ မဟုတ်ရင် Transactions တွေ ထပ်ကုန်ပြီး double spend ဖြစ်ကုန်ပါလိမ့်မယ်။ ဒီလို competition စနစ်ကြောင့် BTC network ရဲ့ security က strong ဖြစ်တာပါ။
4. Block hash ထွက်လာပြီးသွားရင် block ကို blockchain ပုံစံဖြစ် အောင် ရှေ့က mined လုပ်ပြီးသား blocks တွေနဲ့ ချိတ်ဖို့လိုပါတယ်။ block 5 mine လုပ်ပြီးပြီ ဆိုပါစို့... ဒီလိုအတွဲဖြစ်အောင်ချိတ်ရပါတယ်။
Block 1 - Block 2 - Block 3 - Block 4 - Block 5ဒါက block hash ထွက်သွားတဲ့ miner ရဲ့ node/ ledger မှာ စဖြစ်ပါတယ်။ ကျန်တဲ့ nodes တွေကိုလဲ ဖြန့်ရပါမယ်။
Node 1- Block 1 - 2 - 3 - 4 - 5
Node 2- Block 1 - 2 - 3 - 4 - 5
Node 3- Block 1 - 2 - 3 - 4 - 5
Node 4- Block 1 - 2 - 3 - 4 - 5
Node 5- Block 1 - 2 - 3 - 4 - 5
Node 6- Block 1 - 2 - 3 - 4 - 5 ...... စသည်ဖြင့် network တခုလုံး ဖြန့်ရပါတယ်။
ဒါတွေအားလုံးပြီးရင်တော့ consensus အောင်မြင်သွားပါပြီ။ ဒီလောက်ဆို mining process ကို မြင်ယောင်မိမယ်လို့ထင်ပါတယ်။
The longest Chain Rule
BTC security ရဲ့ secret sauce လို့တင်စားခေါ်ဝေါ်ကြတဲ့ 'The longest chain rule' ဆိုတာ ဆက်ပြောပါမယ်။
ဥပမာနဲ့ ပြောထားတာရှင်းလို့ အဲ့ဥပမာ ဆင်တူပြန်ပြောပါမယ်။
သူငယ်ချင်း ၂ ယောက် A နဲ့ B က BTC wallet 1 ခုတည်းသုံးကြတယ်။ အဲ့ wallet ထဲမှာ 1 BTC ရှိတယ်ဆိုပါစို့။
A က Asia မှာ ၊ B က US မှာ နေကြတယ်။ 'တချိန်တည်းမှာ' 2 ယောက်လုံး 1 BTC ကို spend လုပ်မိသွားပါတယ်အခါ ဘယ်လိုဖြစ်မလဲ ဆိုတာရှင်းပြပါမယ်။ A ရဲ့ transaction ကို Asian miner က mine လုပ်ပြီး B ရဲ့ transaction ကို US miner က mine လုပ်တယ်။ Asian miner က computational power သာသွားပြီး block hash ထွက်သွားပါပြီ ။
Asian miner ရဲ့ block validation ပြီးလို့ ကျန်တဲ့ nodes တွေ ဖြန့်နေတဲ့ အချိန်မှာ Asian miner chain က ပိုရှည်နေပါတယ်။ ကျန်တဲ့ nodes တွေဖြန့်တဲ့အခါ Asian miner ရဲ့ data ကိုသာ အမှန်ယူလိုက်ပြီး US miner ရဲ့ data က reject ထိသွားပါတယ်။ nodes တွေက ဘယ် chain ရဲ့ data ပိုရှည်သလဲ ဆိုတာပဲ ကြည့်နေတာပါ။ အဲ့ data ကိုပဲ အမှန်ယူလိုက်တာပါ။
ဒီလိုနည်းနဲ့ The longest chain rule က double spending ကို မဖြစ်အောင် defend လုပ်ထားတာပါ။
Bitcoin ပြသနာ
Nodes ပေါင်း သောင်းချီဖြန့်ထားလို့ decentralization နဲ့ security အားကောင်းပေမဲ့ scalable မဖြစ်တာ bitcoin ပြသနာပါ။
7 TPS နဲ့ finality က 1 hour ဆိုတော့ အဆင်မပြေလှပါဘူး။ Digital cash အနေနဲ့ အသုံးပြုဖို့ ထွင်လိုက်တာ scalability မကောင်းလို့ digital gold လို့ပဲ ယူဆပြီး သုံးစွဲကြမလားပေါ့။ တဖက်ကလဲ digital cash အနေနဲ့ သုံးချင်တဲ့ သူတွေက scalability ပြသနာရှင်းဖို့ ကြိုးစားကြပြန်ရော။
Network upgrade for scalability
BTC network upgrade အကြောင်း မပြောခင် soft fork နဲ့ hard fork ကိုပြောရပါလိမ့်မယ်။ Soft fork ဆိုတာ မူလ network ကနေ ကွဲထွက်သွားတာမျိုးမရှိဘူး။ backwards compatible ဖြစ်တယ်လို့လဲ ခေါ်ကြတယ်။ old nodes နဲ့ upgraded network ကို ဆက် run လို့ရပါတယ်။
Hard fork က backwards compatible မဟုတ်ပါ။ upgrade အပြီးမှာ network အသစ်တခု ထွက်လာပြီး nodes တွေက new rules & latest version ကိုသုံးပြီး run ရပါတယ်။
Upgrade လုပ်မလုပ်ဘယ်သူဆုံးဖြတ်ကြလဲဆိုတော့ Miners, full node runners, developers တွေက upgrade လုပ်မယ်မလုပ်ဘူးဆိုတာ ဆွေးနွေးတိုင်ပင်ညှိနှိုင်းပြီးမှ ဆုံးဖြတ်ပါတယ်။
BTC hard fork
Scalability တက်အောင် BTC block size 1 MB ကို actual size ပြောင်းမယ်ဆိုရင် hard fork လုပ်ရပါတယ်။ BCH မှာ Block size ကို maximum 8 MB အထိတင်လိုက်ပါတယ်။ maximum 32 MB အထိရပါတယ်။ transactions တွေ များများဆန့်ပြီး TPS လဲ များလာပါတယ်။ average TPS က 116 လောက်ရှိပါတယ်။ Bitcoin cash (BCH) ဆိုတာ block size ပြောင်းထားတဲ့ Bitcoin ရဲ့ hard fork ပါ။ BCH ကို ခွဲထွက်သွားပေမဲ့ Bitcoin fandom ကြီးက ကျမသွားပါဘူး။ Bitcoins ရဲ့ ကျန်တဲ့ hard forks တွေလဲ ရှိပါသေးတယ်။ BTC hard forks ပေါင်း 100 ကျော်ရှိ ပေမဲ့ BCHက တော့ နာမည် အကြီးဆုံးပါ။
BTC မှာ SegWit (segreted witness) soft fork upgrade ကို 2017 မှာ ပြုလုပ်ခဲ့ပါတယ်။ 2015 ကတည်းက develop လုပ်ခဲ့တာပါ။ 2017 BTC/BCH split ဖြစ်ပြီးနောက် SegWit upgrade က BTC network ပေါ်မှာ ဖြစ်ခဲ့ပါတယ်။ SegWit ဆိုတာ BTC block size ကို မပြောင်းပဲ transaction input data ထဲက အရမ်းမလိုအပ်တဲ့ data (signature from input) ကို လျှော့လိုက်ခြင်းဖြင့် block capacity ကြီးသွားအောင်လုပ်တာပါ။ Actual block size က 1 MB ပါ။ SegWit မှာ 4 MB ဖြစ်သွားပါတယ်။ size ချဲ့လိုက်တာမဟုတ်ပါဘူး။ capacity များအောင် လုပ်တဲ့သဘောပါ။ ဥပမာ - 1ပေ ပတ်လည်ရှိတဲ့နေရာမှာ အဂ်တေတုံး ထားမဲ့ အစား သစ်သားပုံးလေးထားလိုက်ရင် သစ်သားပုံးထဲ ပစ္စည်းတွေ ထပ်ထည့်လို့ ရသွားတာကို မြင်ရင် သဘောပေါက်မယ်လို့ ထင်ပါတယ်။ SegWit က transaction input မှာ signature ကို block data ထဲထည့်မသိမ်းတော့ transaction malleability လို့ခေါ် တဲ့ ပြသနာကို ရှင်းပြီးသားဖြစ်သွားပါတယ်။
Transaction malleability
Transaction malleability is the ability of a transaction to have multiple valid txids (transactions IDs).Transaction Malleability မပြောခင် UTXO, transaction hash, transaction ID အကြောင်း အရင်ပြောပါမယ်။
UTXO
Bitcoin မှာ UTXO လို့ ခေါ်တဲ့ unspent transaction output accounting method ကိုသုံးထားပါတယ်။ Transactions output ကို new transaction ရဲ့ input အနေနဲ့ ပြန်သုံးတာပါ။
ဒါကို နားလည်ဖို့ ဥပမာနဲ့ ရှင်းပြပါမယ်။
Alice မှာ 0.75 BTCရှိတယ်။ Alice ကနေ Bob ကို 0.5 BTC လွှဲမယ်ဆိုရင် 0.75BTC ကို 0.25+0.25+0.25 ဆိုပြီး အရင်ခွဲလိုက်ပါတယ်။ (0.25+0.25) ကို Bob ၊ ကျန်တဲ့ 0.25 ထဲက 0.02 ကို mine လုပ်တဲ့ miner ကို transaction fee အနေနဲ့ ခွဲပေးရပါတယ်။ Bob က 0.5 BTC ရတယ်ဆိုပေမဲ့ 0.25+0.25 အတွဲပါ။
0.5 BTC from Alice to Bob မှာ
Inputs - 0.25+0.25+0.25
Outputs - (0.25+0.25)to Bob + 0.02 to miner + 0.23 back to Alice
Alice ဖက်ကတော့ (0.25+0.25) က spent UTXOs ပါ။
Bob ဖက်က တော့ (0.25+0.25) က ရှေ့ txnရဲ့ outputs ဖြစ်တဲ့အပြင် သူလဲ မသုံးရသေးလို့ unspent UTXOs ပါ။တနည်းအားဖြင့် unspent transaction output ဆိုတာကို သဘောပေါက်ပြီလို့ ယူဆပါတယ်။ Bob က အဲ့ဒီ 0.5 BTC ကို ဆက်သုံးမယ်ဆိုရင် အရင် transaction ရဲ့ output ဖြစ်တဲ့ UTXOs အတွဲ (0.25+0.25) ကို input အနေနဲ့ သုံးရမှာပါ။ Alice ကတော့ 0.23 BTC ကို input အနေနဲ့ 0.23 / 0.1+0.13/... UTXOs အတွဲ အနေနဲ့ ပြန်သုံးရမှာပါ။
Transaction Hash and ID
Bitcoin transactions တွေ identify လုပ်ဖို့ အတွက် Transaction ID ဆိုပြီး ရှိပါတယ်။ Transactions data တွေထည့်ပြီး SHA-256 hash function နဲ့ တွက် ၊ ရလာတဲ့ data တွေကို တခါ SHA-256 နဲ့ ပြန် hash ၊ နောက်ဆုံး result ကတော့ 32-byte string of data Transaction(Tx) ID ကိုရလာပါတယ်။ Transaction(Tx) ID ဆိုတာ Transaction data တွေ ''2 ခါ'' hash ထားတဲ့ data ပါ။
ဘယ်လို data တွေ ထည့် hash တာလဲ?
- Transaction hash - အပေါ်မှာ ရှင်းပြထာတဲ့ spent UTXO ပါတဲ့ Transaction
- Output index - index no: of UTXO being spent
- Unlocking script*
- Unlocking script size
- Sequence number
*Unlocking scrpit/scrpitsig*
Alice က Bob ကို 1 BTC ပို့လိုက်တယ်ဆိုပါစို့.....
Bob က အဲ့ ရလာတဲ့ 1 BTC ကို သုံးဖို့ ဆိုရင် unlock လုပ်ပေးရပါတယ်။
ဘယ်လိုလဲဆိုတော့ Unlocking script (scriptSig) + locking script (scriptPubKey)ရှေ့ transactions က ရလာတဲ့ BTC ကို unlock လုပ်ပြီးမှ နောက် transaction တွေကို lock လုပ်ပြီး transaction process ကို initiate လုပ်ရပါတယ်။
Unlocking script မှာ signature နဲ့ Pubkey (bitcoin address) ပါပြီး locking sctipt မှာ PubKHash (bitcoin address) ပါပါတယ်။
Bob က Alice ဆီက ရတဲ့ 1 BTC (UTXOs) ကို spend လုပ်မယ်ဆိုရင် Alice ပို့ထားတဲ့ txid (transaction hash) ကို reference လုပ်ပြီး ScriptSig နဲ့ unlock လုပ်ရပါတယ်။ Signing process ပါလာတာကို ဆိုလိုတာပါ။ ပြီးမှ Bob ပို့ချင်တဲ့သူရဲ့ address (PubKhash) နဲ့ lock လုပ်ပြီး ပို့ပါတယ်။
ဒါဆို Bob create လုပ်မဲ့ Transaction ရဲ့ Bob signs လုပ်ရမဲ့ data တွေထဲမှာ Alice to Bob Transaction ရဲ့ TxID ပါနေတယ်ဆိုတာကို သတိထားမိမှာပါ။
Transaction Malleability ကို ပြောလို့ရပါပြီ။
Malleability လို့ရှာကြည့်လိုက်ရင် capable of being shaped ဆိုတာတွေ့ပါလိမ့်မယ်။ ပုံသွင်းခံရတာပေါ့။ transactions မှာဘယ်လို ပုံသွင်းရသလဲဆိုတော့ Bob က မရိုးမသား ကြံစည်ချင်ရရင် ScriptSig နေရာမှာ သူ့ရဲ့ digital signature ကို အနည်းငယ်ပြောင်းပြီး hash လုပ်လိုက်ရင် TXID ကို ပြောင်းလိုက်လို့ရပါတယ်။ Alice to Bob transaction confirm မဖြစ်သေးတဲ့ အချိန်မှာ လုပ်လို့ရတာပါ။ TXID alter လုပ်ပြီး Bob က Alice ကို မင်းပို့လိုက်တဲ့ 1BTC မရောက်သေးဘူး လို့ ပြောရင် ... Alice က သူပို့ထားတုန်းတဲ့ TXID နဲ့ရှာရင် blockchain history ပေါ်မှာတွေ့ရမှာမဟုတ်ပါဘူး။ အဲ့မှာ Alice က သူ့ Transaction reject ထိတယ်ထင်ပြီး နောက် Transaction တခုထပ်ပို့လိုက်ရင် Bob က 2 BTC ရသွားမှာပါ။ Mt.Gox exchange ခံရတုန်းက ဒီနည်းနဲ့ attack လုပ်သွားတယ်လို့ ဆိုကြပါတယ်။
Transaction Malleability က double spending မဟုတ်ပါဘူး။ Double spending ဆိုတာ BTC 1ခုကို 2ခါ လိမ်သုံးတာ (different transactions)။ Transaction malleability ဆိုတာ digital signature မှတဆင့် TxID ပြောင်းပြီး (same transaction with multiple txid) transaction လိမ်တာပါ။
ဒါဆို SegWit က Transaction malleability ကို ဘယ်လို fix လုပ်ခဲ့တာလဲ?
ဆိုတော့ …
SegWit ဆိုတာ Segregated Witness
Segregate = Seperate
Witness = Witness data ( spending script and signature)Signature ကြောင့် TXID ပြောင်းတာဆိုတော့ signature ကို block ထဲမှာ ထည့်သိမ်းတာမလုပ်တော့ပဲ sig data ကို witness data အ ဖြစ် သပ်သပ်ခွဲထုတ်ပြီး block မှာ attach လုပ်လိုက်ပါတယ်။ သီးသန့်ခွဲထုတ်လိုက်တော့ block မှာ space လဲ ပိုထွက်လာသလို hash လုပ်မဲ့အထဲမှာ ScriptSig မပါတော့ TXID ပြောင်းစရာ အကြောင်းလဲ မရှိတော့ပါဘူး။
SegWit2x ဆိုတာလဲ ရှိခဲ့ပါသေးတယ်။ upgrade လုပ်ရင် actual block size 2MB ကို ပြောင်းပြီး hard fork ပုံစံ upgrade လုပ်ရမှာပါ။ SegWit2x ကို community ဖက်ကရော developer ဖက်ရော အားပေးထားတာ support ထားတာ မရှိလို့ upgrade မလုပ်ဖြစ်ခဲ့ပါဘူး။
SegWit က Bitcoin network upgrade မှာတော်တော်လေး အရေးပါပါတယ်။ နောက် upgrade တွေဖြစ်တဲ့ lightning network (off-chain and depend on unconfirmed transactions) နဲ့ taproot (MAST + Schnorr Signature) တို့ကို အစပျိုးပေးလိုက်တယ်ဆိုလဲ မမှားပါဘူး။
Bitcoin ရဲ့ lightning network နဲ့ taproot မပြောခင် On-chain & off-chain, Cryptography အကြောင်းကို သိထားရပါလိမ့်မယ်။
On-chain & off-chain
On-chain ဆိုတာ ကိုယ့် txns တွေအားလုံးကို miners က validate လုပ် ၊ ပြီးတာနဲ့ blocks ပေါ်မှာသိမ်းလိုက်တာမျိုး။
Off-chain ဆိုတာ blocks ပေါ်မှာ တခါတည်း မသိမ်းပါဘူး။
သီးသန့် စာရင်းတွေလုပ်ပြီးမှ ဠာနချုပ်ဆီ စာရင်းပြန်အပ်သလိုမျိုးပါ။ Transaction တခုချင်းစီ အတည်ပြုနေမဲ့အစား စုစုပြီးမှ အတည်ပြုတာကြောင့် scalability အားအရမ်းကောင်းလာပါတယ်။ third-party ကထိန်းထားတာမျိုးတွေတော့ရှိပေမဲ့ နောက်ဆုံး blocks ပေါ်မှာပဲ သိမ်းတာဆိုတော့ security လဲ ကောင်းပါတယ်။
»»»»» Cryptography အကြောင်း «««««
Lightning network
Lightning network က off-chain solution နဲ့ Scalability တက်အောင်လုပ်ထားတာရှိပါသေးတယ်။ BTC ရဲ့ layer 2 solution ပါ။ layer 2 ဆိုတာက ရှိပြီးသား layer 1 ပေါ်မှာပဲ တည်ဆောက်ထားပြီး scalability တက်အောင် လုပ်ထားတဲ့ solution ပါ။
Lighting network (LN) က သူ့ သီးသန့် nodes ရှိပါတယ်။ hard fork တော့ မဟုတ်ပါဘူး။ mini-ledger လို့ခေါ်တဲ့ channel တွေမှာ txns တွေလုပ်ကြပြီး block confirmation မလိုပါဘူး။ channels တွေ close လုပ်ပြီးမှ နောက်ဆုံး blockchain ပေါ်မှာ သိမ်းပါတယ်။
ပုံမှန် BTC network ပဲသုံးမယ်ဆိုရင် ကိုယ့်ရဲ့ txn မြန်မြန် verify ဖြစ်ချင်ရင် fee တိုးပေးလို့ရပါတယ်။ ဒါပေမဲ့ 3$ coffee ကို +5$ fee နဲ့ဆို အဆင်မပြေနိုင်ပါဘူး။ ဘယ်လောက်မြန်မြန် coffee takeaway ရတာနဲ့ တန်းထွက်လို့ရမှာ မဟုတ်ပါဘူး။
LN က micropayments အတွက်ရော privacy အတွက်ရော အရမ်းသင့်တော်ပါတယ်။ micropayments က 1 satoshi (0.00000001 BTC) အထိခွင့်ပြုထားပါတယ်။ Privacy အတွက်ကတော့ ဘယ် xn က channel ဖွင့်လိုက်တယ် ပိတ်လိုက်တယ် ပဲ သိပြီး နောက်ဆုံး funds တွေ ဘယ်သူဘယ်ဝါဆီရောက်မှန်း မသိနိုင်ပါဘူး။
LN ရဲ့ mechanism
Multisig address နဲ့ channel run မဲ့ party 2 ခု က စပြီး သူတို့သုံးမဲ့ BTC ပမာဏ ကို lock လုပ်လိုက်ပါတယ်။ multisig ထဲ funds တွေ lock မလုပ်ခင် ကိုယ့် funds ဘယ်လောက် lock မှာပါလို့ ပြတဲ့ commitment transactions အရင် create လုပ်ရပါတယ်။ Channel မပိတ်မချင်း သူတို့ 2 party ကြား txns တွေ ကြိုက်သလို လုပ်လို့ရပါတယ်။ Channel အတွင်း Txns တွေ လုပ်ပြီးတိုင်းလဲ update စာရင်းရှိပါတယ်။
Multisig ဆိုတော့ 1 ယောက်က ဒီတိုင်း channel မပိတ်တော့ဘူး ဆိုရင်ရော? ကိုယ့် BTC တွေ trap ဖြစ်မနေဘူးလာ?
HTLC (hash time lock contracts) ကိုသုံးထားပါတယ်။
သမာရိုးကျ channel close ဖို့ 2 party လုံး sign လုပ်ရမှာဖြစ်ပေမဲ့ 1 party က cooperate မဖြစ်ဘူးဆိုရင် HTLC က တဖက်လူကို funds တွေပြန်ရဖို့ ကာကွယ်ပေးထားပါတယ်။
Party 2 ခုကြား transactions တွေလုပ်ပြီးတိုင်း updated mini-ledger အတိုင်း fund တွေ ပြန်ထုတ်ခွင့်ရှိအောင်လုပ်ထားပါတယ်။ နာမည်အတိုင်းပါပဲ hash lock နဲ့ time lock 2 မျိုးပေါင်းထားတဲ့ contract ပါ။ hash lock ဆိုတာ A ရဲ့ secrete ကို hash လုပ်ပြီး B ကိုပို့တယ်။ B မှာက A ရဲ့ hash ထားတဲ့ secret ပဲရထားတယ်။ A ရဲ့ secret ကိုသိရင် funds တွေ spend လုပ်လို့ရမှာပါ။ time lock ကတော့ သတ်မှတ်ထားတဲ့ အချိန်အတိုင်းအတာ တခုပါ။ block height လို့လဲ ပြောလို့ရပါတယ်။ HTLC က တခါသုံး trusted setup လို့ပြောလို့ရပါတယ်။ ဥပမာ A မှ B သို့ transaction လွှဲပြီး nodes တွေကို broadcast လုပ်ရင် A ရဲ့ secret ကို B ကို ပေးလိုက်သလိုဖြစ်သွားပါပြီ။ A ကတော့ သတ်မှတ်ထားတဲ့ time lock ပြီးမှ funds တွေ spend လုပ်ခွင့်ရှိပါတယ်။ B ကတော့ A မူမမှန်ရင် သူ့ funds တွေ ထုတ်သွားလို့ရပါတယ်။ transaction တခါလုပ်တိုင်းလုပ်တိုင်း secret code ပြောင်းပြောင်းသွားတယ်ဆိုလဲ မမှားပါဘူး။
သမာရိုးကျ ဆိုရင်တော့ နောက်ဆုံး updated balance နဲ့ channel close ချင်ရင် 2 party လုံး sign ထိုးပြီး funds တွေ ထုတ်လို့ရပါတယ်။ ပြီးမှ main blockchain ပေါ်မှာ transaction 1 ခုတည်း အနေနဲ့ သွားသိမ်းပါတယ်။ channel အတွင်း ဖြစ်ပျက်ခဲ့တဲ့ txnsတွေ မပါပါဘူး။ Channel ဖွင့်ထားတဲ့ သူတွေကြားမှာ အားလုံး အဆက်အသွယ်ရှိပါတယ်။ A to B, B to C ဆိုရင် A to C လဲ payment လုပ်လို့ ရပါတယ်။ routing payments လို့ခေါ်ပါတယ်။
LN ဆိုတာ multisig နဲ့ HTLC ကို ပေါင်းထားတာကို နားလည်မယ်လို့ ထင်ပါတယ်။
Taproot upgrade
2021 မှာတော့ BTC ပေါ်မှာ taproot upgrade လုပ်ခဲ့ပါတယ်။ Taproot မှာ Schnorr Signatures နဲ့ MAST ( merkelized alternative script tree) နည်းပညာတွေ ပါဝင်ပါတယ်။ Schnorr Signatures က multisig ရဲ့ privacy မရှိတဲ့ ပြသနာကို signature aggregation လုပ်ပြီး single unique signature ထုတ်ပေးခြင်းဖြင့် ဖြေရှင်းထားပါတယ်။
MAST က တော့ နောက်ပိုင်း upgrade ဖြစ်ပြီး သုံးလာတဲ့ mulitsig txns, HTLC တွေအတွက် heavy data တွေဖြစ်မနေအောင် single script အနေနဲ့ ဆောင်ရွက်ထားပါတယ်။ A single MAST transaction can represent multiple transactions ပါ။ Taproot ဟာ BTC network ပေါ်မှာ smart contracts ၊ defi ၊ NFT projects တွေ run ဖို့ လမ်းကြောင်းစပေးတဲ့ upgrade လို့လဲ ပြောလို့ရပါတယ်။
Bitcoin pizza day
May 22, 2010 တုန်းက ဖြစ်ခဲ့တာပါ။ Floridian programmer, Laszlo Hanyecz က pizza 2 ချပ်ကို BTC 10,000 BTC နဲ့ trade လုပ်ခဲ့ပါတယ်။ အဲ့တုန်းက BTC 1 block mine လုပ်ရင် 50 BTC ရနေပြီး 10,000 BTC က 41$ ဝန်းကျင်သာ တန်ဖိုးရှိပါတယ်။
Bitcoin နဲ့ ပတ်သက်တဲ့ websites တွေပါ။
https://bitcoin.org/en/
https://bitcoinmagazine.com/
BTC mining ရဲ့ energy consumption နဲ့ပတ်သက်ရင် https://bitcoinminingcouncil.com/ မှာ ဝင်ကြည့်လို့ရပါတယ်။
Resources: Most facts from Binance Academy



