時間:2023-08-04|瀏覽:249
假如我們現(xiàn)在要做一筆交易,我想把自己的數(shù)據(jù)賣給你,怎樣交易才是最安全的?
顯然這里會有兩個問題:
1、因為我賣的是數(shù)據(jù),肯定不能直接給你,否則你得到數(shù)據(jù)后直接跑了怎么辦?
2、但我肯定也不能先拿你的錢,因為可能我給你的數(shù)據(jù)是不符合你要求的,或者我拿了錢之后也跑了。
要解決上面這個問題,我們就需要一個完美精準的「一手交錢、一手交貨」方案,零知識證明和區(qū)塊鏈這時就可以派上用場了。
今天我們盡可能用普通人能聽懂的語言,完整講解了這樣一個有趣的解決方案:WisdomChain的條件支付。
這個概念意味著什么呢?簡單點講,就是在沒有信任第三方的場合下達成完美公平地「一手交錢一手交貨」的方案。
想象一個交易場景,如果交易雙方在沒有信任第三方在場的情況下,誰也不愿意先出手付款/交貨給對方,否則對方會跑路。一手交錢一手交貨就意味著:付款/交貨動作必須具備原子性(大白話:要么交換完成,要么不交換,不給任何一方賴賬的空間)。
所謂完美公平是指任何一方都沒辦法占更多的小便宜。不過這個概念是一個古老的話題,早在80年代起就有很多學者在研究如何做到完美公平交易。但是長期以來,大家一致認為一個受信任的第三方是必不可少的。后來等到比特幣誕生,大家發(fā)現(xiàn)利用區(qū)塊鏈的特性就可以做到。
那么什么WidomChain中的條件支付是如何實現(xiàn)的呢?,
據(jù)官方透露在WidomChain中的條件支付主要是由“哈希時間鎖定”、“哈希高度鎖定”與其他因素構成,這里暫只討論哈希時間鎖定與哈希高度鎖定。
什么是哈希時間鎖定
哈希鎖定,全稱哈希時間鎖定合約(HashTimeLockContract),是閃電網(wǎng)絡中提出的一種新的技術實現(xiàn)形式。
哈希鎖定模式是指用戶在規(guī)定的時間段對于哈希值的原值進行猜測來支付的一種機制。簡單講,就是在智能合約的基礎上,雙方先鎖定資產(chǎn),如果都在有限的時間內輸入正確哈希值的原值,即可完成交易。
在這樣的機制下可以實現(xiàn)小額支付的快速確認,也就是說實現(xiàn)閃電網(wǎng)絡快速確認的目標。接下來筆者將通過哈希鎖定的應用場景之資產(chǎn)兌換為例來為大家科普哈希鎖定是怎么實現(xiàn)的。
怎么實現(xiàn)哈希時間鎖定?為了方便理解哈希時間鎖定到底是如何鎖定的,這里給大家類比了兩個鎖,一個是哈希鎖,一個是時間鎖。
1、哈希鎖
通過哈希值上鎖,上鎖之后只有用產(chǎn)生這個哈希值的原本值進行開鎖,假設數(shù)123,哈希之后的值為a03a,通過a03a上鎖,不考慮哈希碰撞的情況下,只能由123解鎖。
2、時間鎖
時間鎖要求在規(guī)定時間內輸入哈希鎖的密碼。如果時間鎖的時間是1個小時,那么就要求用戶需要在1個小時內輸入哈希鎖的密碼,如果在1個小時后輸入哈希鎖的密碼,時間鎖仍然不會開啟。
也就是說同時打開這兩個鎖的條件是,在規(guī)定的時間內輸入哈希值原本的值,上面的例子就是在1個小時內,輸入“123”,兩把鎖才會都處于開啟狀態(tài)。
現(xiàn)在A將利用哈希時間鎖定的機制把自己的WDC在B那里兌換以太幣,具體的操作步驟如下:
(1)、A先生成隨機數(shù)S,再把隨機數(shù)的哈希值H(S)通過網(wǎng)絡給B,假設隨機數(shù)是123,哈希值是a03a。
同時,A進行時間上鎖和哈希上鎖,假設時間鎖的時間為1小時,哈希鎖上鎖的哈希值是a03a。上完鎖后,待轉換的WDC就被鎖定在鏈1上。
(2)、B收到A給的哈希值“a03a”后,B根據(jù)這個哈希值在以太坊上部署智能合約,并往合約中存同等價值的以太幣。B的智能合約要求A在規(guī)定時間內提供密碼“123”才可以取走智能合約中的以太幣。
這個過程相當于,B自己也上了兩把鎖,其中哈希鎖和A的那把哈希鎖一樣,需要用同樣的密碼才可以打開,時間鎖假如為半個小時。
(3)、A使用B的這個智能合約,并在半個小時內輸入自己的密碼“123”,就能打開B在鏈B上的哈希鎖,就能取走B智能合約里的以太幣(相當于B的以太幣,因為智能合約是B創(chuàng)建的,合約里的以太幣也是B轉進去的)。
(4)、因為A在調用了B的智能合約時輸入了密碼,因此B也就知道了密碼是“123”,他只要在一個小時內通過這個密碼打開鏈A上的哈希鎖,A的WDC就會轉給B。
通過上面的過程,可以看到
熱點:幣圈 幣圈早 幣圈早知道 數(shù)據(jù)