7月10日,Qtum量子鏈基金會宣布實(shí)現(xiàn)QTUM-BEAM原子交換(Atomic Swap),原子交換(Atomic Swap)允許兩個獨(dú)立區(qū)塊鏈上的加密貨幣進(jìn)行原子性的跨鏈交易,QTUM和BEAM的原子交換成功象征著Qtum在隱私和跨鏈領(lǐng)域更進(jìn)了一步。
01. 前言
2019年1月,Qtum量子鏈基于Decred的支付腳本已實(shí)現(xiàn)QTUM-BTC原子交換,(回顧:Qtum 量子鏈實(shí)現(xiàn)QTUM-BTC原子交換),但由于區(qū)塊鏈本身匿名性不足,更高程度的隱私保護(hù)仍然是一個急需解決的問題。
MimbleWimble隱私協(xié)議的出現(xiàn)給隱私領(lǐng)域指明了新的方向,Beam作為MimbleWimble的代表,在保護(hù)隱私的同時簡化交易,具有良好的可擴(kuò)展性。2019年6月,QTUM-BEAM原子交換代碼被合入了Beam的主分支。目前,已經(jīng)在Beam masternet和Qtum testnet成功進(jìn)行了原子交換的實(shí)驗(yàn),實(shí)現(xiàn)了完整的跨鏈價值流通。
02. 背景
原子交換
原子交換(Atomic Swap)允許兩個獨(dú)立區(qū)塊鏈上的加密貨幣進(jìn)行原子性的跨鏈交易,這種交易無需依賴第三方的信任背書。原子性的意思是,要么交易成功,要么交易失敗,不會存在第三種狀態(tài)。
原子交換是一種技術(shù),該技術(shù)允許您在沒有第三方的情況下交易完成點(diǎn)對點(diǎn)交易。它們還會安排您與未知用戶交易,而且無需信任。別人必須首先發(fā)送他們的資金,因?yàn)樗麄兛赡軟Q定不履行他們的交易。原子交換使各方能夠根據(jù)他們預(yù)先商定的條件,在無需信任的條件下,進(jìn)行不同貨幣交換,而不必?fù)?dān)心會損失資金。
如果Alice和Bob想交換某種數(shù)量的兩種加密貨幣A和B,在沒有使用中心化交易所的情況,兩人需要就兩種加密貨幣的匯率進(jìn)行達(dá)成一致,然后通過原子交換,Alice將A發(fā)送給Bob,而Bob將B發(fā)送給Alice。
但是,區(qū)塊鏈中的交易是不可逆轉(zhuǎn)的,在沒有中心背書的情況進(jìn)行不同貨幣的交易就一定牽涉到操作先后的問題,如果Alice首先發(fā)送了他的A貨幣,那么Alice則處于不利的狀態(tài),因?yàn)樗荒艽_定Bob是否會按照約定將一定量的B發(fā)送給她。
為了使分散的點(diǎn)對點(diǎn)交易能夠順利完成,就需要一種機(jī)制來保證雙方不會發(fā)生欺騙,哈希時間鎖(HTLC)是現(xiàn)在比較常用的解決辦法。
HTLC
實(shí)現(xiàn)原子交換的主要解決方法是哈希時間鎖(Hashed Timelock Contracts,HTLC)。其核心思想是將一筆交易鎖住,只有當(dāng)滿足特定的條件下才能使用這筆交易。
假設(shè)Alice和Bob正在進(jìn)行數(shù)字代幣A和B的交換。Alice首先創(chuàng)建一個加密的數(shù)字密碼箱,她將鎖的規(guī)格告知Bob。并把數(shù)字代幣A放入密碼箱中,打開密碼箱需要鑰匙和Bob的簽名。Bob將用相同規(guī)格的鎖來創(chuàng)建一個類似的密碼箱,解鎖Bob的密碼箱需要相同的鑰匙和Alice的簽名。
由于打開密碼箱需要另一個人的簽名,只有Alice可以打開Bob的密碼箱,只有Bob可以打開Alice的密碼箱子。當(dāng)Alice打開Bob的密碼箱時,鑰匙會顯示在區(qū)塊鏈上。Bob可以使用Alice公布的鑰匙打開Alice創(chuàng)建的密碼箱以獲得A幣。如果出現(xiàn)問題或者一方在交易期間退出,即在約定的時間內(nèi)密碼箱沒有被打開,根據(jù)HTLC的設(shè)計(jì),數(shù)字貨幣會分別退回給Alice和Bob。
以上就是HTLC的設(shè)計(jì)理念,但算法的實(shí)際實(shí)現(xiàn)會更復(fù)雜,考慮的實(shí)際問題也會更多。
Beam
Beam是基于MimbleWimble協(xié)議開發(fā)的加密貨幣,具有強(qiáng)隱私性、替代性和擴(kuò)展性。MimbleWimble通過將用戶的身份和交易的金額等數(shù)據(jù)進(jìn)行隱藏,從而保證了交易的隱秘性。
MimbleWimble需要交易的雙方在發(fā)起交易之前進(jìn)行交互以協(xié)商一些參數(shù)。因此,一筆交易的生成需要交易雙方在線進(jìn)行聯(lián)合簽名。值得一提的是,Beam提供了Secure Bulletin Board System(SBBS)的機(jī)制,以提供一個雙方同時在線的緩沖時間。
03. 功能實(shí)現(xiàn)
假如有兩個用戶Alice和Bob,Alice擁有BEAM,Bob擁有QTUM。Alice想用200個BEAM兌換Bob的80個QTUM。
交易流程
1.1 Bob生成Qtum Lock Transaction
Alice首先將自己的公鑰傳給Bob,Bob本地生成一個原像(Hash Preimage),計(jì)算其像(Hash Image),并利用Alice的公鑰和像(Hash Image)生成一個有加鎖腳本的交易,這個交易鎖住了80個Bob的QTUM UTXO,只有當(dāng)滿足以下任一條件時,才能使用這筆UTXO。
· 原子交換約定的時間已過(通過當(dāng)前塊的高度來判斷經(jīng)過的時間),Bob通過使用自己的私鑰來宣稱對這筆UTXO的所有權(quán)。這個條件主要用于在原子交換因?yàn)槟撤N原因失敗之后,Bob有能力將這筆UTXO收回。
· 揭露原像(Hash Preimage),并使用Alice的私鑰進(jìn)行認(rèn)證。這個條件主要用于正常情況下,Alice通過揭露隱私的原像(Hash Preimage),接受Bob發(fā)送給自己的QTUM。
Bob將生成的Qtum Lock Transaction發(fā)送給Alice,這樣Alice就有能力在Qtum網(wǎng)絡(luò)上驗(yàn)證這筆交易。
1.2 Alice和Bob協(xié)作生成Beam Lock Transaction和Beam Refund Transaction
由于Beam使用了MimbleWimble協(xié)議,其實(shí)現(xiàn)中摒棄了腳本,且隱藏了貨幣的金額等屬性,故一筆加鎖交易需要兩個參與者協(xié)作產(chǎn)生。由于本文的重點(diǎn)是原子交換,故對MimbleWimble交易的生成過程不作過多介紹,詳情可以參考Qtum量子鏈研究院:新型的隱私保護(hù)協(xié)議MimbleWimble。
Alice和Bob進(jìn)行交互,包括blinding factor的協(xié)商、Bulletproof的簽名等。從而生成一筆Beam網(wǎng)絡(luò)上的加鎖交易Beam Lock Transaction,這筆交易鎖住了Alice即將轉(zhuǎn)給Bob的一筆BEAM UTXO。由于交易中不存在腳本以判斷分支,所以Alice還需要生成一筆Beam Refund Transaction,這筆交易將鎖住的Beam UTXO轉(zhuǎn)回給Alice。這是為了防止原子交換失敗之后Alice能夠拿回自己的BEAM。
1.3 Bob和Alice互相確定兩筆UTXO已被鎖定
當(dāng)QTUM和BEAM的兩個獨(dú)自加鎖交易完成之后,Alice和Bob需要分別查看兩筆交易是否被正確地鎖定。Alice還需要確定Qtum加鎖交易的鎖定時間是否比Beam的長,以防止Bob在得到BEAM時通過超時條件將QTUM收回。
1.4 Alice和Bob協(xié)作發(fā)起B(yǎng)eam Redeem Transaction
當(dāng)雙方確定了加鎖交易的正確部署之后,即進(jìn)入到了原子交換的交換貨幣環(huán)節(jié)。首先Alice和Bob進(jìn)行基于MimbleWimble的交互協(xié)商,以生成一筆Beam Redeem Transaction,這筆交易將鎖定的BEAM UTXO轉(zhuǎn)到Bob的所屬下。在交易的過程中,Bob會揭露由他自己生成的原像(Hash Preimage),Alice由此了解到原像(Hash Preimage)。
1.5 Alice發(fā)起Qtum Redeem Transaction
Alice在Beam網(wǎng)絡(luò)中獲得了Bob生成的原像(Hash Preimage)之后,在Qtum網(wǎng)絡(luò)上發(fā)起Qtum Redeem Transaction,這筆交易將觸發(fā)Qtum Lock Transaction腳本的第二個條件,通過揭露原像(Hash Preimage)和Alice的簽名將QTUM轉(zhuǎn)到自己的賬戶下。
1.6 原子交換完成
當(dāng)原子交換的交易在各自網(wǎng)絡(luò)中得到足夠多的確認(rèn)之后,整個原子交換過程結(jié)束。當(dāng)有任何一個環(huán)節(jié)出現(xiàn)問題,導(dǎo)致原子交換不能進(jìn)行,加鎖交易保證在鎖定時間后貨幣能夠退回原來的賬戶。
更多詳細(xì)介紹請參考BEAM原子交換:
https://github.com/BeamMW/beam/wiki/Atomic-swap
實(shí)驗(yàn)細(xì)節(jié)
1、首先配置Qtum的testnet環(huán)境,編輯用戶主目錄下的.zshrc,添加環(huán)境變量,q1t-dae和q2t-dae分別是Bob和Alice的Qtum節(jié)點(diǎn)服務(wù),q1t-cli和q2t-cli分別是Bob和Alice的Qtum客戶端命令。使用客戶端命令可以與區(qū)塊鏈進(jìn)行交互。
2、使用。/beam-wallet-masternet info命令查看兩個用戶賬戶下的BEAM余額,使用qtum-cli getbalance命令查看用戶的QTUM余額。
可見,Alice擁有約347個BEAM和0.0022個QTUM。Bob擁有約295個BEAM和254個QTUM。
3、Alice和Bob進(jìn)行原子交換,Bob需要開啟原子交換監(jiān)聽的模式,通過在用戶目錄下運(yùn)行
。/beam-wallet-masternet swap_listen -n eu-node01.masternet.beam.mw:8100 --swap_netword testnet –swap_coin qtum --amount 8000000000 --swap_feerate 5000000 --qtum_node_addr 127.0.0.1:13300 --qtum_user Bob --qtum_pass 123 --log_level info
進(jìn)行原子交換監(jiān)聽。節(jié)點(diǎn)首先會進(jìn)行區(qū)塊數(shù)據(jù)的同步,當(dāng)同步完成之后,如果有節(jié)點(diǎn)發(fā)起了對自己地址的swap_init交易,便會開始原子交換交易。按照上述交易流程的順序進(jìn)行各個步驟的交易。
4、同時Alice運(yùn)行
。/beam-wallet-masternet -n eu-node01.masternet.beam.mw:8100 swap_init --swap_netword testnet --swap_coin qtum --amount 200 --swap_feerate 5000000 -r 1d8dfa6993230cfd1d84fc29ded73b04ee35ccbfdb9d112d466237dc30dc79470f9 --swap_amount 8000000000 --swap_beam_side --qtum_node_addr 127.0.0.1:13400 --qtum_user Alice --qtum_pass 123 --log_level info
命令,通過指定BEAM接受方的地址來初始化一筆原子交易。Alice節(jié)點(diǎn)首先也會開始同步區(qū)塊數(shù)據(jù),當(dāng)完成之后會按照上述交易流程的順序開展和Bob的原子交換。
5、雙方等待BEAM和QTUM的兩個區(qū)塊鏈網(wǎng)絡(luò)對各自的交易進(jìn)行多次確認(rèn)后(Qtum默認(rèn)是10次),原子交換過程完成
Bob的客戶端界面顯示如下:
Alice的客戶端界面顯示如下:
6、通過查看Alice的賬戶,可以看到她已經(jīng)接受到了來自Bob的80個QTUM并發(fā)送了200個BEAM給Bob,她現(xiàn)在擁有147個BEAM和80個QTUM。
7、 通過查看Bob的賬戶,可以看到他已經(jīng)接受到了來自Alice的200個BEAM并發(fā)送了80個QTUM給Alice,他現(xiàn)在擁有495個BEAM和174個QTUM。
8、 在Qtum的測試網(wǎng)絡(luò)瀏覽器上,可以看到關(guān)于QTUM原子交換的交易記錄通過命令q2t-cli listunspent查詢Alice擁有的UTXO的詳細(xì)信息,得到一筆金額(amount)為80的UTXO的交易id是:
d11e3474ca070a7d673a7784775479277abb2f820b8575a66f9b2a3b89722702
在Qtum區(qū)塊鏈瀏覽器(https://testnet.qtum.info/tx/d11e3474ca070a7d673a7784775479277abb2f820b8575a66f9b2a3b89722702)進(jìn)行查詢,可以看到這筆通過原子交換生成的交易確實(shí)已經(jīng)寫入?yún)^(qū)塊鏈中。
04. 總結(jié)
原子交換使用HTLC巧妙地避免了可能存在的點(diǎn)對點(diǎn)的信用欺詐問題,實(shí)現(xiàn)了在沒有第三方背書的情況下不同加密幣種間的交易。在支付、交易等場景中跨鏈技術(shù)支持大額交易在鏈上完成,不再被中心化管理風(fēng)險與大額手續(xù)費(fèi)用束縛。
2018年Qtum量子鏈聯(lián)合伯克利大學(xué)研究零知識證明,今年6月Qtum量子鏈發(fā)起了全球首個線上隱私黑客馬拉松,Qtum也將會在隱私技術(shù)和跨鏈領(lǐng)域進(jìn)行深入探索,打通孤島式數(shù)字資產(chǎn)的流通網(wǎng)絡(luò),將各獨(dú)立經(jīng)濟(jì)體通過Qtum技術(shù)鏈接在一起,讓全球市場價值交換更加安全、快速、自由,成為區(qū)塊鏈行業(yè)發(fā)展的內(nèi)在動力。
評論