Monero是一種安全且無法追蹤的電子加密貨幣。它來自一個(gè)開放原始碼、去中心化且任何人皆可自由參閱的開發(fā)專案。在這篇文章中,我們要來談?wù)?/p>
Monero是一種安全且無法追蹤的電子加密貨幣。它來自一個(gè)開放原始碼、去中心化且任何人皆可自由參閱的開發(fā)專案。在這篇文章中,我們要來談?wù)劖h(huán)狀簽名保密交易,通常簡(jiǎn)稱為環(huán)簽交易(RingCT)。在上一篇文章中,我們呈現(xiàn)了Monero是如何藉由創(chuàng)造無法區(qū)分的交易輸入以保護(hù)付款者的隱私。過程中使用了數(shù)位簽名的技術(shù),將真正的交易簽署者隱藏在數(shù)個(gè)環(huán)狀簽名輸入中完成一筆交易。
另外,我們也闡述了金鑰映像(key image)是如何用來防止交易輸入被重復(fù)花費(fèi)。然而為了更徹底的增加交易雙方的隱私,一個(gè)稱為環(huán)簽保密交易(RingCT)的協(xié)定被用來隱藏交易的金額。
在Monero 發(fā)展早期開始啟用RingCT 之前, Monero 的交易金額需要先分割成特別的單位數(shù)量。譬如,一筆金額為12.5 的交易輸出會(huì)被分割成三筆分別為10、2、0.5的金額。這樣的方式可以讓環(huán)狀簽名在建構(gòu)時(shí)可以有足夠等同的輸入來源,因?yàn)榄h(huán)狀簽名的輸入金額必須是一致的。但在這個(gè)交易步驟中,每一筆交易金額都是可見的。為了改善這個(gè)缺點(diǎn), Monero 在2017 年的一月啟用了RingCT 協(xié)定。在啟用RingCT 的一個(gè)月后,大約有98% 的交易都是使用RingCT 協(xié)定。而在2017 年的九月之后,所有的Monero 交易都會(huì)是強(qiáng)制使用RingCT 協(xié)定。
如今在使用RingCT 的協(xié)定下,每個(gè)在挖礦中新產(chǎn)生的Monero 會(huì)先以可見金額的形式存在于交易輸出中。而當(dāng)這些新產(chǎn)生的Monero 在第一次被轉(zhuǎn)移時(shí),將會(huì)產(chǎn)生帶有金額遮罩的RingCT 交易輸出。如此一來, Monero 的交易將不再需要被分割為特定的單位數(shù)量。
這代表著錢包在交易時(shí)可以任意挑選一個(gè)RingCT 的交易輸出,這大幅提高了匿蹤性。值得注意的是,一個(gè)環(huán)狀簽名里無法同時(shí)包含在RingCT 啟用前的舊交易輸出與帶有金額遮罩的新交易輸出。所以就如同新產(chǎn)生的Monero 的處理方式,在RingCT 啟用前的舊時(shí)期交易輸出必須要先轉(zhuǎn)換成RingCT 的交易輸出,接著才能與RingCT 的輸出形成環(huán)狀簽名。讓我們來舉個(gè)例子來解釋RingCT 是如何運(yùn)作的。
舉例來說,若Alice 擁有一個(gè)金額為12.56 的交易輸出并想付款2.5 個(gè)Monero 給Bob。由于輸出是無法被花費(fèi)兩次的,所以這個(gè)輸出將會(huì)被整筆花費(fèi)出去,之后才會(huì)將找零返回給Alice 。以這個(gè)例子為例, Alice 的這筆交易將會(huì)有一筆12.56 Monero 的輸入和兩筆輸出,第一個(gè)輸出會(huì)是要付款給Bob 的2.5 Monero ,而另一筆將會(huì)是10.06 Monero 的找零將會(huì)傳送回她原本自己的錢包。
為了防止Monero 在交易的過程中被偽造而無中生有,每一筆Monero 的交易輸入與交易輸出各自的金額總和必須相同。而在RingCT 的交易中, Alice 會(huì)被要求提供一個(gè)此筆交易輸出的資訊,此資訊僅包含了讓交易網(wǎng)路可以驗(yàn)證此筆交易的資訊,而不會(huì)公開實(shí)際上到底花費(fèi)了多少金額。盡管提供的這些資訊看起來像是隨機(jī)的數(shù)字,礦工們?nèi)匀豢梢詮倪@其中驗(yàn)證轉(zhuǎn)帳給Bob 的金額與可用的余額相同(詳見注1)。在RingCT 交易中,
另一個(gè)重要的機(jī)制是”范圍保護(hù)”,這個(gè)可以防止有人提交了負(fù)值的交易金額, 范圍保護(hù)在加密學(xué)上保證了交易中的金額是大于零并小于特定的數(shù)字,以保護(hù)Monero 的發(fā)行量?;谝陨系母鞣N機(jī)制設(shè)計(jì),使得即使外部觀察者的角度無法從交易輸出中得知真正的交易金額,但依舊是可以驗(yàn)證此筆交易為有效的。
拜Monero 擁有的隱私設(shè)計(jì)所賜,使用者可以隨意地發(fā)送給任何對(duì)象,而不用擔(dān)心有人會(huì)得知交易的金額或是交易雙方的身分。這些特性使得Monero 成為在保護(hù)隱私需求中最先進(jìn)的數(shù)位貨幣,但這些創(chuàng)新的腳步不會(huì)停歇于此。在下一部影片中,我們將討論Kovri ,一個(gè)用C++ 打造的I2P 路由技術(shù),將使得Monero 的交易更加安全。
注1: 交易中須公開的資訊由這個(gè)公式而來:rct = x_G + a_H(G) 。
在這邊最重要的變數(shù)為a與x。
H(G)和G是關(guān)系到許多在這篇文章所述之外的因素故在此不做解釋。
a是在交易中的真正金額,在文章中的例子也就是2.5。
x是用來作為金額遮罩的隨機(jī)數(shù)字,由錢包所自動(dòng)產(chǎn)生。
簡(jiǎn)單來說,這個(gè)公式可以被簡(jiǎn)單敘述為rct =隨機(jī)數(shù)字+真正的交易金額。
在RingCT的交易中,rct的值將會(huì)被發(fā)布到交易網(wǎng)路中作為一個(gè)交易輸出,而交易網(wǎng)路或礦工將可使用這個(gè)rct值去驗(yàn)證交易輸入是否等于交易輸出的金額,以確認(rèn)沒有額外的Monero 被偽造產(chǎn)生。然而,對(duì)于一個(gè)外部的觀察者來說,并無從得知變數(shù)x的實(shí)際金額,所以無法得知有多少金額在交易中被實(shí)際的花費(fèi)掉。(Monero)
關(guān)鍵詞: Monero 電子加密貨幣 RingCT協(xié)定