read.cash Log in
A@Ayukawayen

再聊一下門羅幣Monero (XMR) 之前因為研究需要到Monero的技術文件網頁(*)讀了Cryptonote版的白皮書 ( https://bytecoin.org/old/whitepaper.pdf ) (*: https://www.getmonero.org/resources/research-lab/ ) 看了隱匿性地址、金額遮罩、環簽名、RingCT,到這裡都看得懂。後來Monero出了防彈協定(Bulletproof)就看不懂了。 XMR基本上也是一個TXO (Transaction output)系統 (一般都會講BTC是UTXO系統,為什麼XMR沒有U呢,這個等會再講) 它的交易特性是,對沒有參與交易的人(包含礦工)來說: 不知道誰收到錢 不知道誰送出錢 不知道發送了多少錢,但保證送出的錢和收到的錢是等量的。 不知道哪個交易輸出被花掉了,但保證同一條鏈上(*)一筆錢不會被花費兩次以上。 (*:也就是不考慮reorg和uncle block) ( 最後一項就是為什麼我現在都說XMR是TXO系統,因為分不出來哪個TXO是unspent(未花費的)。 ) 概念上來說,一個典型的BTC交易例子看起來會像這樣子: { 花費 一個甲持有的$100硬幣 + 一個甲持有的$60硬幣;產生 一個乙持有的$120硬幣 + 一個丙持有的$40硬幣。 } 如果加了隱匿性地址,外部看起來會變成這樣子: { 花費 一個%R!*Fs持有的$100硬幣 + 一個V^cfF1持有的$60硬幣;產生 一個X*a2%c持有的$120硬幣 + 一個A!gj0E持有的$40硬幣。 } 再加上金額遮罩會變成: { 花費 一個%R!*Fs持有的$(@!:>)硬幣 + 一個V^cfF1持有的$(!>_@)硬幣;產生 一個X*a2%c持有的$(@'*~)硬幣 + 一個A!gj0E持有的$(!|<*)硬幣。 } 再加上環簽名會變成: { 由 [ 一個*HBh2a持有的$(<]!*)硬幣 + 一個Gvb@8j持有的$(%!~')硬幣; 一個%R!*Fs持有的$(@!:>)硬幣 + 一個V^cfF1持有的$(!>_@)硬幣; 一個3F&pz6持有的$(:*^[)硬幣 + 一個P1L*sX持有的$(>~'%)硬幣; ... 一個Ea8@k7持有的$(~^'&)硬幣 + 一個z9O%3n持有的$("<&!)硬幣; ] 之中花費一組;產生 一個X*a2%c持有的$(@'*~)硬幣 + 一個A!gj0E持有的$(!|<*)硬幣。 } (RingCT是把環簽名和金額遮罩做整合) 最後就變成了前面提到的 不知道誰收到錢 不知道誰送出錢 不知道發送了多少錢 不知道哪個交易輸出被花掉了 但是不會有錢憑空跑出來,可以用數學證明。

7 comments

Log in to join in Reading is open to everyone. Replying needs an account.