摘要:比特幣閃電網(wǎng)絡(luò)什么是支付隧道支付隧道是用于在無信任環(huán)境中進(jìn)行鏈下交易比特幣的一種機(jī)制。因?yàn)榻^大部分的交易都是在鏈下發(fā)生,所以就沒有了像比特幣一樣的交易速度的限制,極大的提高了交易的速度。
比特幣閃電網(wǎng)絡(luò) 什么是支付隧道(Payment channels)
支付隧道是用于在無信任環(huán)境中進(jìn)行鏈下交易比特幣的一種機(jī)制。交易雙方通過廣播并鎖定一筆由雙方共同簽名的鏈上交易。隧道(channel)只是一種虛擬的比喻,一個(gè)隧道由一個(gè)在鏈上的(on-chain)的funding transaction、一系列的鏈下(off-chain)的commitment transaction和最后一筆鏈上交易組成。因?yàn)榻^大部分的交易都是在鏈下發(fā)生,所以就沒有了像比特幣一樣的交易速度的限制,極大的提高了交易的速度。
最簡(jiǎn)單的單向支付隧道比如一個(gè)視頻點(diǎn)播app,用戶(記作A)每播放1秒鐘視頻需要支付0.1個(gè)比特幣給app開發(fā)者(記作B),在app界面上提供了一個(gè)基于用戶和app開發(fā)者雙重簽名的地址,用戶向該地址發(fā)送了360個(gè)比特幣作為該支付隧道的funding transaction,這筆雙重交易的輸出初始狀態(tài)是t0(A:360, B:0),隨著視頻的播放,雙方每隔一秒鐘就會(huì)有一筆新的commitment transaction生產(chǎn),t1(A:359.9, B:0.1), t2(A:359.8, B:0.2)···,這些承諾交易都是不廣播到鏈上的,最終用戶點(diǎn)擊了停止播放按鈕,最后一筆交易的狀態(tài)可能是tn(A:100,B:260),最后一筆交易就廣播到了鏈上。整個(gè)交易完成,并且只在鏈上產(chǎn)生了兩筆交易。
這個(gè)簡(jiǎn)單的單向支付隧道有兩個(gè)明顯的漏洞:
A發(fā)送第一筆資金交易后,B直接消失,那A永遠(yuǎn)也拿不回自己錢了。
A可以拿被B簽名過后的任何一筆commitment transaction進(jìn)行廣播,從而減少自己費(fèi)用。
這兩個(gè)問題可以通過加一個(gè)timelock來解決
加了時(shí)間鎖的單向支付隧道在A發(fā)起funding transaction之前,A先讓B簽名一份有timelock的refund transaction,交易的輸出的高度為當(dāng)前的區(qū)塊高度+3000。然后才開始接下來的funding transaction流程,如果B消失了,A可以通過refund transaction等待(3000個(gè)塊)拿回自己的錢。接下來的每一次commitment transaction都帶著時(shí)間鎖,從refund transaction設(shè)定的區(qū)塊高度遞減,比如T+3000, T+2999, T+2000, T+1500。這樣每一次簽署最新的commitment transaction就相當(dāng)于撤銷了之前的交易(因?yàn)闀r(shí)間離T較近,可以優(yōu)先廣播出去)。這也就解決了上面說的A可以拿之前的一筆commitment transaction進(jìn)行廣播,然而B看到A廣播了之前的區(qū)塊,就可以拿時(shí)間較新的交易進(jìn)行廣播,從而讓A的廣播的交易失效。
簡(jiǎn)單的加了time lock的單向支付隧道雖然解決了上面兩個(gè)問題,但還有幾個(gè)問題沒有解決:
如果B故意消失的話,A只能等到3000個(gè)區(qū)塊后才能拿回自己的錢
因?yàn)樘砑恿?em>time lock,隧道的生命周期有了限制。
因?yàn)槊恳还P交易都是通過遞減時(shí)間鎖進(jìn)行的,所以commitment transaction筆數(shù)有了限制。
為了解決這三個(gè)問題,接下來要引入叫Asymmetric Revocable Commitments
Asymmetric Revocable Commitments和前面一樣,我們先在鏈上廣播一筆由雙方簽名的funding transacion,但接下來的commitment transaction和前面的不同,A和B雙方各自生成一個(gè)commitment transaction,像下面這樣:
A的commitment transaction:
Input: 2-of-2 funding output, signed by B Output 0 <5 bitcoin>: CHECKSIG Output 1 <5 bitcoin>: <1000 blocks> CHECKSEQUENCEVERIFY DROP CHECKSIG
B的commitment transaction:
Input: 2-of-2 funding output, signed by A Output 0 <5 bitcoin>: CHECKSIG Output 1 <5 bitcoin>: <1000 blocks> CHECKSEQUENCEVERIFY DROP CHECKSIG
因?yàn)殡p方都簽名的交易可以馬上拿回自己的幣,而對(duì)方得等待1000個(gè)區(qū)塊后才能拿回自己的幣。所以雙方都很愿意對(duì)交易進(jìn)行簽名。接下來要加入一個(gè)新的元素:Revocation Public Key每次發(fā)起commitment transaction前雙方都會(huì)各自獨(dú)立生成該密碼的一半,把這個(gè)Key用在上面的第二個(gè)output上,變成這樣:
A的commitment transaction:
Input: 2-of-2 funding output, signed by B Output 0 <5 bitcoin>: CHECKSIG Output 1 <5 bitcoin>: IF # Revocation pernalty outputELSE <1000 blocks> CHECKSEQUENCEVERIFY DROP CHECKSIG ENDIF CHECKSIG
B的commitment transaction:
Input: 2-of-2 funding output, signed by A Output 0 <5 bitcoin>: CHECKSIG Output 1 <5 bitcoin>: IF # Revocation pernalty outputELSE <1000 blocks> CHECKSEQUENCEVERIFY DROP CHECKSIG ENDIF CHECKSIG
有了Revocation key,在每次提議commitment transaction前都會(huì)交換前面一個(gè)commitment transaction的Revocation public key,如果一方發(fā)現(xiàn)對(duì)方廣播了前面的一筆commitment transaction就可以使用完整的Revocation Key拿到全部的幣。通過使用了相對(duì)的time lock就可以極大提高單個(gè)隧道里面的commitment transaction了
Hash Time Lock Contracts(HTLC)HTLC是一種智能合約,它想到達(dá)到的效果就是由交易的接受人提供一個(gè)Hash過的密鑰R作為output的的條件之一,如果誰能出示密鑰R,就能獲得這個(gè)交易的output的幣。類似這樣的輸出:
IF # Payment if you have the secret R HASH160路由的支付隧道(Lighting Network)EQUALVERIFY ELSE # Refund after timeout. CHECKLOCKTIMEVERIFY DROP CHECKSIG ENDIF
在HTLC的機(jī)制基礎(chǔ)上我們可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的閃電網(wǎng)絡(luò),在雙方?jīng)]有建立支付隧道的情況下完成一筆交易。例子如下圖:
Alice想向Eric轉(zhuǎn)賬1BTC, 因?yàn)锳lice并沒有直接跟Eric建立隧道,他只知道Bob,所以他向Bob發(fā)起了一筆commitment transaction,一共1.003BTC,output指向持有Eric提供的密鑰R的收款人。因?yàn)锽ob并沒有密鑰R,所以他轉(zhuǎn)而向跟他建立隧道的Carol發(fā)起一筆commitment transaction,一共1.002BTC,這樣如果Carol能向他提供密鑰R的話,他轉(zhuǎn)可以獲得1.003-1.002=0.001個(gè)BTC, 因?yàn)镃arol也沒有密鑰R,所以他向Diana發(fā)起另外一筆1.001BTC的commitment transaction,期望Diana能給他密鑰R,最后到達(dá)了Eirc,他提供了密鑰R,因此所有人都獲得了對(duì)應(yīng)的commitment transaciont,交易完成。這就是最簡(jiǎn)單的閃電網(wǎng)絡(luò)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/24315.html
摘要:本文是在一塊聽聽上的語音直播的文字精簡(jiǎn)版。主網(wǎng)上線的細(xì)節(jié)主網(wǎng)在北京時(shí)間年月日早上點(diǎn)正式完成了上線。目前主網(wǎng)上線工作已經(jīng)完成,正在把測(cè)試網(wǎng)上的資產(chǎn)遷移到主網(wǎng)上。主網(wǎng)上線意味著什么真的是一個(gè)去中心化的區(qū)塊鏈項(xiàng)目了。主網(wǎng)上線對(duì)來說只是一個(gè)起點(diǎn)。 本文是在一塊聽聽上的語音直播的文字精簡(jiǎn)版。 Mixin Network的成績(jī),主網(wǎng)和展望 大家好,我是Mixin Network 的李林。非常高興能...
摘要:在區(qū)塊鏈所面臨的諸多問題中,區(qū)塊鏈之間互通性極大程度的限制了區(qū)塊鏈的應(yīng)用空間。是在以太坊基金會(huì)支持之下誕生并成長起來的,它被認(rèn)為是區(qū)塊鏈上的第一個(gè)側(cè)鏈。它旨在解決當(dāng)今兩大阻止區(qū)塊鏈技術(shù)傳播和接受的難題即時(shí)拓展性和延伸性。 在區(qū)塊鏈所面臨的諸多問題中,區(qū)塊鏈之間互通性極大程度的限制了區(qū)塊鏈的應(yīng)用空間。對(duì)于公有鏈還是私有鏈來說,跨鏈技術(shù)就是實(shí)現(xiàn)區(qū)塊鏈價(jià)值的關(guān)鍵,是區(qū)塊鏈向外拓展和連接的橋梁...
摘要:閃電網(wǎng)絡(luò)和的相同之處都是為比特幣服務(wù)。比特幣占有整個(gè)加密貨幣市值的一半,而且比特幣會(huì)承載越來越多的經(jīng)濟(jì)活動(dòng),放棄比特幣的或者跨鏈?zhǔn)强罩袠情w。都是點(diǎn)對(duì)點(diǎn)傳輸,沒有發(fā)行對(duì)應(yīng)比特幣的證券化。 閃電網(wǎng)絡(luò) Mixin Network 節(jié)點(diǎn)數(shù)量 無限制 不超過50 建節(jié)點(diǎn)是否有限制條件 無條件 持有10000 xin token就可以 交易確認(rèn)時(shí)間 小于 3 秒 小于 1 秒...
摘要:閃電網(wǎng)絡(luò)和通過可以在閃電網(wǎng)絡(luò)任意節(jié)點(diǎn)之間安全轉(zhuǎn)移價(jià)值而無需信任中介節(jié)點(diǎn)。相關(guān)比特幣改善提案該為比特幣 本文是作者有關(guān)區(qū)塊鏈的系列文章之一,可通過如下鏈接下載原文:https://github.com/junahan/JU... 摘要 比特幣閃電網(wǎng)絡(luò)是一個(gè)去中心化的即時(shí)、大吞吐量微支付系統(tǒng),該系統(tǒng)無需委托可信的第三方代管資金,也沒有相應(yīng)的風(fēng)險(xiǎn)。實(shí)現(xiàn)的方法是創(chuàng)新性的利用比特幣內(nèi)置腳本構(gòu)...
閱讀 2049·2023-04-25 15:24
閱讀 1586·2019-08-30 12:55
閱讀 1625·2019-08-29 15:27
閱讀 478·2019-08-26 17:04
閱讀 2416·2019-08-26 10:59
閱讀 1811·2019-08-26 10:44
閱讀 2207·2019-08-22 16:15
閱讀 2597·2019-08-22 15:36