- 區塊鏈浪潮:連接技術與應用
- 賈英昊 江澤武等編著
- 753字
- 2019-09-16 15:06:47
7.2 交易示例
以一筆虛構的交易為例。假如1枚比特幣與10枚以太幣的價值等同,發送者(Sender)手上擁有1.1枚比特幣,希望購買接收者(Receiver)提供的價值10枚以太幣的服務。則發送者可以聯系一個同時具有比特幣地址與以太坊地址的連接方(Connector),并協商好代幣轉換的手續費為0.1枚比特幣。那么交易的流程如圖7-2所示(方案一):

圖7-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枚比特幣。這樣一來就實現了代幣之間的互換。
為避免款項鎖定時間過長,交易包1、2均需約定限制時間,超出時間后,款項即解鎖、返回原地址,這就是時間鎖(Timelock)功能。而上文提到的預共享密鑰則使用了哈希加密(Hashed),因此該技術方案被稱為哈希時間鎖協議(Hashed-Timelock Agreements)。