<wbr id="rn1zl"></wbr>
<wbr id="rn1zl"></wbr>
  1. <form id="rn1zl"></form>

    <em id="rn1zl"></em>
      <font id="rn1zl"><thead id="rn1zl"></thead></font>
          <font id="rn1zl"><s id="rn1zl"></s></font><xmp id="rn1zl"><mark id="rn1zl"><output id="rn1zl"></output></mark></xmp>

          中國比特幣官網

          有趣的「零知識有條件支付」:真正完美的“一手交錢一手交貨”是什么樣的?

            假如我們現在要做一筆交易,我想把自己的數據賣給你,怎樣交易才是最安全的?

            顯然這里會有兩個問題:

            1、因為我賣的是數據,肯定不能直接給你,否則你得到數據后直接跑了怎么辦?

            2、但我肯定也不能先拿你的錢,因為可能我給你的數據是不符合你要求的,或者我拿了錢之后也跑了。

            要解決上面這個問題,我們就需要一個完美精準的“一手交錢、一手交貨”方案,零知識證明和區塊鏈這時就可以派上用場了。

            在這篇文章里,安比(SECBIT)實驗室創始人郭宇盡可能用普通人能聽懂的語言,完整講解了這樣一個有趣的解決方案:零知識有條件支付。

            很少能有像郭老師這樣的、擁有學術背景的的從業者,能為我們這些小白親自講解一個具體的技術原理。這篇文章看三遍一定能看懂,同學們抓住這次機會,好好學習吧~

            以下為

          有趣的「零知識有條件支付」:真正完美的“一手交錢一手交貨”是什么樣的?  Bitcoin Core團隊的 Greg Maxwell 早在2011年的時候就提到了一個非常非常牛的概念:

            ZKCP ― “零知識有條件支付”

            http://en.bitcoin.it/wiki/Zero_Knowledge_Contingent_Payment

            這個概念意味著什么呢?

            簡單點講,就是在沒有 信任第三方 的場合下達成 完美公平地 “一手交錢一手交貨”的方案。

            這里敲黑板,上面這句話我用了三個學術黑話。想象一個交易場景,如果交易雙方在沒有信任第三方在場的情況下,誰也不愿意先出手付款/交貨給對方,否則對方會跑路。一手交錢一手交貨就意味著:付款/交貨 動作必須具備原子性(大白話:要么交換完成,要么不交換,不給任何一方賴賬的空間)。

            所謂完美公平是指任何一方都沒辦法占更多的小便宜。不過這個概念并不是 Greg 的原創想法,這是一個古老的話題,早在80年代起就有很多學者在研究如何做到完美公平交易。但是長期以來,大家一致認為一個受信任的第三方是必不可少的。后來等到比特幣誕生,Greg 敏銳地發現利用比特幣這一個 無需信任的第三方 可以做到。

            在2016年發表的一篇博文里,Greg宣布 伙同 ZCash 團隊的 Sean Bowe 等人一起演示了如何借助比特幣這個系統(作為一個 Trustless 第三方)做到一次完美公平交易,Demo 演示了如何完美公平地交易一個16x16的數獨答案。

            接下來請原諒我用十分晦澀難懂的語言講講 ZKCP 原理。

            Greg 的 ZKCP 方案使用了 zksnarks 技術,首先大家需要了解 zksnarks 能干什么。傳說中的 zksnarks 能提供一個零知識證明,證明什么呢?證明一個已知算法的計算過程是否真實發生過(大白話:一段地球人都知道的程序代碼是否運行過)。

            這個計算過程可以發生在遙遠的星球上,程序運行過程附帶產生一個證明,這個證明可以發回地球進行驗證,如果驗證通過,那么我們可以知道:在遙遠星球上確實運行過某個已知程序,并且程序的輸入是某一個未知數。

            最難的部分已經講完了,如果沒看懂就不要繼續往下看了。

            假設賣家A,買家B 要交易一個數 D,這時候買家 B 要提前知道 D 是否是他想要的,B會提供一個函數 F() 來判斷 D 符合不符合 B 的要求。A 拿到 F 之后,運行一下 F(D),如果返回true,那么A 繼續用一個加密函數 E() 得到密文 D’=E(K, D),這里 K 是 A 為了這筆交易新生成的隨機數,然后 A 計算 HASH(K) = H。

            接下來 A 交給 B 三樣東西,第一個是密鑰的哈希值 H,第二個是加密數據 D’, 第三個是用zksnarks產生的計算過程證明。計算過程就是: F(D)=true; E(K,D)=D’,HASH(K)=H。最后 B 構造一個比特幣腳本:聲明任何提供 H 的 Preimage 的人(也就是說,任何擁有 K 的人)可以花掉腳本所帶的0.1 BTC。A 最后發起一筆交易,提供 K, 提走錢;B從區塊鏈上看到 K,解密 D’ 得到 D。

            我們回頭看,比特幣腳本提供了一個原子操作(大白話:實現了密鑰和BTC的一手交錢,一手交貨);同時 zksnarks 技術提供了零知識證明,保證 B 的BTC沒有被 A 提走之前 B 得不到 D 的,做到了完美公平性。

            (完)

            本文作者:安比(SECBIT)實驗室創始人郭宇

            

              本文首發于微信公眾號:橙皮書。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

          此文由 中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://www.huohuxiazai.com/">首頁 > 比特幣行情 » 有趣的「零知識有條件支付」:真正完美的“一手交錢一手交貨”是什么樣的?

          ()
          分享到:

          相關推薦

          評論 暫無評論

          国产精品吹潮在线观看中文