零幣(Zcash)官網、錢包、礦池及交易網站
零幣,Zcash
2018/01/21 17:30
27026
零幣Zcash(ZEC)是一種採用零知識證明演算法的透明和匿名性共存的新型加密數字資產,採用EquiHash演算法和PoW的方式構建適合普通電腦挖礦的分發機制。發行總量與比特幣相同,總共2100萬。
Zcash是一個去中心化的開源密碼學貨幣專案,透過使用先進的密碼學技術提供交易隱私和可選擇的透明性。Zcash支付被髮布在一個公有區塊鏈上,但是交易傳送者、接收者和交易數額是保密的。Zcash基於同行評議的密碼學研究,並且是由專注於安全的世界級團隊基於比特幣核心程式碼開發的。我們對比特幣的改進是增加了隱私性。Zcash使用先進的密碼學技術,即零知識證明,最大程度地保護網路上交易的隱私。
Zcash 可以加密交易中的特定內容。由於交易資訊是加密的,Zcash 協議使用了一個新穎的密碼學技術來驗證交易資訊的真實性。
Zcash使用一個被稱為 zk-SNARK的零知識證明架構,該架構是由我們的經驗豐富的密碼學家團隊在近期的突破基礎上開發的。這個框架允許網路在不公開交易參與方或者交易數額的情況下維護一個安全的賬戶餘額賬本。Zcash交易的元資料是加密的,而不是公開地展示交易參與方和交易數額,zk-SNARK被用來證明沒有人進行欺騙或者偷竊。
Zcash 同樣可以像比特幣一樣使使用者具有傳送公開透明交易的功能。透過同時使用隱私地址和透明地址,使用者可以選擇使用隱私方式或公開方式傳送 Zcash。從隱私地址向透明地址的的 Zcash 交易完成時,賬戶的資金將被揭露,而從透明地址向隱私地址的交易完成時,賬戶的資金將被隱藏。
Zcash官網:https://z.cash/
交易平臺
幣安網 :https://www.binance.com/ Bithumb :https://www.bithumb.com/HitBTC :https://hitbtc.com火幣Pro :https://www.huobi.pro/Bit-Z :https://www.bit-z.comUpbit :https://upbit.com/B網 :https://bittrex.comBitfinex :https://www.bitfinex.com
zk-SNARK 演算法簡介
zk-SNARK 是 zero-knowledge succint non-interactive arguments of knowledge 的簡稱,其中:
Succint (簡潔性) : 與實際計算的長度相比,生成的零知識證據訊息很小。
Non-interactive (非互動性) : 幾乎沒有任何互動。對於 zk-SNARK 演算法來說,通常有一個構建階段,構建階段完成之後,證明者 (prover) 只需向驗證者 (verifier) 傳送一個訊息即可。而且,SNARK 通常還有一個被稱作是 "公開驗證者" 的特性,意味著任何人無需任何互動即可驗證零知識證據,這對區塊鏈是至關重要的。
Arguments (爭議性) : 驗證者只能抵抗計算能力有限的證明者的攻擊。具有足夠計算能力的證明者可以建立偽造的零知識證據以欺騙驗證者 (注意剛提到的足夠的計算能力,它足可以打破公鑰加密,所以現階段可不必擔心)。這也通常被稱為 "計算完好性 (computational soundness)",而不是 "完美完好性 (perfect soundness) "。
of Knowledge : 對於一個證明者來說,在不知曉特定證明 (witness) 的前提下,構建一個有效的零知識證據是不可能的。
zero-knowledge 字首說明了在驗證過程中,驗證者除了知道證明者的陳述是正確有效的,不能學習到任何關於該論述的內容,舉例來說,在 zcash 中,礦工知道一筆交易是有效的,但是卻不知道這筆交易的發起者,接收者以及轉賬金額等關鍵性隱私資訊。
一、瞭解 zk-SNARK 演算法
我們首先來了解一下將 zk-SNARK 演算法應用到實際場景中需要經過哪些步驟 (參考 vitalik 在 medium 釋出的關於 zk-SNARK 演算法的一系列文章 https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649 , https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627 , https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6 有興趣和能力的朋友應該去讀一讀,深入淺出的文章,我正是看了這些文章才入的門):
驗證規則到 R1CS 形式的轉換: 實際場景中,大部分問題但是 NP 問題,即可以在多項式時間內驗證結果的正確性,zk-SNARK 演算法適用於所有的 NP 問題,目前還不清楚,對於 NP 之外的問題,zk-SNARK 演算法是否適用。我們要做的就是確定問題的驗證規則,例如在比特幣中,一筆交易是否有效的問題就是 NP 問題,驗證規則主要是,輸入的金額是否大於等於輸出的金額,這筆交易是否有合適的簽名,輸入是否屬於 UTXO等。所謂的 R1CS (rank-1 constraint system) 就是一系列三元組向量 (a, b, c),它是驗證規則的數學形式體現,如何將驗證規則轉換為 zk-SNARK 友好的 R1CS 形式,可檢視 vitalik 的文章,這裡就不再贅述。
R1CS 到 QAP 的轉換: QAP 是 Quadratic Arithmetic Programs 的簡稱。透過拉格朗日插值法或者快速傅立葉變化,我們可以將 R1CS 轉換一系列成多項式的形式,使得 A(x) B(x) - C(x) = H(x)Z(x) 成立,零知識證據的證明主要圍繞著 QAP 展開。
其實 zk-SNARK 演算法背後還涉及了有限域、橢圓曲線等知識,最重要的橢圓曲線結對的使用,大家有興趣可去尋 vitalik 的文章檢視。
二、如何使用 zk-SNARK 演算法
zk-SNARK 演算法的主要作者們寫了一個 libsnark 庫,提供了一些基礎元件,zcash 用的零知識證明庫就是 libsnark 的一個 fork 版本。我本人剛開始看到這個庫時也是一籌莫展,即使在我瞭解了這麼多關於 zk-SNARK 背後的技術知識後。而後,尋得一個作者編寫的簡單例子,才基本入了門。最後,自己也加了一些複雜的功能,放在了我的 github 上。
零幣(Zcash)官網、錢包、礦池及交易網站
零幣,Zcash
2018/01/21 17:30
27026
零幣Zcash(ZEC)是一種採用零知識證明演算法的透明和匿名性共存的新型加密數字資產,採用EquiHash演算法和PoW的方式構建適合普通電腦挖礦的分發機制。發行總量與比特幣相同,總共2100萬。
Zcash是一個去中心化的開源密碼學貨幣專案,透過使用先進的密碼學技術提供交易隱私和可選擇的透明性。Zcash支付被髮布在一個公有區塊鏈上,但是交易傳送者、接收者和交易數額是保密的。Zcash基於同行評議的密碼學研究,並且是由專注於安全的世界級團隊基於比特幣核心程式碼開發的。我們對比特幣的改進是增加了隱私性。Zcash使用先進的密碼學技術,即零知識證明,最大程度地保護網路上交易的隱私。
ZCASH 如何工作Zcash 可以加密交易中的特定內容。由於交易資訊是加密的,Zcash 協議使用了一個新穎的密碼學技術來驗證交易資訊的真實性。
Zcash使用一個被稱為 zk-SNARK的零知識證明架構,該架構是由我們的經驗豐富的密碼學家團隊在近期的突破基礎上開發的。這個框架允許網路在不公開交易參與方或者交易數額的情況下維護一個安全的賬戶餘額賬本。Zcash交易的元資料是加密的,而不是公開地展示交易參與方和交易數額,zk-SNARK被用來證明沒有人進行欺騙或者偷竊。
Zcash 同樣可以像比特幣一樣使使用者具有傳送公開透明交易的功能。透過同時使用隱私地址和透明地址,使用者可以選擇使用隱私方式或公開方式傳送 Zcash。從隱私地址向透明地址的的 Zcash 交易完成時,賬戶的資金將被揭露,而從透明地址向隱私地址的交易完成時,賬戶的資金將被隱藏。
Zcash官網:https://z.cash/
交易平臺
幣安網 :https://www.binance.com/ Bithumb :https://www.bithumb.com/HitBTC :https://hitbtc.com火幣Pro :https://www.huobi.pro/Bit-Z :https://www.bit-z.comUpbit :https://upbit.com/B網 :https://bittrex.comBitfinex :https://www.bitfinex.com
zk-SNARK 演算法簡介
zk-SNARK 是 zero-knowledge succint non-interactive arguments of knowledge 的簡稱,其中:
Succint (簡潔性) : 與實際計算的長度相比,生成的零知識證據訊息很小。
Non-interactive (非互動性) : 幾乎沒有任何互動。對於 zk-SNARK 演算法來說,通常有一個構建階段,構建階段完成之後,證明者 (prover) 只需向驗證者 (verifier) 傳送一個訊息即可。而且,SNARK 通常還有一個被稱作是 "公開驗證者" 的特性,意味著任何人無需任何互動即可驗證零知識證據,這對區塊鏈是至關重要的。
Arguments (爭議性) : 驗證者只能抵抗計算能力有限的證明者的攻擊。具有足夠計算能力的證明者可以建立偽造的零知識證據以欺騙驗證者 (注意剛提到的足夠的計算能力,它足可以打破公鑰加密,所以現階段可不必擔心)。這也通常被稱為 "計算完好性 (computational soundness)",而不是 "完美完好性 (perfect soundness) "。
of Knowledge : 對於一個證明者來說,在不知曉特定證明 (witness) 的前提下,構建一個有效的零知識證據是不可能的。
zero-knowledge 字首說明了在驗證過程中,驗證者除了知道證明者的陳述是正確有效的,不能學習到任何關於該論述的內容,舉例來說,在 zcash 中,礦工知道一筆交易是有效的,但是卻不知道這筆交易的發起者,接收者以及轉賬金額等關鍵性隱私資訊。
一、瞭解 zk-SNARK 演算法
我們首先來了解一下將 zk-SNARK 演算法應用到實際場景中需要經過哪些步驟 (參考 vitalik 在 medium 釋出的關於 zk-SNARK 演算法的一系列文章 https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649 , https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627 , https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6 有興趣和能力的朋友應該去讀一讀,深入淺出的文章,我正是看了這些文章才入的門):
驗證規則到 R1CS 形式的轉換: 實際場景中,大部分問題但是 NP 問題,即可以在多項式時間內驗證結果的正確性,zk-SNARK 演算法適用於所有的 NP 問題,目前還不清楚,對於 NP 之外的問題,zk-SNARK 演算法是否適用。我們要做的就是確定問題的驗證規則,例如在比特幣中,一筆交易是否有效的問題就是 NP 問題,驗證規則主要是,輸入的金額是否大於等於輸出的金額,這筆交易是否有合適的簽名,輸入是否屬於 UTXO等。所謂的 R1CS (rank-1 constraint system) 就是一系列三元組向量 (a, b, c),它是驗證規則的數學形式體現,如何將驗證規則轉換為 zk-SNARK 友好的 R1CS 形式,可檢視 vitalik 的文章,這裡就不再贅述。
R1CS 到 QAP 的轉換: QAP 是 Quadratic Arithmetic Programs 的簡稱。透過拉格朗日插值法或者快速傅立葉變化,我們可以將 R1CS 轉換一系列成多項式的形式,使得 A(x) B(x) - C(x) = H(x)Z(x) 成立,零知識證據的證明主要圍繞著 QAP 展開。
其實 zk-SNARK 演算法背後還涉及了有限域、橢圓曲線等知識,最重要的橢圓曲線結對的使用,大家有興趣可去尋 vitalik 的文章檢視。
二、如何使用 zk-SNARK 演算法
zk-SNARK 演算法的主要作者們寫了一個 libsnark 庫,提供了一些基礎元件,zcash 用的零知識證明庫就是 libsnark 的一個 fork 版本。我本人剛開始看到這個庫時也是一籌莫展,即使在我瞭解了這麼多關於 zk-SNARK 背後的技術知識後。而後,尋得一個作者編寫的簡單例子,才基本入了門。最後,自己也加了一些複雜的功能,放在了我的 github 上。