導讀
今天是大年初九,延長假期的最后一天。在明天正式開工之日,或許很多小伙伴由于新型肺炎疫情的原因無法抵達工作崗位,或是選擇在家辦公,無論何種情況金色財經都祝愿大家身體健康,萬事如意,并希望在大家力所能及的范圍內,支持新型肺炎疫情的防控。
農歷新年期間,金色財經將每日推薦精選文章,以饗讀者。今日推薦的是關于閃電網絡的文章,歡迎閱讀。
比特幣在牢固奠定其作為價值存儲貨幣的地位之后,并沒有忘記它的初心——點對點的電子現金——并呼嘯而至。
2017年的擴容之爭,比特幣選擇的路線是閃電網絡,除了重要交易走鏈上(onchain),生活中大多數的小額支付交易全部走鏈下(offchain)。
目前來看,選擇閃電網絡似乎是一條正確的道路。因為閃電網絡上線比特主網后,確實做到了極低費用的即時支付,正在被越來越多商家采用。
本文分四個部分詳細介紹閃電網絡的過去、現在、未來以及詳盡原理。
一、閃電火炬運動;二、閃電網絡現狀;三、閃電網絡發展歷程;四、閃電網絡原理詳解。
一、閃電火炬運動
一場閃電網絡打賞接力賽正在Twitter用戶間如火如荼展開。這場病般的推廣活動現在被人們稱為閃電火炬運動。正如2016年社交媒體上的冰桶挑戰運動一樣,這引起閃電網絡的極大傳播和關注。
2019年1月20日,twitter用戶@hodlnaut發推表示,通過閃電網絡打賞應用tippin.me向選中的第一位用戶發送10萬聰(100k satoshis,1 BTC等于1億聰),隨后這位用戶增加1萬聰發給下一位用戶。依此類推,直到最后一位用戶不愿再增加1萬聰并把前面所有人累計的比特幣據為己有,游戲結束。
hodlnaut想看看這一打賞接力運動會到多少聰終止。
有熱心網友為此專門制作了網站實時跟蹤閃電火炬到了哪位twitter用戶手中。據網站信息,截至發稿,目前已經有215個用戶參與傳遞,最近一個人需要發送315萬聰比特幣。目前累計發送的比特幣已經達到4.56枚BTC。
如果沒有人主動終止游戲,傳遞的比特幣超過0.168枚后就會自動結束火炬傳遞。因為目前閃電網絡支付通道最大容量被設定在0.168枚比特幣左右。目前開發者正在開發提升支付通道容量。
已經有不少數字貨幣屆名人參與到閃電火炬的傳遞中,包括《Mastering Bitcoin》作者Andreas Antonopoulos,摩根溪創始人Anthony Pompliano、比特幣耶穌Roger Ver、閃電實驗室工程師Joost Jager、幣安創始人趙長鵬、波場創始人孫宇晨、Twitter創始人兼square CEO Jack、BitMEXResearch。
目前閃電火炬發起人hodlnaut已經訂購了一輛特斯拉,推動馬斯克參與此活動。
Tippin.me開發者Sergio Abril表示,2月17日已經發布Tippin.me的google chrome擴展,安裝擴展后,在每個tweet下方會顯示閃電網絡打賞按鈕,可以直接給twitter用戶打賞。但需要你首先開通Tippin.me,不然會顯示此用戶不存在。
下圖是有人2月20日給金色財經記者tweet打賞5聰的截圖。
目前閃電火炬只在twitter用戶間展開,而且可以用twitter賬號直接登陸tippin.me并創建閃電網絡收單信息(invoice)。Twitter和tippin.me關系緊密,因為Twitter CEO就是Tippin的投資人之一。
二、閃電網絡現狀
閃電網絡從2018年10月開始急速增長。
據閃電網絡瀏覽器1ml數據,截止發稿,閃電網絡有6473個節點,共有28783個支付通道,網絡通道總容量達到708.34個比特幣。支付通道和網絡總容量30天內均達到近30%的增長。
春節后第一周新三板成交額超13億元:據全國中小企業股份轉讓系統(新三板)披露數據,春節后第一個交易周(2月18日至19日)新三板掛牌公司成交13.32億元,其中精選層成交4.70億元。[2021/2/21 17:36:01]
值得注意的是,1ml名字的另一層意思是閃電網絡的目標是達到100萬個閃電網絡節點,目前僅完成0.6%目標。
據p2sh.info統計,閃電網絡通道容量是半年前的8倍多,是一年前的157倍。金色財經估算,按照目前每個月30%的增長速度,10個月后閃電網絡容量就能達到10000枚BTC,19個月后閃電網絡容量就能達到10萬枚BTC。
2月11日,Twitter和Square CEO Jack Dorsey和閃電實驗室CEO Elizabeth Stark共同參加Stephan Livera podcast,Jack宣稱閃電網絡不是整不整合進Square Cash App的問題,而是什么時候整合的問題。
因為低手續費(甚至無手續費)的小額即時支付特性,閃電網絡支付已經集成進體育賽事預測、、知識付費、打賞、代付等各種應用。這些集成的app被稱為Lapp。
某錢包集成的部分Lapp
上圖中有話費充值服務商Bitrefill,打開你會發現Bitrefill支持用閃電網絡給中國移動、聯通、電信用戶充值話費。在本文第三部分我們會知道,Bitrefill是最早支持閃電網絡的服務商之一。
Y’alls是利用閃電網絡支付的付費閱讀網站,支付少量的比特幣可以越過網站付費墻閱讀里面的文章。
Zigzag是一家交易所,可以在低費用、高速將其他加密貨幣兌換成閃電網絡比特幣,或者將閃電網絡比特幣兌換成其他加密貨幣。
澳大利亞加密貨幣支付網關livingroomofsatoshi提供用閃電網絡支付信用卡、銀行賬單、房租等各項服務。
Satoshi’s place,類似于EOS Pixel Master,人們可以花費一定聰的比特幣占領圖片中的像素。金色財經記者花費了1890聰在畫布右下角寫上了“金色”二字(下圖紅圈部分)。
爭奪激烈,截止發稿此處像素已被其他用戶覆蓋
賽事預測和體育網站microbet.fun,目前提供足球、橄欖球、籃球和冰球四種運動的賽事預測并提供下注功能。NBA、英超、德甲、西甲、意甲等這些著名運動聯賽都在預測下注名單。
金色財經記者試用幾個Lapp后,發現閃電網絡至少真正做到了它宣稱的兩個目標:極低費用和即時支付。費用方面,金色財經記者發起的幾筆支付均沒有費用,額度可以最低低至1聰。支付速度方面確實做到了秒到,支付體驗不輸于Visa、微信支付和支付寶。
目前有若干個閃電網絡客戶端,最受歡迎有三個,分別是Lightning Labs的Ind(Lightning Network Daemon,Go實現),ACINQ的eclair(Scala實現)和Blockstream的c-lightning(C實現)。
閃電網絡給了用戶/商家極大的自由度。任何用戶/商家可以親自動手建立自己的閃電網絡節點,還可以直接采用第三方節點服務如lightninginabox、Casa Node開箱即可擁有節點,還有開源的第三方支付服務,如可以利用開源項目lndhub、BTCPayServer架設節點,開發錢包讓用戶用你的節點,每個人都可以自由開設銀行。錢包方面,類似于以太坊的Metamask錢包,閃電網絡同樣有谷歌擴展錢包Lightning Joule,還有第三方提供的輕錢包以及ToB的支付服務提供商如OpenNode、閃電網絡POS系統NanoPos。
聲音 | 中國央行:春節后央行通過公開市場操作投放的短期流動性已基本收回:隨著央行逆回購不斷到期,春節后央行通過公開市場操作投放的短期流動性已基本收回。目前銀行體系流動性總量處于合理充裕水平,2020年2月19日不開展逆回購操作。(金十)[2020/2/19]
閃電網絡是怎么做到極速支付體驗的呢?比特幣分析師JP Thor研究指出,因為通過layer-2閃電網絡支付不需要經過第三方中介,兩點之間的支付可以和TCP/IP連接的速度一樣快,因此閃電網絡支付速度會超過Visa。目前閃電網絡一個通道現在的處理速度可以超過250TPS,而網絡擴展沒有上限。目前Visa的支付峰值是50000tps,平均值在24000 tps左右,比特幣的處理速度僅在7tps。
從而真正做到即時支付,使比特幣白皮書的愿景現金支付功能成為現實。
三、閃電網絡發展歷程
閃電網絡的雛形可以追溯到2009年中本聰發布的第一版比特幣軟件Bitcoin 0.1。Bitcoin 0.1中就包含了一份原始的代碼草案,允許用戶在區塊鏈上廣播確認交易之前更新交易。這或許是支付通道概念原型。中本聰曾經和當時的bitcoinj開發者Mike Hearn私人通信時詳細解釋支付通道將如何工作。
2014年,Alex Akselrod提出雙向支付通道,他現在是Lightning Labs工程師。
2015年閃電網絡白皮書發表之前,為解決比特幣延展性漏洞,PeterTodd設計并在比特幣協議中實現了一種新型時間鎖定timelock,CheckLockTimeVerify (CLTV)。
2015年2月,Thaddeus Dryja和Joseph Poon發表閃電網絡白皮書——比特幣閃電網絡:可擴展的鏈下即時支付。同月,在舊金山的比特幣開發者研討會上他們首次公開詳細闡述他們的想法。
2015年差不多一整年,比特幣社區關注的議題主要是比特幣擴容和區塊大小問題。兩次擴容大會:9月份的蒙特利爾比特幣擴容大會(Scaling Bitcoin Montreal),在12月份的香港比特幣擴容大會(Scaling Bitcoin Hongkong)。
香港擴容大會不久,比特幣核心開發者Gregory Maxwell在Bitcoin-development郵件列中提出比特幣的擴容路線圖,這張路線圖包括了閃電網絡。這個路線圖獲得了大多數比特幣技術社區的支持,并成為了Bitcoin Core路線圖。
2015年5月,區塊鏈開發公司Blockstream聘請了linux核心開發者Russell,并希望他用C語言實現閃電網絡:C-Lightning。
2016年1月,閃電網絡的兩位作者Poon和Dryja,以及ElizabethStark、Olaoluwa “Laolu” Osuntokun共同創立了一個全新的公司LightningLabs來開發閃電網絡。LightningLabs將用go語言開發lnd。
2016年10月,第三次特幣擴容大會在米蘭召開。會后幾天, ACINQ, Amiko Pay, BitFury, Blockstream, Lightning Labs和Purse這些閃電網絡的主要開發者舉行了第一次閃電網絡峰會( LightningSummit)。這次會議討論了如何使所有不同的閃電網絡實現能相互兼容互操作,并形成閃電網絡協議規范BOLT(Basis of Lightning Technology)。BOLT成為閃電網絡基礎規范。
閃電網絡白皮書的想法與比特幣協議有不兼容的地方,需要對比特幣進行一些協議升級。CLTV時間鎖定要求定期關閉支付通道,而采用相對時間鎖定閃電網絡表現會更好。2016年夏天,比特幣網絡實施名為CheckSequenceVerify(CSV)的軟分叉升級。
在隔離見證激活之前,基于隔離見證的閃電網絡就開始不斷測試。2016年5月,Blockstream第四版隔離見證“SegNet 4”的閃電網絡c-lightning測試網上線。當年10月,Blockstream的Christian Decker在測試網上從同事Rusty Russell那里購買了一張貓的照片,被認為是閃電網絡的第一次大突破。
分析 | 春節逐漸臨近 市場交易情緒不高:據Bgain Digital投研數據:截止北京時間2020年1月22日18:00點,BTC價格8686.8美元,24小時內BTC價格上漲0.66%,結合量化交易的BTC本位增強指數均略有下跌,其中Bgain交易指數下跌0.13%,CTA指數下跌0.17%,對沖交易指數下跌0.03%。截至18點,OKEX精英用戶多空占比為51%/46%;火幣精英用戶多空占比41%/58%,Bitfinex多/空保證金占比為83%/17%,BitMEX多空倉位占比為55%/45%,市場情緒相對看空。幣價今日凌晨略有波動,上下震蕩幅度近400點,多空雙方均為試探性交易,未有強烈博弈意愿,隨著春節逐漸臨近,市場交易情緒不高,建議交易者耐心等待交易機會。[2020/1/22]
2017年1月,lnd發布阿爾法版本。越來越多開發者開始基于閃電網絡開發各種應用,包括桌面、移動錢包,小額知識付費平臺,,瀏覽器等等Lapp應用。
2017年8月,隔離見證激活,閃電網絡部署在比特幣主網的障礙清除。
2017年11月,首先是Blockstream宣布c-lightning閃電網絡測試版上線比特幣主網并完成第一筆交易。然后,Lightning Labs宣布閃電網絡第一次在比特幣和萊特幣之間完成跨鏈交易。
2017年12月,Blockstream, Lightning Labs, ACINQ宣布閃電網絡的三個實現兼容互操作(Interoperability)。
盡管比特幣主網上的閃電網絡還是測試版,用戶早迫不及待拿真正的比特幣來交易了。
2017年12月,閃電網絡迎來第一筆交易。閃電網絡開發者Alex Bosworth和支付商Bitrefill建立支付通道,并用比特幣支付了自己的電話賬單。
2018年1月,比特幣歷史上的傳奇人物Lazlo Hanyecz宣布他通過閃電網絡成功再次購買披薩。Lazlo Hanyecz曾經用1萬個比特幣購買披薩而出名。
2018年3月,閃電實驗室發布ind貝塔版,并得到包括twitter CEO在內的250萬美元種子輪投資。
之后,節點、錢包、支付、應用不斷被開發出來,接入閃電網絡的商戶、服務也不斷增加,閃電網絡開始爆發式增長。
四、閃電網絡工作原理解讀
這一部分是對閃電網絡的硬核理解,主要來自Thaddeus Dryja和Joseph Poon的閃電網絡白皮書。
弄懂閃電網絡,需要理解幾個概念:1、未花費的交易輸出UTXO(Unspent Transaction Output);2、多重簽名;3、雙向支付通道;4、RSMC——可撤銷的按序到期合約(Revocable Sequence Maturity Contract,)5、HTLC——哈希時間鎖定合約(Hashed Timelock Contract)。
1、未花費的交易輸出UTXO
比特幣模型中不是常見的賬號模式,而采取的是未花費的交易輸出UTXO。除了挖礦獎勵沒有輸入只有輸出,比特幣其他所有交易都有相應的輸入和輸出。
UTXO指定了可花費的比特幣數量以及所有者,只有證明你是所有者你才能花費這一地址中的比特幣。而證明你是所有者是通過解鎖一個“鎖定腳本(ScriptPubKey)”來實現的,這段腳本存在“輸出”的一個字段里。當UTXO 被花費,用作交易的“輸入”時,需要提供一段“解鎖腳本(ScriptSig)”,將“解鎖腳本”和“鎖定腳本”結合在一起運行,驗證成功,UTXO中的比特幣才被允許使用,并生成新的“輸出”。
我們用數字貨幣屆著名的Alice、Bob、Carol轉賬來說明。
假設Alice給Bob轉賬0.5個BTC, 這筆轉賬交易的“輸出”會設定如下“鎖定腳本”:
3點鐘無眠區塊鏈群春節7天發紅包100多萬:近幾日,3點鐘無眠區塊鏈群大火網絡。據《中國企業家》報道,3點鐘無眠區塊鏈群成員稱群內500人都身家頗高,僅過年放假的七天,發放的紅包總額估計達100萬元以上。最為密集的一次是2月18日,那天群主玉紅早早在群里預告,稱當天是薛蠻子的生日。當晚薛蠻子做完分享后,一陣紅包雨持續了近20分鐘。據稱,佟麗婭被拉入群后,歡迎其加入的消息多達上百條。佟麗婭表示,自己還是區塊鏈的初學者,希望多學習,并附上了一個8000元的大紅包。[2018/2/26]
OP_DUP OP_HASH160 <Bob公鑰哈希值> OP_EQUALVERIFY OP_CHECKSIG
這個鎖定腳本的作用是如果不能證明自己是Bob,就不能花這0.5個BTC。
當Bob要把Alice轉給他的錢再轉給Carol,比特幣會先找到從Alice那得來的UTXO,然后創建一個新交易,并產生本次新交易的“輸出”,這個輸出中同樣包含針對Carol的“鎖定腳本”。同時在本次交易的輸入中產生“解鎖腳本”,按<Bob數字簽名> <Bob公鑰>排列。然后廣播該交易進入內存池等待礦工校驗Bob這筆交易是否合法、未花費。
礦工驗證具體做法是取出本次交易“輸入”中的“解鎖腳本,和Alice轉賬給Bob的UTXO中的“鎖定腳本”,拼在一起運行。具體形式如下:
<Bob簽名> <Bob公鑰> OP_DUP OP_HASH160 <Bob公鑰哈希值> OP_EQUALVERIFY OP_CHECKSIG
驗證步驟是這樣的,1、取出<Bob簽名>壓入棧中;2、 取出<Bob公鑰>壓入棧中,現在<Bob公鑰>處于棧頂;3、 OP_DUP 復制處于棧頂的<Bob公鑰>;4、HASH160指令對<Bob公鑰>進行哈希計算并壓入棧中,現在處于棧頂的是Bob公鑰的哈希值;4、取出<Bob公鑰哈希值>并壓入棧中,此處的<Bob公鑰哈希值>來自上一筆交易的輸出;5、EQUALVERIFY指令:取出處于棧頂的兩個公鑰哈希,如果相等則繼續,否則驗證失敗;6、CHECKSIG指令:取出<Bob公鑰> 和<Bob簽名>進行簽名驗證,驗證如果是true,該筆交易合法。
上面的例子中,一個私鑰解鎖相應的UTXO,也叫支付到公鑰哈希交易(P2PKH,Pay To PubKey Hash)。為了資產安全、交易擴展,比特幣還有多重簽名技術,多重簽名需要多個私鑰才能解鎖相應的UTXO。
2、多重簽名技術
用多個私鑰來解鎖相應的UTXO的技術叫多重簽名技術。多重簽名一般形式是M-of-N多重簽名,“鎖定腳本”里一共有N個公鑰(2<N≤15),最少需要M個私鑰生成的數字簽名才可以解鎖UTXO。
多重簽名技術只靠OP_CHECKMULTISIG這一個指令來驗證交易的合法性。該指令讀取M個簽名和N個公鑰以及M和N值,然后按順序使用公鑰分別驗證簽名,成功匹配計數器加一,最終計數器等于M則運行成功。
下面以2-of-3多重簽名為例來說明。
2-of-3情況下的鎖定腳本:
2 <公鑰1> <公鑰2> <公鑰3> 3 OP_CHECKMULTISIG
假設只用私鑰1和私鑰3,那么解鎖腳本是:
0 <簽名1> <簽名3>
合成指令則是:
0 <簽名1> <簽名3> 2 <公鑰1> <公鑰2> <公鑰3> 3 OP_CHECKMULTISIG
但多重簽名中鎖定腳本用到所有的公鑰,數據量太大,會增加交易費用。所以現在多重簽名采用的是支付給“腳本哈希”交易P2SH(Pay to Script Hash),引入一個贖回腳本(RedeemScript)概念,并將N個公鑰信息從鎖定腳本里挪到解鎖腳本中。
香港春節花市出現虛擬貨幣攤位:據了解,隨著春節來臨,香港的花市也隨著節日的到來變得更加火爆,不過在今年香港春節的花市攤位中,出現了一個虛擬貨幣攤位,該攤位出售的為狗年比特紀念幣。[2018/2/10]
新方案中的鎖定腳本變得簡潔:
OP_HASH160 <贖回腳本的哈希> OP_EQUAL
這里贖回腳本的哈希只有160位,即20個字節,比之前N個公鑰短很多。
“贖回腳本”的原文:
解鎖腳本則是:
0 <簽名1><簽名2 ><贖回腳本>
合成指令:
0 <簽名1><簽名2 ><贖回腳本> OP_HASH160 <贖回腳本的哈希> OP_EQUAL
基于棧的特點,該指令先對<贖回腳本>做哈希運算,然后和<贖回腳本的哈希>比較,如果一樣運行原始腳本:
3、雙向支付通道
了解了多重簽名技術,閃電網絡的第一步就容易理解了。閃電網絡通過支付通道和比特幣網絡交互,用戶之間首先建立雙向支付通道,核心把用戶的比特幣轉移到一個多重簽名地址。這在閃電網絡白皮書中被稱為Funding Tx.
我們同樣拿Alice和Bob為例。Alice如果每天都會從Bob那里購買早餐或者咖啡,只需要他們預存一部分錢在一個第三方共同賬號內,每次交易后經雙方同意更新他們之間的賬目分配,他們之間的交易在閃電網絡支付通道內點對點展開(也叫承諾交易Commitment Tx),不全網廣播也就是不上鏈,真正做到點對點即時支付。只有在某一方決定停止使用對方服務并關閉支付通道后,在比特幣網絡廣播最終的通道狀態,Alice、Bob一致簽名同意、結算上鏈。理論上來說,只要打開支付通道時充值的比特幣數量足夠,通道內的交易次數可以是無數次。
支付通道的本質是Alice和Bob將自己的比特幣轉入一個2-of-2多重簽名地址。
但怎么防止Alice或者Bob在關閉支付通道時作弊,不把最終狀態在比特幣網絡廣播出去?閃電網絡采取的是RSMC來保證雙方誠實不作弊,如果關閉支付通道把最新的通道狀態廣播到比特幣網絡。
4、RSMC——可撤銷的按序到期合約(Revocable Sequence Maturity Contract)
閃電網絡白皮書第19頁是這么描述RSMC作用的:
如果用戶不廣播最新的通道狀態會受到懲罰,另一方會拿走通道內所有的資金。因為雙方的資金保存在RSMC里,他自己要等1000個區塊確認(注:Timelock)才能拿到資金,而另一方擁有兩個簽名,在他之前拿到通道內全部資金。如果用戶廣播最新通道狀態,就不會有可撤銷交易,在一段時間(1000個區塊確認)之后,交易雙方會拿到屬于他們自己的資金。
我們同樣選擇Alice和Bob各充值0.5個比特幣到多重簽名地址打開支付通道為例來說明,RSMC到底是怎么來確保人們誠實支付的。
上圖Alice和Bob是鏡像對稱的,研究清楚一個人就夠了。Alice和Bob會分別創建承諾交易(Commitment Tx)C1a和C1b。
承諾交易(Commitment Tx)C1a有兩個輸出,一個是Alice和Bob共同簽名的RSMC地址中的0.5BTC,一個輸出是Bob的0.5BTC(圖中output 1)。
C1a下面會有一個可撤銷交付交易(Revocable Delivery Transaction)RD1a和一個交付交易(Delivery Transcation)D1a。RD1a來動用RSMC中的BTC。因為RSMC是一個多重簽名地址,因此需要Alice和Bob兩者的簽名。RD1a輸出是付給Alice 0.5BTC,但條件是C1a交易被廣播并且經過1000個區塊確認。D1a表示Bob可以隨意消費這0.5BTC,只要C1a被廣播,Bob可以立即廣播D1a拿到0.5BTC。
整個機制最后結果的實質是,如果Alice想終止和Bob的交易,他可以選擇廣播C1a,Bob可以立即得到0.5BTC,而Alice需要經過1000個區塊確認拿到0.5BTC。對Bob是一樣的道理。
再考慮Alice和Bob之間發生交易的情形。比如Alice花費0.1 BTC從Bob那買杯咖啡,現在支付通道內的資金分配需要變成Alice(0.4BTC)和Bob(0.6BTC)。 而這需要做兩步,一是創建新的承諾交易,二是將之前的交易作廢。
創建新承諾交易
下圖中是左邊是即將被作廢的C1a和C1b(為了圖例簡介省略了RSMC和后續交易);中間欄是Alice創建的新交易:C2a,RD2a, D2a;最右欄是Bob創建的新交易:C2b,RD2b,D2b。
C2a和C1a結構相同,從Alice的角度看,只是Alice和Bob共同簽名的RSMC地址中BTC數量是0.4BTC,Bob的是0.6BTC。
Bob也會創建相應的C2b,RD2b和D2b,然后雙方互換承諾交易和RSMC交易完成簽字,至此新交易生效。
舊承諾交易作廢
此時新老交易(C1a/C2a,C1b/C2b)同時存在也同時有效。怎么廢掉舊承諾交易呢?
閃電網絡通過兩個手段來廢掉舊承諾交易C1a和C1b:一是雙方互換私鑰;二是創建“違規補償交易(Breach Remedy Transaction, BR1a/BR1b)”來代替RSMC可撤銷交易(RD1a/RD1b)。
如上圖所示,新的違規補償交易(Breach Remedy Transaction, BR1a)的輸入是多重簽名RSMC中的0.5BTC,輸出則是付給Bob的0.5BTC。
因此,如果Alice違規將舊通道狀態C1a簽名并廣播出去,那么Funding Tx多重簽名中的資金將被轉到了多重簽名RSMC以及Bob地址中,各0.5 BTC。同時,Bob除了擁有RSMC中那0.5BTC自己部分的私鑰,還收到了Alice的私鑰,于是Bob可以廣播BR1a到全網。而Alice創建的RD1a還需要再等1000個區塊確認才能生效。這樣,Bob就拿到了支付通道中的全部資金。
多重簽名的RSMC一是先關閉支付通道的人延遲獲得資金,二是可以提供經濟激勵作廢舊交易不去作弊,因為將舊交易的通道狀態廣播出去會有懲罰,支付通道里的比特幣會全歸對方所有。
通過這種機制確保Alice不會去廣播C1a,C1a自然作廢。
支付通道內的后續新承諾交易D、E、F……同樣按上面流程處理,確保Alice和Bob在想關閉支付通道時總是按照最新的通道狀態廣播。
上面討論的是Alice和Bob兩個節點的支付流程,還不能成其為閃電網絡。如果兩個節點之間沒有直接的支付通道,他們能通過其他節點間接連在一起,組成閃電網絡,它們之間的支付稱為多跳支付(Multihop payments)。
閃電網絡可以通過HTLC——哈希時間鎖定合約(Hashed Timelock Contract)使得節點之間完成多跳支付。
5、HTLC——哈希時間鎖定合約(Hashed Timelock Contract)
如果Alice想支付給Dave 0.1個BTC,但它們之間沒有直接支付通道怎么辦?Dave會產生一個隨機數R作為秘密(secret),然后把R的哈希值發給Alice。Alice會告訴Bob:如果你在三天之內告訴我H的原像(preimage)我就支付給你0.1個BTC。Bob同理告訴Carol:如果你在兩天之內告訴我H的原像(preimage)我就支付給你0.1個BTC。Carol可以告訴Dave同樣的話,只是時間變成一天之內。而Dave的確知道R。
還記得上文有人通過tippin.me給金色記者打賞的案例嗎?在準備本文的一開始,金色財經記者就用閃電網絡錢包體驗了一下閃電網絡支付,給自己的tippin.me轉了1000聰。其實在這一過程中就發生有多跳支付。金色財經記者的錢包是通過Indhub跳轉到tippin.me的。
上面是多跳支付的整體圖景,再來看看Alice和Bob之間的具體交易。在多跳支付中,Alice和Bob之間雖然利用它們之間已經建立的支付通道,但他們之間的交易和直接交易不一樣,引入了HTLC——哈希時間鎖定合約(Hashed Timelock Contract)
還是以Alice支付給Bob 0.1個BTC為例來說明,這種情況下的承諾交易如下:
C2a的輸出變成三個,增加一個多重簽名HTLC,其中有0.1BTC。
HTLC地址中的0.1BTC可能按兩種路徑執行:HTLC執行交付交易HED1a(HTLC Execution Delivery Transaction HED1a)和HTLC超時交易HT1a(HTLC Timeout Transaction HT1a)。
如果Bob按時將自己得到的原像R的哈希值交給Alice,則Alice使用該哈希值創建HED1a,并簽名交給Bob,此時Bob可以用R隨時“解鎖”該交易,完成0.1BTC轉賬。
如果Bob沒有在規定的時間內將原像R的哈希值交給Alice,三天后Alice可以廣播該HT1a觸發0.1BTC的退款,退到了一個新的多重簽名RSCM地址。
HT1a下面還有一個HTLC超時可撤銷交付交易HTRD1a(HTLC Timeout Revocable Delivery Transaction HTRD1a),這個交易的目的是從HT1a產生的新的多重簽名RSCM拿回屬于Alice的0.1BTC。如果HT1a的狀態被廣播,經1000個區塊確認后,Alice可以對HTRD1a簽名、廣播獲得退款。
如果發生新的多跳支付,怎么廢掉C2a/C2b中的HTLC呢?同樣是靠互換私鑰和創建違規補償交易HTLC:違規補償交易HBR1a(HTLC Breach Remedy Transaction HBR1a)和HTLC超時違規補償交易HTBR1a(HTLC Timeout Breach Remedy Transaction HTBR1a)。
因為Bob知道多重簽名HTLC中的Alice的秘鑰,如果Alice將C2a廣播出去,會執行HBR1a交易,C2a輸出HTLC的0.1BTC將為Bob所有。但如果Bob沒有去HBR1a領取罰金,Alice還是沒有機會三天后通過廣播HTRD1a拿到這0.1BTC,因為Alice廣播HTRD1a后需要等待1000區塊確認,而Bob可以立刻通過HTBR1a解鎖HTRD1a中的的0.1BTC。
這樣,我們就迎來了多跳支付間的支付通道利用RSMC和HTLC確保它們在關閉通道時廣播最新通道狀態的終極形態。
通過上面閃電網絡的詳解解讀,閃電網絡的實質是通過支付通道把節點鏈接成網絡,然后支付通道內利用RSMC、HTLC等機制設計和技術手段規避交易對手的道德風險,從而做到無需信任對方和第三方的點對點支付,因為無需上鏈,支付速度瓶頸就在于網速限制,所以可以做到即時支付。
根據閃電網絡的特點,比如支付通道、多跳支付等,盡管閃電網絡現在基本做到了極低費用下的即時支付用戶體驗,但也存在一些問題,如支付通道的中心化、流動性、收款人在線、路由等。
結語
回過頭來看比特幣和閃電網絡的發展,也許比特幣同時作為價值存儲貨幣和支付貨幣并不沖突。比特幣作為清算網絡,閃電網絡作為支付網絡。
支付功能的廣泛使用反而會增加比特幣清算網絡的交易量,增加比特幣網絡的手續費,反而更加增加比特幣網絡安全性和去中心化性。正反饋互相成就。
剩下唯一的問題是價格波動大的問題。閃電網絡支付以聰為單位來計價,如果比特幣價格足夠高,那么其波動性可能會很低,足以成為日常支付工具。
比特幣投資者Tim Draper近日表示,兩年后世界將會用比特幣購買咖啡,到2023年咖啡師會嘲笑那些試圖用法定貨幣購買咖啡的人。
也許有一天,這會成真。
參考資料:
The History of Lightning: From Brainstorm to Beta
The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments
An analysis of on-chain Lightning Network transactions in the Bitcoin blockchain
Understanding the Lightning Network (3 parts)
加密貨幣資深交易員和Twitter評論員JoshRager指出,隨著以太坊出現的所有看漲消息,200美元可能是目前一個非常好的進場時機.
1900/1/1 0:00:00金色財經 區塊鏈1月27日訊 自比特幣創建以來已經過去了十多年了,雖然目前我們依然很難證明其存在的合理性,但數字不會說話。通過分析一些現有數據,或許能讓更多人理解比特幣的價值.
1900/1/1 0:00:00金色財經 區塊鏈2月7日訊 據澳大利亞工業、科學和技術部部長卡倫?安德魯斯(Karen Andrews)透露,澳大利亞已經發布了國家區塊鏈路線圖.
1900/1/1 0:00:00Santiment:持有100至10,000BTC的投資者積累了總供應量的49.11%:據Santiment稱,自6月以來,“百萬富翁級別”群體或持有100至10.
1900/1/1 0:00:00昨日下午BTC開始放量上漲,直至今日凌晨一舉突破9600最高達到9700上方,當前在9600附近震蕩.
1900/1/1 0:00:00觀點:NFT交易大幅放緩,開發人員仍有興趣為區塊鏈代幣尋找更廣泛的用例:金色財經報道,本周發布的新報告表明NFT交易大幅放緩。發布的新報告表明NFT交易大幅放緩.
1900/1/1 0:00:00