零幣是一種數字貨幣,它旨在創建一種真正匿名的交易方法。Zcash是一個去中心化的開源密碼學貨幣項目,通過使用先進的密碼學技術提供交易隱私和可選擇的透明性。Zcash支付被發布在一個公有區塊鏈上,但是交易傳送者、接收者和交易數額是保密的。
基本介紹
- 中文名:零幣協定
- 外文名:Coin agreement
- 別稱:零鈔
- 屬於:數字貨幣
- 定義:創建一種真正匿名的交易方法
- 特點:匿名,保密
零知識證明,零鈔運行原理介紹,
零知識證明
首先簡要介紹什麼是零知識證明,它指的是證明者能夠在不向驗證者提供任何有用信息的情況下,使驗證者相信某個論斷是正確的,在零鈔的設計中,就採用了一種叫作zkSNARK ( zeroknowledge succinct noninteractive arguments ofknowledge)的非互動式的零知識證明。
zkSNARK是基於現代密碼學的證明方式,需要一個NP問題作為基本難題,在P≠NP的假定下,暴力猜出一個輸入量很大的NP完全問題(即NPC問題,下文簡稱NP難題)的解被視為計算上不可行,而要驗證一個解是對應NP難題的解則較快。
zkSNARK在需要證明者向驗證者證明自己知道某個知識時,構造與需證明內容對應的NP難題,該NP難題僅與此時的問題相關,與證明者掌握的具體知識無關,如需要向驗證者證明,證明者知道一個k,滿足高次方程f(k)=0,則高次方程f(x)=0的解x=k就是證明者知道的知識,而問題是f(x)=0,驗證者和證明者基於該方程,可以得到同一個NP難題。
當證明者知道某個知識,例如前文所述的k,便可以方便地構造對應NP難題的解,而由轉化的不可逆性(如2+2=4,而4無法推知是2十2得到的,即4無法轉化為2+2),知道NP難題的解無法推出對應的知識,因此可以在不透露具體知識(k的值)的情況下,通過給出相應NP難題的解,證明自己的確知道所需的知識。由於暴力破解該問題視為不可行,則只有擁有所需知識的人能提供相應證明。
Zcash採用的NP難題是二次算數問題(quadratic arithmetic problem, QAP),對多項式等式的驗證擁有O(1)代價的驗證方式,即只取1個點對函式值進行驗證(zkSNARK中succinct由此而來),由於任何高次方程的根數目不高於deg(f(x)),驗證時恰好取到零點的機率接近於0,因此若取到零點則視為得到了1個多項式等式,這使得驗證更為高效簡潔。
零鈔運行原理介紹
如圖中零鈔系統的概覽,其底層實現依然基於類似於比特幣的結構,而零鈔系統利用zkSNARK構造了去中心化的混幣池,通過鑄幣(mint)與澆鑄(pour)操作可以完成匿名性,所謂鑄幣過程,就是用戶向使用一定數額的零鈔兌換等值的承諾(commitment ),向1個列表中寫人承諾的過程,其中承諾必須由1個一次性的序列號以及用戶私鑰才能計算得到,並且是不可逆的。
與比特幣類似,零鈔發行數量的增加基於挖礦所得,而礦工得到的零鈔是可查詢有記錄的,其使用也需要私鑰簽名。因此若是直接使用零鈔,其與比特幣類似,可以直接完成各個地址之間的轉賬,但這時是不匿名的。而經過鑄幣操作得到的承諾與個人地址表面上無關(但是其生成依賴於公鑰和1個一次性隨機數),當用戶想要花這個幣時(即轉賬),與比特幣需要提供簽名不同,用戶需要做2件事:1)給出序列號;2)利用zkSNARK證明自己知道生成存在於承諾列表中的某個承諾的用戶私鑰,這樣,用戶就可以在完全不暴露身份的情況下,花出這個幣。
以上的簡單情形有3個問題:1)幣值總限制在已有承諾列表的數額中,實際使用不方便;2)傳送方可以通過序列號來判斷接收方正在花錢;3)接收方必須馬上花掉得到的幣,否則可能被傳送方提取。為了解決這3個問題,零鈔中引入了一種澆鑄(pour)的操作來花銷錢幣。簡單地講,澆鑄操作就是通過一系列零知識證明,將1個幣鑄造成多個等值的幣。每個新幣都有自己的密鑰、數額、序列號等等,且部分信息需要用接收者私鑰算出。除了傳送者都無從得知接收者是誰,而傳送者無法知道新幣的序列號,因此無法使用這個幣,也無法知道接收者在何時花掉了這個新幣,從而解決了以上3個問題。
除了傳送方和接收方,礦工作為零鈔交易系統中確認交易的成分,他們會在不知道交易發起者是誰,交易接收者是誰的情況下完成交易確認。礦工只需要驗證交易發起者的零知識證明,確認某個交易發起人可以使用承諾列表里的某一個承諾,並把承諾對應的序列號放人列表。在這個過程中,礦工不知道用戶具體用了承諾列表中的哪個承諾,而僅僅是知道某個承諾被使用了。而由序列號的唯一性保證了同一個承諾不能被使用2次(即防止了“雙花”)。
用戶還可以用贖回操作將混幣池中的零鈔提取出來,即所謂贖回操作。贖回操作則是把一個承諾重新換為零鈔,與之前的過程類似,礦工也並不知道哪個承諾被贖回換為零鈔。因此甚至可以說不用向任何人轉賬,僅僅是把一個零鈔放到混幣池中再贖回,它的來源都不可追蹤。
與此同時,零鈔還採用了一系列的最佳化措施來提高整個運行系統的性能。
零鈔在目前所有的密碼學貨幣中是匿名性最好的,因此受到過市場狂熱的追捧,在2016年10月底發行前後,單幣價格估值曾高達幾千個比特幣。
目前幣值穩定後,零鈔的市值大約為5.7億美元;單幣價格為231美元,排名第6。