買了N種數字貨幣的你,「資產安全」和「隱私保護」怎麼得到保證?二
怎麼保證資產在跨鏈過程中是安全的?
如何保證跨鏈資產的安全?如果有一種辦法可以把交易隱藏起來呢?(把交易隱藏起來,這是不是很瘋狂?)
針對資產跨鏈(我們用M來表示)的隱私交易,環簽名和一次性地址,以及郵票系統在萬維鏈中的具體應用會是這樣的:
跨鏈資產的隱私交易
同樣是你想要發送一筆100M的交易給你朋友小紅。
你用上述一次性地址的原理,即利用小紅的原生賬戶和伴生賬戶,給小紅生成一個一次性賬戶,然後向賬戶里充值100M。這個一次性賬戶的私鑰只有小紅用她的原生賬戶和伴生賬戶的私鑰才能生成。
也就是說,你為小紅生成的這個一次性賬戶,拿不到小紅的兩個的賬戶的密碼,是沒辦法解鎖提幣的。
充值到一次性賬戶後,因為你要發起交易,你需要支付燃料費,所以你需要去買一張郵票,作為你已經支付了燃料費的證明,買郵票的時候需要提交你為之買郵票的一次性地址。
買完這張郵票,智能合約根據你郵票的面值,將你提交的一次性地址納入大家都是同樣面值的郵票序列裡面。
在其他人看來,這一個序列里的一堆交易都是一樣的,也就是你的交易被隱藏在相同的一堆交易里。這樣你的交易就實現了匿名。
之後,在這一堆看起來發送相同交易的人,對各自的交易簽了名後,交易就發出去了。
小紅收到轉賬,用她的原生賬戶和伴生賬戶,生成你為她生成的一次性賬戶的私鑰,然後小紅就可以使用這筆資產了。
在跨鏈資產的隱私交易上,萬維鏈主要用了三種技術來把交易隱藏起來,保證資產交易的安全。
上述故事裡涉及到三項技術:環簽名、一次性地址,以及郵票系統。我們來看看這三種技術分別是什麼?
環簽名
環簽名可以使用戶的交易擁有匿名的能力。簽名者首先選定一個臨時的簽名者集合,集合中包括簽名者自身。簽名者集合中的其他成員可能並不知道自己被包含在其中。
一個普通的簽名的實現過程是這樣的:
環簽名通過模糊身份認證,只能證明一個人屬於某一個組,卻不知道具體是哪個人:
這樣就能使交易具有高度的匿名性:
但這樣的環簽名存在一個問題:如果大家是對金額不一樣的交易進行環簽名,只要對不同的金額進行對比,就能知道哪個交易是誰發出的。所以,萬維鏈在原生幣的交易上:只有金額相同的交易才能進行環簽名。(而跨鏈幣種的交易由於採取郵票系統,郵票就已經幫助交易發出者隱匿了身份,所以不需要規定相同交易額才能進行環簽名)
一次性地址(官方吐槽:小闊號多的有點難懂,其實這點不難的~)
萬維鏈上Alice的原生賬戶(A,a),其中A為公鑰,a為私鑰,為構成一次性賬戶系統所需形式,Alice生成新賬戶(B,b)作為伴生賬戶,添加到原有賬戶後,在一次性賬戶系統中,(A,B)作為Alice的主賬戶,(a,b)作為 Alice的主賬戶私鑰,(A,b)作為Alice的掃描密鑰。
一次性賬戶系統中用戶的子賬戶通常不是自己生成, 而是由交易對方為用戶生成。如Bob要為Alice生成一次性賬戶,則將Alice的主賬戶(A,B)通過一個函數生成Alice的一次性賬戶(A?,S?)。
利用主賬戶私鑰(a,b)得到一次性賬戶(A?,S?)對應私鑰sk。Alice只有在擁有掃描密鑰(A,b)才能確定某個一次性賬戶屬於自己,擁有主賬戶私鑰 (a,b)才能得到一次性賬戶私鑰。
因此,任何其他用戶在沒有掃描密鑰(A,b)時無法建立一次性賬戶與 Alice主賬戶的對應關係,保證了主賬戶和一次性賬戶的隔離不可追溯,而在沒有主賬戶私鑰(a,b)時無法得到一次性賬戶私鑰,保證了一次性賬戶安全。
郵票系統
郵票系統其實也是在萬維鏈上部署的一個智能合約。郵票系統被用在除原生幣之外的其他Token在萬維鏈的交易中。
為什麼需要郵票系統呢?智能合約調用時由於加入隱私保護功能讓交易發起者隱藏,導致gas消耗找不到買單的人。
在郵票系統下,當用戶需要使用代幣交易的隱私保護功能時,需要使用郵票智能合約購買郵票,購買郵票的時候你需要提供你給交易對方生成的一次性地址,購買郵票後,智能合約會把你的一次性地址記錄在相同面額郵票的序列中。這時候你在這個序列的交易中進行環簽名,交易之後就發出去了。
這樣一來,購買該郵票的費用就相當於支付了gas消耗的費用。
通過上述把交易、交易發起方,和因為一次性地址找不到的接受者隱藏。從這三個方面實現了資產在跨鏈過程中的安全性保障。
懂了這三個技術的朋友是不是感覺:彷彿眼前突然出現了一道光~
對上述技術還有什麼疑問的地方,明晚還有一場萬維鏈創始人呂總的直播哦,你的問題有可能會被萬維鏈創始人呂旭軍(Jack Lu)親自回答哦~


TAG:矽谷密探 |