2016年5月,一篇匿名白皮書介紹了一種隱私性加密實(shí)現(xiàn)方式并命名為MimbleWimble,其名源于《哈利波特》中一種防止人們泄露秘密的咒語。與大
2016年5月,一篇匿名白皮書介紹了一種隱私性加密實(shí)現(xiàn)方式并命名為MimbleWimble,其名源于《哈利波特》中一種防止人們泄露秘密的咒語。
與大眾所熟知的Zcash不同,MimbleWimble不需要可信的設(shè)置,所有交易都是默認(rèn)隱私性,不需要進(jìn)行選擇設(shè)置。此篇文章主要講述MimbleWimble如何做到隱私,以及分別比較MimbleWimble兩個(gè)項(xiàng)目Grin和Beam有何獨(dú)特的優(yōu)勢。
中本聰發(fā)布的白皮書中有名為“Privacy”章節(jié)中清楚的闡釋了BTC隱私的局限,如果一旦發(fā)生網(wǎng)絡(luò)攻擊,黑客可以獲取到BTC用戶相關(guān)數(shù)據(jù)定位以及其他數(shù)據(jù)標(biāo)簽將用戶“透明化”,這些數(shù)據(jù)側(cè)面描寫可以顯示出:
1. 發(fā)送者地址
2. 發(fā)送BTC數(shù)量
3. 接收者地址
BTC底層的UXTO模型使得在進(jìn)行交易的時(shí)候避免了雙花,保持交易平衡。為了驗(yàn)證BTC的底層系統(tǒng)滿足第二個(gè)條件,給每一個(gè)地址的用戶生成了相對應(yīng)的私鑰,其中公開地址持有BTC發(fā)送者通過使用對應(yīng)私鑰產(chǎn)生一個(gè)簽名,并為他的交易簽名。每個(gè)人都可以驗(yàn)證這個(gè)簽名是由持有比特幣的地址對應(yīng)的私鑰產(chǎn)生的;這樣我們就驗(yàn)證了交易來自有權(quán)發(fā)起交易的人。
而Mimblewimble 可以在不泄露雙方地址和交易數(shù)量進(jìn)行完整交易。相較于比特幣協(xié)議,Mimblewimble 的匿名性更強(qiáng),并且更輕便。
什么是MimbleWimble 協(xié)議?
Mimblewimble 最初是被定義為一種對比特幣的改進(jìn),因比特幣創(chuàng)立之初的去中心原則的設(shè)計(jì),如今能夠運(yùn)行完整節(jié)點(diǎn)的數(shù)量正在減少,單個(gè)節(jié)點(diǎn)承載區(qū)塊鏈所有的歷史記錄使得記錄成本越來越高。
MimbleWimble 基于橢圓曲線加密,通過為所有輸入和輸出創(chuàng)建一個(gè)多重簽名來更改比特幣模型。參與交易的各方創(chuàng)建一個(gè)可以驗(yàn)證交易的公共多重簽名密鑰。特別的是系統(tǒng)中沒有地址,因?yàn)閰⑴c交易的雙方分享 “致盲因子”信息,簡單的來說就是只有交易雙方才會(huì)知道相關(guān)交易信息,從而保護(hù)用戶的網(wǎng)絡(luò)隱私。
致盲因子(Blinding factor,縮寫 BF):是一種用于電子錢幣的造幣技術(shù)。致盲因子的功能即是讓此電子錢幣的序號(hào)加盲,讓電子錢幣身份識(shí)別序號(hào)和金額利用顧客的私鑰送給銀行。銀行使用顧客在網(wǎng)絡(luò)上的公開金鑰解開資料封包,確認(rèn)身份識(shí)別和賬號(hào)余額無誤后,增加顧客的e-cash liability金額。
接著在傳送給顧客銀行的私鑰,顧客再以銀行在網(wǎng)絡(luò)上發(fā)行的公開金鑰解開資料封包,顧客取得電子錢幣簽章后,以還原的方式去除致盲因子,即可取得經(jīng)網(wǎng)絡(luò)銀行簽章過后的原始電子錢幣序號(hào)。
致盲因子幫助交易雙方共享交易信息同時(shí)也屏蔽節(jié)點(diǎn)知道交易信息的可能,并且對特定事務(wù)中的輸入和輸出以及事務(wù)方的公鑰和私鑰也進(jìn)行加密。在 MimbleWimble 使用了Pedersen 承諾方案,在該設(shè)計(jì)中,全節(jié)點(diǎn)從事務(wù)接收端加密的數(shù)量(輸出)減去事務(wù)發(fā)送端加密的數(shù)量(輸入)。
這個(gè)平衡的等式意味著不會(huì)憑空產(chǎn)生幣,節(jié)點(diǎn)也永遠(yuǎn)不需要知道交易信息。
舉一個(gè)簡單的例子來說明致盲因子是如何工作的:
1 + 1 = 2 // 1 + 1-2 = 0
這只是一個(gè)簡單的平衡方程式,表明沒有創(chuàng)造新的資金(通過重新排列以顯示余額為凈零)。
1*5+ 1*5= 2*5
這里將需要加密的數(shù)字5乘以所有變量,就使原始值模糊不清。
5 + 5 = 10
因此得出,價(jià)值是恒定的,并且致盲因子也是被加密的。由此看出MimbleWimble 的創(chuàng)造性,其中致盲因子實(shí)際上是交易方私鑰和公鑰的組合,通過這個(gè)被模糊但相等的等式,我就可以證明交易數(shù)量相等,并且我是密鑰的持有者。
在交易結(jié)束時(shí),您將獲得此交易的多重簽名,并且在交易時(shí)的大多數(shù)輸入被輸出消耗,使得在更少的空間內(nèi)(較與比特幣)就可進(jìn)行完整驗(yàn)證,上鏈的數(shù)據(jù)減少了并且摒除繁雜步驟剔除多余的數(shù)據(jù),MimbleWimble 運(yùn)行便很大程度上得益于只在區(qū)塊鏈中存儲(chǔ)少量數(shù)據(jù)。
Grin 和 BEAM 是基于 MimbleWimble 協(xié)議兩種不同的加密方式,盡管表面上相似,但除了基于 MimbleWimble 協(xié)議之外,其他各個(gè)方面都不同。
GRIN
2016年11月以Grin為命名初次實(shí)現(xiàn)了MimbleWimble協(xié)議,由Ignotus Peverell在IRC發(fā)布,如今依然是Grin最活躍的代碼貢獻(xiàn)者。Grin主要編譯語言是Rust,主網(wǎng)于今年1月15日上線,一經(jīng)上線便吸引了大批資本礦池與礦工加入。
Grin使用了新的 Cuckoo Cycle,這是 John Tromp 在 2015 年開發(fā)的替代POW的證明。盡管該算法的設(shè)計(jì)初衷是抵抗 ASIC,但該團(tuán)隊(duì)長期以來一直認(rèn)為 ASIC是不可避免的。2018 年 9 月出現(xiàn)了兩種解決方案:一種優(yōu)化為 ASIC 友好型( Cuckatoo31+);另一種優(yōu)化為允許 GPU 競爭( Cuckaroo29 ), POW 每 24 小時(shí)平衡兩種算法之間的挖掘獎(jiǎng)勵(lì),從而抵抗像比特幣的硬件武裝競賽現(xiàn)象出現(xiàn)。
除了令人印象深刻的Cuckoo算法之外,Grin還有一些有趣的特點(diǎn):
1. SnRoR簽名,也稱為聚合簽名,為ScriptlessScripts支持智能合約鋪平道路。
2. 蒲公英協(xié)議,這使得初始發(fā)送人的IP更難以追蹤。在進(jìn)行廣播之前,所有的交易都在網(wǎng)絡(luò)上徘徊。
3. 防彈技術(shù),它允許對更小的零知識(shí)證明的私密交易進(jìn)行處理,不需要可信的設(shè)置。
4. flyclient,一個(gè)超輕量級客戶端,它同步所有先前Block Header的默克爾根,而不是對前一塊的引用。它允許通過存儲(chǔ)Head來檢查任何先前塊的包含。
5. 原子交換,Grin的第一個(gè)原子交換,Grin testnet3和Ethereum Ropsten testnet之間進(jìn)行了第一次原子交換已經(jīng)成功實(shí)現(xiàn)。
BEAM
2018年4月出現(xiàn)了另一個(gè)MimbleWimble嘗試——Beam,編譯語言為C++,在很短的時(shí)間內(nèi)Beam發(fā)布了測試網(wǎng),并且在近期推出兼容 Mimblewimble 協(xié)議的閃電網(wǎng)絡(luò)( LN ),在鏈下價(jià)值快速轉(zhuǎn)移的情況下實(shí)現(xiàn)第二層擴(kuò)展解決方案,提高可用性便于商業(yè)支付場景。
Equihash是一種需要高內(nèi)存的工作量證明,這意味你能挖到多少幣主要取決于你的設(shè)備內(nèi)存的大小。在短期內(nèi)要?jiǎng)?chuàng)建一個(gè)低成本的挖礦定制硬件(專用集成電路)幾乎不可能,所以Equihash被認(rèn)為可以構(gòu)造更去中心化的一種POW算法。
除了Equihash外,Beam的一些有趣的部分還包括:
1. 在Stem階段用混淆合并交易進(jìn)一步改進(jìn)蒲公英協(xié)議。
2. BatchBulletproofs簽名。
3. 超輕量級的flyclient實(shí)現(xiàn)。
4. 安全的BBS,這就降低了發(fā)送者和接收者同時(shí)在線的需求。
5. 可審核的錢包,能夠?yàn)榈谌桨l(fā)出一個(gè)或多個(gè)審計(jì)密鑰。
6. 視覺化設(shè)計(jì)移動(dòng)錢包,全部充當(dāng)完整節(jié)點(diǎn),并與硬件錢包互相整合。
7. 在錢包內(nèi)通過P2P交易進(jìn)行比特幣的原子交換。
BEAM 和 Grin 之間的區(qū)別
閃電網(wǎng)絡(luò)最初是用來解決比特幣網(wǎng)絡(luò)阻塞問題而提出的比特幣網(wǎng)絡(luò)改進(jìn)方案。為什么要使用閃電網(wǎng)絡(luò)?
首先,更快的出塊時(shí)間并不一定意味著更快的支付確認(rèn)。其次,考慮到更多的數(shù)字貨幣支付用例,例如在酒吧付啤酒錢又著急離開、在趕火車時(shí)買了一杯飲料等情境下都需要快速支付,實(shí)驗(yàn)表明,閃電網(wǎng)絡(luò)能夠?qū)崿F(xiàn)使支付體驗(yàn)像信用卡支付一樣快速、簡單,這使其成為實(shí)現(xiàn)加密貨幣主流應(yīng)用的基礎(chǔ)之一。
Beam 和比特幣的底層協(xié)議之間存在很多差異,因此引入兼容 Mimblewimble 協(xié)議的閃電網(wǎng)絡(luò)存在一些挑戰(zhàn)。
主要差異在于 Mimblewimble 協(xié)議中缺少腳本,引入閃電網(wǎng)絡(luò)需要使用多個(gè)構(gòu)建在彼此之上的交易,這些交易的支出需求將共同形成與比特幣中的 HTLC(散列安全時(shí)間鎖合約) 相同的結(jié)構(gòu),支付渠道的參與者將合作構(gòu)建這些不同的交易,這將導(dǎo)致在通道參與者之間發(fā)送的消息增加,但 Beam 認(rèn)為這是值得的。
另一方面,閃電網(wǎng)絡(luò)的核心概念哈希時(shí)間鎖合約的構(gòu)造需要另外兩種智能合約方案:哈希鎖和相對時(shí)間鎖。哈希鎖是 Beam 基礎(chǔ)協(xié)議的一部分,但目前 Beam 還沒有實(shí)現(xiàn)相對時(shí)間鎖。(量子鏈研究院)
關(guān)鍵詞: MimbleWimble 地址 交易數(shù)量