閃電網(wǎng)絡的核心思想是什么
無論是單向支付通道和RSMC雙向支付通道,交易雙方都需要一個建立通道和關閉通道的過程,這對于需要頻繁持續(xù)進行交易支付的場景來說沒什么問題,但是對于很多一次性支付的場景,比如Alice在旅行途中去Bob商店買東西,Alice不太可能成為Bob商店的回頭客,這時建立雙方的支付通道進行支付就很不合適了,直接廣播支付交易到比特幣網(wǎng)絡會更劃算一些。
而是否可能繼續(xù)利用離線支付通道的方式進行支付?可以考慮一個簡單的支付模型:
Alice需要支付0.1 BTC給Bob,Alice和Bob之間沒有建立支付通道,但是Alice、Bob和支付服務公司PayX之間擁有已經(jīng)建立的RSMC雙向支付通道,這時,Alice可以將0.1BTC支付給PayX,然后PayX再將0.1BTC支付給Bob即可。
Alice--》PayX--》Bob,顯然這是一個典型的中心化結構,Alice和Bob需要無條件的信任PayX會提供誠實可靠的服務。針對這個問題,HTLC就被設計出來,HTLC是Hashed Timelock Contract的縮寫。有了HTLC,閃電網(wǎng)絡才能被稱之為“網(wǎng)絡”,其核心思想是:
1)Bob生成一個隨機數(shù)Secret,只有Bob自己知道;
2)Bob將Secret的哈希值HS發(fā)給Alice,由于哈希函數(shù)的特性,通過HS無法反推出Secret;
3)Alice和PayX利用RSMC通道,建立一個新合約:若PayX知道HS的原像Secret,則Alice支付0.11BTC給PayX,否則2天后交易失效;
4)PayX和Bob利用RSMC通道,建立一個新合約:若Bob知道HS的原像Secret,則Alice支付0.1BTC給PayX,否則1天后交易失效;
顯然,Bob是知道Secret的,Bob通過Secret得到PayX的0.1 BTC,PayX驗證Secret和HS是匹配的,PayX也得到了Secret,并通過Secret得到Alice的0.12 BTC,在這個過程中,PayX獲得了0.01的手續(xù)費,這里假設是Alice支付了手續(xù)費,也可以是Bob支付手續(xù)費,比如Alice支付0.1 BTC,Bob得到0.09 BTC,PayX得到0.01手續(xù)費。在利益的驅駛下,即使Alice、Bob、PayX互相之間沒有信任關系,PayX還是樂意為其他人做支付橋梁的。
當閃電網(wǎng)絡非常普及的時候,通過支付路由算法,可以找到任何兩個人之間的最短支付路徑,比如Alice--》PayX--》PayY--》PayZ--》Bob。支付通道、失效時間、哈希原像、路由算法四個核心元素構筑了閃電網(wǎng)絡,以去信任的方式實現(xiàn)了比特幣鏈外支付。