時(shí)間:2021-12-29|瀏覽:369
Alice 和 Bob 建立了一個(gè)雙向的支付通道?,F(xiàn)在,Alice 想要給一個(gè)第三方 Carol 支付 1 btc。
一般來(lái)說(shuō),Alice 和 Carol 需要在彼此之間開(kāi)設(shè)一個(gè)支付通道。但實(shí)際上并不需要。因?yàn)?Bob 和 Carol 之間已經(jīng)有了一個(gè)通道,所以 Alice 可以通過(guò) Bob 給 Carol 支付。
具體來(lái)說(shuō),Alice 可以給 Bob 支付 1 btc,而 Bob 再支付 1 btc 給 Carol。
但是,Alice 實(shí)際上并不信任 Bob,或者 Carol 并不信任 Bob。她擔(dān)心把錢(qián)給 Bob 之后,Bob 不會(huì)給 Carol;又或者,他把錢(qián)給了 Carol,但 Carol 謊稱自己壓根沒(méi)見(jiàn)到錢(qián),而 Alice 也不知道該找哪個(gè)來(lái)追責(zé)。
因此,Alice 希望能保證,僅當(dāng) Bob 給了 Carol 1 btc,自己才需要給 Bob 支付 1 btc。
當(dāng) Alice 要給 Carol 支付 1 btc 時(shí),她讓 Carol 先生成一個(gè)秘密值(一個(gè)隨機(jī)的數(shù)字串)并把對(duì)應(yīng)的哈希值發(fā)給她。Alice 也告訴 Carol 可以用這個(gè)秘密值跟 Bob 交換 1 btc。
與此同時(shí),Alice 把從 Carol 處得到的哈希值發(fā)給 Bob,并告訴 Bob 如果 Bob 能提供對(duì)應(yīng)于這個(gè)哈希值的原始值,她就會(huì)給 Bob 1 btc(這個(gè)原始值當(dāng)然只有 Carol 擁有)。
所以 Bob 找到 Carol,用 1 btc 換來(lái)了 Carol 的初始值。
然后,Bob 找回 Alice,提供這個(gè)初始值。Alice 因此知道了 Bob 一定給過(guò)錢(qián)了,也就是 Carol 肯定已經(jīng)收到了 1 btc,于是就把錢(qián)給了 Bob。
皆大歡喜。
幾乎,啊,幾乎是皆大歡喜。
在這種 “過(guò)家家” 的情形下,中間人 Bob 還是需要新人 Alice 和 Carol。Bob 必須相信 Carol 給他的是一個(gè)真正有用的值(不然錢(qián)都給了就拿不回來(lái)了),而且要相信 Alice 真的會(huì)給他 1 btc,假如他能提供對(duì)應(yīng)于哈希值的原像的話。
這時(shí)候,我們就需要哈希時(shí)間鎖合約(HTLC)啦!
哈希時(shí)間鎖合約
哈希時(shí)間鎖可以讓 Alice 和 Bob 用秘密值來(lái)交換 btc(當(dāng)然 Bob 和 Carol 也需要這個(gè),但我們先按下不提)。
為了使用哈希時(shí)間鎖,Alice 要將 1 btc 發(fā)送至一個(gè)新的多簽地址,而非直接發(fā)送給 Bob。這個(gè)地址中鎖定的 btc 可以通過(guò)兩種方式解鎖。
第一種方式是 Bob 將自己的簽名和秘密值一起發(fā)送至該地址。
第二種方式是 Alice 將自己的簽名發(fā)送至該地址。但是,這個(gè)方式存在 CLTV 時(shí)間鎖限制:Alice 必須等待一段時(shí)間(例如兩周)才能簽署并廣播交易取走這個(gè) btc。
也就是說(shuō),Bob 有兩周時(shí)間來(lái)創(chuàng)建一個(gè)包含簽名和秘密值的交易,并廣播該交易,將多簽地址上的 btc 發(fā)送給自己。這樣一來(lái),這筆交易就有了保證。只要 Bob 能提供秘密值,他就能取走 Alice 的 btc:在比特幣網(wǎng)絡(luò)公開(kāi)廣播該交易可以讓 Alice 看到它。
如果 Bob 沒(méi)有在規(guī)定時(shí)限內(nèi)提供秘密值,Alice 就可以取回她的 btc。就這么簡(jiǎn)單。
再說(shuō)回網(wǎng)絡(luò),因?yàn)檫@是哈希時(shí)間鎖合約真正發(fā)揮作用的地方。
如上文所述,不僅 Alice 和 Bob 之間有哈希時(shí)間鎖合約,Bob 和 Carol 之間也有。因此,如果 Carol 向 Bob 索要 btc,Bob 也可以從 Carol 那里取得秘密值。這些在區(qū)塊鏈上都是可見(jiàn)的。
因此,如果發(fā)生這種情況,Bob 也一定可以從 Alice 那里拿到 1 btc。Bob 可以將從 Carol 那里拿到的秘密值在鏈上公開(kāi),發(fā)送至他與 Alice 的哈希時(shí)間鎖合約,然后取走多簽地址上的 1 btc。這兩個(gè)狀態(tài)通道有效地關(guān)聯(lián)了起來(lái)。
最后要強(qiáng)調(diào)的一點(diǎn)是,Bob 必須在有效期內(nèi)從 Carol 那里拿到秘密值,否則 Alice 就有可能取回多簽地址上的 1 btc。如果等 Alice 取回 1 btc 之后 Bob 才從 Carol 那里拿到了秘密值,Bob 就會(huì)被卡在中間進(jìn)退兩難。因此,Bob 和 Carol 的哈希時(shí)間鎖合約必須比 Alice 和 Bob 的先到期(例如,前者的時(shí)限可以設(shè)成 10 天,而非兩周)。這就是為什么哈希時(shí)間鎖合約需要 CheckLockTimeVerify(絕對(duì)時(shí)間鎖)而非 CheckSequenceVerify(相對(duì)時(shí)間鎖)。
最后還有一個(gè)問(wèn)題需要解決:要保證閃電網(wǎng)絡(luò)的可用性,所有這些必須在鏈下完成。具體是如何實(shí)現(xiàn)的將在本系列第三篇文章中揭曉。由于我們國(guó)家互聯(lián)網(wǎng)法院的誕生,在北京,杭州和廣州。這幾家法院的全部訴訟過(guò)程都是在家完成的。這幾家互聯(lián)網(wǎng)法院受理的案件都是與互聯(lián)網(wǎng)相關(guān),那么從起訴到提交證據(jù)到開(kāi)庭到最后判決,都通過(guò)互聯(lián)網(wǎng)完成,所以當(dāng)時(shí)這幾家互聯(lián)網(wǎng)法院都各自建立了自己的區(qū)塊鏈系統(tǒng)。并且對(duì)于一些在線的證據(jù),這個(gè)系統(tǒng)可以直接取證,然后通過(guò)區(qū)塊鏈進(jìn)行存儲(chǔ)。在這之后,最高院在互聯(lián)網(wǎng)法院審理案件的規(guī)定就提出了使用區(qū)塊鏈、哈希值、可信時(shí)間戳等技術(shù)的證據(jù),應(yīng)該與其他證據(jù)同樣審查。當(dāng)然,這個(gè)規(guī)定比較概括性,是因?yàn)楫?dāng)時(shí)法院包括整個(gè)社會(huì)對(duì)技術(shù)了解得還不夠。
現(xiàn)在,由于疫情的原因,很多傳統(tǒng)的法院也在引入并推廣在線庭審、在線立案等。最高院對(duì)于區(qū)塊鏈的規(guī)定就是將原來(lái)針對(duì)互聯(lián)網(wǎng)法院的規(guī)定推廣到所有法院的在線庭審。所以將來(lái)區(qū)塊鏈技術(shù)會(huì)得到越來(lái)越廣泛的應(yīng)用,從互聯(lián)網(wǎng)法院走向所有在線審理的法院。
熱點(diǎn):區(qū)塊鏈 區(qū)塊鏈技術(shù) 比特幣 比特幣 比特幣網(wǎng) 比特幣網(wǎng)絡(luò)