• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 自媒體 查看內容
    • 2000
    • 0
    • 分享到

    哈希時間鎖定協議

    2018-9-25 11:20

    來源: blockchainbrother

    哈希時間鎖定協議(Hashed-Timelock Agreements, HTLAs)是一項可使不同區塊鏈項目之間進行代幣交易、互換的技術。在傳統的交易所進行代幣交易時,交易者往往需要把代幣提前質押給交易所,這帶來了一定的交易風險,并需要較高的手續費用。而在哈希時間鎖定協議中,只需發送者、連接方、接受者三方,即可實現代幣的交易,期間不需要任何交易所平臺;且在交易失敗時,代幣并未發生實際轉移,不需支付額外的交易費用。與交易所相比,哈希時間鎖定協議相當于提供了一個“跳蚤市場”,毋需托管的第三方,交易所的作用被分散至社區內的個人,人與人之間可以安全地進行代幣間的交易。


    哈希時間鎖定協議技術想法的提出,最早應源于2013年BitcoinTalk論壇里的一場討論 ;而技術的實際落地,又與比特幣的閃電網絡有關聯。在閃電網絡中,為實現兩個用戶之間的小額支付通道,用戶需提前鎖定自己的部分款項,兩用戶涉及該部分款項的交易在鏈下進行。一段時間后,款項的最終分配確定下來,該分配方案再上傳至主鏈(圖1)。這樣一來,即可使大量的小額交易在鏈下進行,提高了比特幣網絡的交易吞吐量。


    圖1 閃電網絡示意圖


    閃電網絡中用于鎖定用戶款項的哈希鎖合同(Hashed Timelock Contracts, HTLC)技術啟發了后來的開發者們。代幣與代幣之間的交易,需要經由中間人的轉換,這其中的關鍵在于取得各方的信任。而對代幣進行鎖定的過程,正是一個可以產生信任的質押過程。


    以一筆虛構的交易為例。假如1個比特幣與10個以太幣的價值等同,發送者(Sender)手上擁有1.1個比特幣,希望購買接收者(Receiver)提供的價值10個以太幣的服務。則發送者可以聯系一個同時具有比特幣地址與以太坊地址的連接方(Connector),并協商好代幣轉換的手續費為0.1個比特幣。那么交易的流程如下圖(方案一):


    圖2 代幣交易方案示意圖


    在這一過程里,風險較高的是傳輸1.1比特幣的步驟:連接方有可能在收取1.1個比特幣后馬上退出交易,使得發送方利益受損。合理的方案是把比特幣的交付延后處理。當以太幣實現交付后,再進行比特幣交付,交易風險即轉移至連接方(方案二)。


    為了同時保障連接方的利益,需解決的問題是確保接收方在獲得10個以太幣的同時,發送方的1.1個比特幣也送往連接方,兩個事件需要同時發生。這實際上是交易“原子性”的體現:要么款項完全實現轉移,要么款項完全未轉移,不存在中間的狀態。這一問題由預共享密鑰(Pre-Shared Key, PSK)技術解決。


    如果把1.1比特幣看做一個交易包,10以太幣看做另一交易包,在PSK技術中,這兩個交易包都由同一個密鑰啟動,從而實現“兩者同時發生”。


    發送方預先由加密算法得到一個密鑰,把密鑰發送給接收者,把相關信息發給連接方。同時,發送方將自己的1.1個比特幣鎖定在交易包1里,需要密鑰才能轉移款項。


    連接方通過發送方給出的信息,制作一個包含10個以太幣的交易包2并發給接收者。當接收者用密鑰打開交易包2時,接收者獲得10個以太幣,同時密鑰也被發送給連接方,連接方即可以使用該密鑰獲得交易包1里的1.1個比特幣。這樣一來即實現了代幣之間的互換。


    圖3 使用哈希時間鎖定協議的交易過程


    為避免款項鎖定時間過長,交易包一、二均需約定限制時間,超出時間后款項即解鎖、返回原地址,這就是時間鎖(Timelock)功能。而上文提到的預共享密鑰則使用了哈希加密(Hashed),因此該技術方案被稱為哈希時間鎖定協議(Hashed-Timelock Agreements)。


    這一技術依然存在一定的局限性:


    (1) 連接方需承擔一定風險。在PSK技術中,連接方需向交易包1注入密鑰才能獲得比特幣,也就是比特幣和以太幣的交付并非完全在同一時間發生。由于兩個幣種的交付均約定了限制時間,若交易包2的限制時間大于交易包1,有可能使得接收者獲取10個以太坊后,連接方無法收回應得的1.1個比特幣,蒙受損失。這一風險可通過設定交易包1的限制時間總大于交易包2來避免。


    (2) 對于不支持哈希時間鎖技術的區塊鏈項目,只能通過另外的賬本平臺進行上述過程。額外的記賬平臺可保存代幣之間轉移的交易記錄。然而由于記賬平臺本身不發生代幣的轉移,本質上記錄的是賒賬、借賬的信息,需交易雙方之間相互具備充足的信任,交易才可進行。而通過賬本平臺,只要保證雙方具備信任基礎,非區塊鏈的資產亦可通過這一記賬方式進行交換。


    本質上,不同資產之間的交易、流轉,只需提供信任基礎(產生聯系),保證交易的原子性(資產交割),即可進行。而在哈希時間鎖定協議中,代幣的鎖定實現了資產質押,為交易提供了信任基礎。而密鑰的傳遞,則保證了交易的原子性。同時時間鎖的引入,避免了交易時間過長而造成的糾紛或意外。除區塊鏈項目外,這一模式可應用到不同資產類別的流轉中。


    哈希時間鎖定協議技術已由Ripple Interledger項目基本實現,在可運行智能合約的區塊鏈項目中,幣幣交易的落地或將逐漸變得普遍。這一技術提供了一種區塊鏈項目生態的可能性:如BTC等主流區塊鏈項目作為主結算系統,而其他應用項目針對性地解決用戶的不同需求。當用戶享受服務、進行結算時,使用代幣互換技術進行支付。這樣一來,主流項目傳遞價值;應用項目面向細分需求,同時為主流項目分攤服務壓力;用戶各取所需。最終將構建起一張全球共用的可信任的結算網絡,在此基礎上運行一切去中心化的應用,真正實現豐富的區塊鏈應用生態。


    參考文獻:


    [1]Interledger Architecture, [EB/OL], https://interledger.org/rfcs/0001-interledger-architecture/

    [2]Interledger Protocol V4, [EB/OL], https://interledger.org/rfcs/0027-interledger-protocol-4/

    [3]Pre-Shared Key V2 (PSKv2) Transport Protocol, [EB/OL], https://interledger.org/rfcs/0025-pre-shared-key-2/

    [4]Lightning Network, [EB/OL], https://en.bitcoin.it/wiki/Lightning_Network

    [5]Hashed-Timelock-Contract-Ethereum, [EB/OL], https://github.com/chatch/hashed-timelock-contract-ethereum

    [6]Two-Phase Commit, [EB/OL], http://foldoc.org/two-phase%20commit


    作者:陳致佳、蒙繹澤、江澤武

    來源:幣世界

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频