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