一、什么零知識證明(Zero—Knowledge Proof)
零知識證明(Zero—Knowledge Proof)是由S.Goldwasser、S.Micali及C.Rackoff在20世紀(jì)80年代初提出的。它指的是證明者能夠在不向驗(yàn)證者提供任何有用的信息的情況下,使驗(yàn)證者相信某個論斷是正確的。零知識證明實(shí)質(zhì)上是一種涉及兩方或更多方的協(xié)議,即兩方或更多方完成一項(xiàng)任務(wù)所需采取的一系列步驟。證明者向驗(yàn)證者證明并使其相信自己知道或擁有某一消息,但證明過程不能向驗(yàn)證者泄漏任何關(guān)于被證明消息的信息。大量事實(shí)證明,零知識證明在密碼學(xué)中非常有用。如果能夠?qū)⒘阒R證明用于驗(yàn)證,將可以有效解決許多問題。
二、技術(shù)架構(gòu)
1、數(shù)據(jù)層
創(chuàng)世區(qū)塊
數(shù)據(jù)頭的哈希可認(rèn)為整個區(qū)塊的哈希
數(shù)據(jù)全備份(健壯性):共識算法簡單肯定快,
1、共識算法
2、慢是因?yàn)閿?shù)據(jù)同步通信和
2、網(wǎng)絡(luò)層
p2p的協(xié)議,同時上傳和下載。保證網(wǎng)絡(luò)快
3、共識層
寫入?yún)^(qū)塊鏈區(qū)塊數(shù)據(jù)的規(guī)則。
4、激勵層
挖礦
Tx交易費(fèi)
5、合約層
btc? 腳本--圖靈非完備
eth? 智能合約--圖靈完備
越簡單越堅(jiān)挺。
6、應(yīng)用層
? ? ? ? ? ? ? ? ? ? ? 區(qū)塊鏈瀏覽器
DAPP
? ? ? ? ? ? ? ? ? ? ? 區(qū)塊鏈錢包
三、開發(fā)
1、底層
go c/c++ java python
2、應(yīng)用層
js(node js)? ? java? go python
3、ethereum
solidity evm
4、工具
docker? idea
Unbuntu16.04