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