在白話之前的推文《肖風博士贊不絕口的Cosmos和波卡兩大跨鏈技術項目》中提到了跨鏈技術,其中跨鏈技術的實現模式之一就是哈希鎖定,今天大白就給大家詳細講解一下什么是哈希鎖定。
1. 哈希鎖定和閃電網絡
哈希鎖定,全稱哈希時間鎖定合約(Hash TimeLock Contract),是閃電網絡中提出的一種新的技術實現形式。
哈希鎖定模式是指用戶在規定的時間段對于哈希值的原值進行猜測來支付的一種機制。簡單講,就是在智能合約的基礎上,雙方先鎖定資產,如果都在有限的時間內輸入正確哈希值的原值,即可完成交易。
在這樣的機制下可以實現小額支付的快速確認,也就是說實現閃電網絡快速確認的目標。
接下來大白將通過哈希鎖定的應用場景之資產兌換為例來為大家科普哈希鎖定是怎么實現的。
2. 怎么實現哈希時間鎖定?
為了方便理解哈希時間鎖定到底是如何鎖定的,這里給大家類比了兩個鎖,一個是哈希鎖,一個是時間鎖。
1、哈希鎖
通過哈希值上鎖,上鎖之后只有用產生這個哈希值的原本值進行開鎖,假設數 123,哈希之后的值為 a03a,通過 a03a上鎖,不考慮哈希碰撞的情況下,只能由 123 解鎖。
2、時間鎖
時間鎖要求在規定時間內輸入哈希鎖的密碼。如果時間鎖的時間是 1 個小時,那么就要求用戶需要在 1 個小時內輸入哈希鎖的密碼,如果在 1 個小時后輸入哈希鎖的密碼,時間鎖仍然不會開啟。
也就是說同時打開這兩個鎖的條件是,在規定的時間內輸入哈希值原本的值,上面的例子就是在1個小時內,輸入“ 123 ”,兩把鎖才會都處于開啟狀態。
現在大白將利用哈希時間鎖定的機制把自己的比特幣在小黑那里兌換以太幣,具體的操作步驟如下:
(1)大白先生成隨機數 S,再把隨機數的哈希值 H(S) 通過網絡給小黑,假設隨機數是 123 ,哈希值是 a03a 。
同時,大白進行時間上鎖和哈希上鎖,假設時間鎖的時間為1小時,哈希鎖上鎖的哈希值是 a03a。上完鎖后,待轉換的比特幣就被鎖定在鏈 A 上。
(2)小黑收到大白給的哈希值“ a03a ”后,小黑根據這個哈希值在以太坊上部署智能合約,并往合約中存同等價值的以太幣。小黑的智能合約要求大白在規定時間內提供密碼“ 123 ”才可以取走智能合約中的以太幣。
這個過程相當于,小黑自己也上了兩把鎖,其中哈希鎖和大白的那把哈希鎖一樣,需要用同樣的密碼才可以打開,時間鎖假如為半個小時。
(3)大白使用小黑的這個智能合約,并在半個小時內輸入自己的密碼“ 123 ”,就能打開小黑在鏈B上的哈希鎖,就能取走小黑智能合約里的以太幣(相當于小黑的以太幣,因為智能合約是小黑創建的,合約里的以太幣也是小黑轉進去的)。
(4)因為大白在調用了小黑的智能合約時輸入了密碼,因此小黑也就知道了密碼是“123”,他只要在一個小時內通過這個密碼打開鏈A上的哈希鎖,大白的比特幣就會轉給小黑。
通過上面的過程,可以看到,大白可以通過哈希時間鎖定這種方式,實現了比特幣到以太幣的兌換。當然這往往需要大白多支付一點比特幣給小黑作為手續費,畢竟天下沒有免費的勞動力。
3. 哈希鎖定的優缺點
聽了大白上面的講解有的小伙伴會疑惑?有哈希鎖不就可以了嗎?畢竟大白必須輸入哈希鎖的密碼才能取走小黑的以太幣,小黑也只有當大白輸入完鏈B上的哈希鎖密碼之后才能打開鏈A上的哈希鎖。看起來哈希鎖就能搞定的事兒,干嘛要加一個時間鎖?
在哈希時間鎖定機制中,如果時間超過了規定時間,鎖定在系統中的代幣將會被收回。因此,加上時間鎖有效地促進了大白在小黑規定的時間內解開鏈 B 上的哈希鎖,小黑也會因為自己的利益所需而在大白規定的時間段內解開鏈 A 上的哈希鎖。在整個過程鏈與鏈之間也不用相互了解,進而促進了交易的速度。而且如果交易失敗,哈希鎖定是不會收取額外的手續費。
不過哈希鎖定的應用場景比較受限,它支持的功能比較少。
來源: 白話區塊鏈
評論
查看更多