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