国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Don’t Trust, Verify

simpleapples / 1276人閱讀

摘要:和比特幣網(wǎng)絡(luò)傳輸協(xié)議的一系列優(yōu)化使得比特幣的新區(qū)塊幾乎可以在瞬間被全世界的礦工接收,非常有效的降低了孤塊率,保證了網(wǎng)絡(luò)安全。

這篇文章試圖討論全節(jié)點對于區(qū)塊鏈的意義。

角色

我們都知道,區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點有不同的角色。例如:

出塊節(jié)點

出塊節(jié)點負責(zé)打包交易,生產(chǎn)區(qū)塊。出塊節(jié)點在不同的地方有不同的名字,例如比特幣和以太坊中的礦工/礦池,Bitshares的Delegator,EOS的Producer, Cardarno的Stakeholder,Tendermint和Casper中的Validator,以及CITA中的共識節(jié)點等等。 在這些網(wǎng)絡(luò)中,出塊節(jié)點的角色往往與全節(jié)點角色重合。最接近純粹出塊節(jié)點的例子應(yīng)該是使用getblocktemplate協(xié)議參與挖礦的比特幣礦機,他們不驗證區(qū)塊,但是擁有選擇交易打包和封裝完整區(qū)塊的權(quán)力。

出塊節(jié)點相對于其他節(jié)點往往需要付出更多的資源,包括算力(無論是用于PoW還是用于交易計算),磁盤,網(wǎng)絡(luò)帶寬等等。這些資源要求抬高了出塊節(jié)點的門檻,容易造成出塊節(jié)點分布的中心化。

全節(jié)點

區(qū)塊鏈中的區(qū)塊由兩個部分組成,區(qū)塊頭和區(qū)塊體。區(qū)塊頭中存放包括區(qū)塊見證(例如工作量證明或是投票)在內(nèi)的元數(shù)據(jù),區(qū)塊體中包含交易數(shù)據(jù)。區(qū)塊的驗證由此也可以分為兩部分,對區(qū)塊頭的驗證和對區(qū)塊體的驗證。對區(qū)塊頭的驗證主要是出塊權(quán)的檢查,例如區(qū)塊頭中包含的工作量證明是否有效;對區(qū)塊體的驗證主要是對交易有效性的檢查,確保區(qū)塊體中每一筆交易都是有效的。

全節(jié)點同步交易和區(qū)塊,對其進行驗證,并轉(zhuǎn)發(fā)有效的交易和區(qū)塊。為了能夠進行驗證,全節(jié)點必須有完整的當前世界狀態(tài)(例如UTXO集合)。由于全節(jié)點自行進行所有的驗證,因此不需要信任其他第三方。

通常情況下,出塊節(jié)點構(gòu)造新區(qū)塊時需要引用前一個有效區(qū)塊,為了確認父塊的有效性必須對其進行驗證。此時出塊節(jié)點也做了全節(jié)點的事情,也是一種全節(jié)點。這種角色上的重合不是必然的,不影響后面的討論。

輕節(jié)點

輕節(jié)點與全節(jié)點不同:輕節(jié)點只同步和驗證區(qū)塊頭,不會同步和驗證區(qū)塊體以及其中的交易。因此,輕節(jié)點只能驗證區(qū)塊頭的有效性,無法驗證該區(qū)塊頭對應(yīng)的區(qū)塊體中交易的有效性,只能相信構(gòu)造這個區(qū)塊的出塊節(jié)點沒有打包無效的交易,并且相信將這個看起來合理的區(qū)塊頭發(fā)送給自己的全節(jié)點對其進行了完整的檢查。輕節(jié)點是信任其它節(jié)點的節(jié)點。由于不同步交易,輕節(jié)點也無法得知交易處理之后的世界狀態(tài),自然也無法驗證交易雙花或是世界狀態(tài)的變更。輕節(jié)點的驗證能力大大弱于全節(jié)點。

相信其它節(jié)點的好處是,輕節(jié)點的開銷很小:區(qū)塊頭的體積只占區(qū)塊的很小一部分,很容易同步和存儲。因此輕節(jié)點可以運行在筆記本甚至手機等各種有限硬件環(huán)境中。

關(guān)系

這幾種角色之間的關(guān)系是一個非常有意思的問題,也是我和朋友們常常會討論的一個話題。在這樣的討論中,如果你拿出一支筆,請在場的任意一位朋友在白板上畫出他心目中的這三種節(jié)點組成的區(qū)塊鏈網(wǎng)絡(luò)拓撲,大概率會得到類似這樣的圖:

圖1. 朋友心中的節(jié)點拓撲A12856753-e57be4f7b1204b84.jpg1240×960 44 KB
圖2. 朋友心中的節(jié)點拓撲B12856753-90c0b692bf524eaf.jpg1240×960 46.5 KB
在圖1中,出塊節(jié)點在最中心的位置,全節(jié)點圍繞出塊節(jié)點形成網(wǎng)絡(luò),輕節(jié)點連接在全節(jié)點上;在圖2中,出塊節(jié)點和全節(jié)點混合組成分布式網(wǎng)絡(luò)位于中心,輕節(jié)點連接在全節(jié)點或者出塊節(jié)點上。哪一副圖更接近真實情況呢?

誰是守護者

人們通常認為出塊節(jié)點是守護者(Keeper)一個區(qū)塊鏈網(wǎng)絡(luò)的守護者,這樣的觀點不無道理。畢竟是出塊節(jié)點驗證交易,生產(chǎn)新的區(qū)塊,為用戶提供服務(wù),這也是為什么人們會把出塊節(jié)點/礦工畫在網(wǎng)絡(luò)拓撲的中心。看上去,他們已經(jīng)擁有了定義區(qū)塊鏈的權(quán)力。然而,如果我們將注意力再下降一層,從P2P網(wǎng)絡(luò)的觀點來看,結(jié)果卻不是這樣。

一般的P2P網(wǎng)絡(luò),例如BitTorrent或是Kad Network,目的在于更快的分享數(shù)據(jù),這些網(wǎng)絡(luò)中的節(jié)點并不關(guān)心自己轉(zhuǎn)發(fā)的數(shù)據(jù)包包含的是什么樣的數(shù)據(jù)。這些節(jié)點不需要理解數(shù)據(jù),只需要轉(zhuǎn)發(fā)數(shù)據(jù),幫助數(shù)據(jù)從網(wǎng)絡(luò)中的一點流動到另外一個點。它們只是數(shù)據(jù)的搬運工。

區(qū)塊鏈的P2P網(wǎng)絡(luò)則不僅僅是數(shù)據(jù)的搬運工,還是數(shù)據(jù)的驗證者。P2P網(wǎng)絡(luò)由全節(jié)點構(gòu)成,全節(jié)點在接收到新的交易或者新的區(qū)塊時,首先做的事情是驗證。這里的驗證不僅僅是驗證數(shù)據(jù)本身的完整性(Integrity),還要驗證數(shù)據(jù)在業(yè)務(wù)邏輯中的有效性,例如這筆交易是否和賬本中已經(jīng)有的交易沖突(雙花),或者這個新區(qū)塊是否包含了無效的交易。驗證交易是否雙花是業(yè)務(wù)層(賬本)的邏輯,不是網(wǎng)絡(luò)層的邏輯。在區(qū)塊鏈的P2P網(wǎng)絡(luò)中,節(jié)點不僅僅要轉(zhuǎn)發(fā)數(shù)據(jù),還需要理解數(shù)據(jù)。數(shù)據(jù)轉(zhuǎn)發(fā)在區(qū)塊鏈節(jié)點中是一個提升到業(yè)務(wù)層的概念,而不只是一個網(wǎng)絡(luò)層的概念。

這種設(shè)計所導(dǎo)致的結(jié)果就是,全節(jié)點組成的網(wǎng)絡(luò)形成了一道“防火墻”,有效阻止了無效交易和區(qū)塊的傳播。出塊節(jié)點如果產(chǎn)生一個包含無效交易的區(qū)塊,這個區(qū)塊只能夠傳播到與其相鄰的全節(jié)點,無法穿透這些相鄰節(jié)點形成的防火墻傳播到更遠的地方,無法進入全節(jié)點網(wǎng)絡(luò)維護的區(qū)塊鏈主分叉,無效交易也就無法被依賴全節(jié)點的輕節(jié)點或是錢包接受。

因此,出塊節(jié)點只是新的區(qū)塊的提議者,并不能讓全節(jié)點網(wǎng)絡(luò)接受無效的區(qū)塊或是交易。挖出一個新的區(qū)塊并不是共識的結(jié)束,而是共識的開始。如果套用Paxos共識里面的詞匯,出塊節(jié)點是Proposer,全節(jié)點是Acceptor。出塊節(jié)點持續(xù)打包交易,提交新的區(qū)塊,全節(jié)點驗證新的區(qū)塊提案,保證新區(qū)塊和其中交易的正確性。從這個角度看,作為驗證者的全節(jié)點更應(yīng)該被稱作守護者(Keeper)

按照這樣的理解,我們可以畫出這樣一個圖:

在圖3中,全節(jié)點網(wǎng)絡(luò)位于中心,形成一個相互驗證的去中心化網(wǎng)絡(luò),一道安全屏障。輕節(jié)點連接這個網(wǎng)絡(luò)中的全節(jié)點,使用全節(jié)點提供的服務(wù)。輕節(jié)點之間也可以形成自己的網(wǎng)絡(luò),但需要注意的是,輕節(jié)點網(wǎng)絡(luò)沒有驗證功能,轉(zhuǎn)發(fā)在這里更多的是網(wǎng)絡(luò)層的概念。輕節(jié)點網(wǎng)絡(luò)和全節(jié)點網(wǎng)絡(luò)是不同的網(wǎng)絡(luò)。出塊節(jié)點連接全節(jié)點提交新的區(qū)塊,出塊節(jié)點之間也可以形成自己的網(wǎng)絡(luò),以更好的提供服務(wù),例如比特幣的FIBRE就是一個礦池之間的專用網(wǎng)絡(luò)。

全節(jié)點網(wǎng)絡(luò)對區(qū)塊鏈的安全至關(guān)重要。全節(jié)點數(shù)量越多,網(wǎng)絡(luò)越可靠,加密經(jīng)濟的基礎(chǔ)越穩(wěn)固。全節(jié)點的運行成本和長期數(shù)量這兩個指標在未來的區(qū)塊鏈價值評估中應(yīng)該會扮演越來越重要的作用。區(qū)塊鏈發(fā)展面臨的一個關(guān)鍵問題是,如何激勵全節(jié)點?這個問題看上去簡單,實際上會觸及一些非常深層次的(也許是不可調(diào)和的)矛盾,例如data availability problem,這里就不展開說了,以后有時間再寫文章討論。

案例分析

當我們理解了全節(jié)點的重要性,在腦海中建立了正確的網(wǎng)絡(luò)拓撲后,就可以用這個框架來分析實際的問題了。這里舉兩個例子。

FIBRE

FIBRE是比特幣快速網(wǎng)絡(luò)中繼引擎(Fast Internet Bitcoin Relay Engine)的縮寫,是一個專門給礦工提供服務(wù)的區(qū)塊傳輸網(wǎng)絡(luò)。FIBRE在全球不同的位置部署了6個節(jié)點,相互之間通過高速網(wǎng)絡(luò)連接,使用UDP+ForwardErrorCorrection傳送數(shù)據(jù),幾乎實現(xiàn)了無延遲的傳輸。在FIBRE注冊過的礦工可以連接到離自己最近的FIBRE節(jié)點,以最短的時間獲得新的區(qū)塊數(shù)據(jù)。FIBRE和比特幣P2P網(wǎng)絡(luò)傳輸協(xié)議的一系列優(yōu)化使得比特幣的新區(qū)塊幾乎可以在瞬間被全世界的礦工接收,非常有效的降低了孤塊率,保證了網(wǎng)絡(luò)安全。

FIBRE是由Matt Corallo維護的一個需要注冊使用的網(wǎng)絡(luò),因此是一個中心化管理的系統(tǒng)。這也是FIBRE常為人所詬病的地方。但是如果我們按照圖3的拓撲來分析,就會發(fā)現(xiàn)FIBRE的中心化對比特幣網(wǎng)絡(luò)并沒有負面影響:無論礦工是用中心化還是去中心化的網(wǎng)絡(luò)加速新區(qū)塊的傳播,這個行為都不會影響全節(jié)點對新區(qū)塊的驗證。FIBRE也不是整個網(wǎng)絡(luò)的單點,如果FIBRE崩潰或者作惡,礦工隨時可以切換回比特幣自己的P2P網(wǎng)絡(luò)。

思考題:同樣的出塊節(jié)點間專用加速網(wǎng)絡(luò),如果用于提升網(wǎng)絡(luò)吞吐量解決scalability問題,上述結(jié)論依然成立嗎?

EOS

EOS的目標是百萬級的TPS,為了實現(xiàn)這個目標,EOS使用投票的方式由全網(wǎng)選出21個出塊節(jié)點(以及一定數(shù)量的候選節(jié)點),并要求出塊節(jié)點使用最好的硬件來支撐高性能。EOS是否真的實現(xiàn)了百萬級TPS并不重要,重要的是,通過這種方式來提升性能不僅僅要求出塊節(jié)點付出不菲的成本,也要求全節(jié)點付出同樣的成本。然而與出塊節(jié)點不同,EOS網(wǎng)絡(luò)中的全節(jié)點并沒有得到網(wǎng)絡(luò)的補貼,因此用戶很難有足夠的動力真的去支付幾乎與出塊節(jié)點相同的成本去運行一個全節(jié)點。在這種情況下,網(wǎng)絡(luò)最終會演化成一個沒有全節(jié)點的結(jié)構(gòu):

ByteMaster對21個節(jié)點合理性的論證是,比特幣的算力也是集中在<10個礦池手中,21個節(jié)點其實比10個礦池更加去中心化。我們通過比較網(wǎng)絡(luò)拓撲應(yīng)該容易看出,這個辯護并不成立,因為兩者的網(wǎng)絡(luò)結(jié)構(gòu)有很大區(qū)別,無法這樣直接比較。在EOS網(wǎng)絡(luò)中,由于去中心化全節(jié)點網(wǎng)絡(luò)的缺失,出塊節(jié)點缺乏監(jiān)督,用戶只能完全相信出塊節(jié)點不會作惡。出塊和驗證的工作最終都集中到出塊節(jié)點的角色上,出塊節(jié)點既是運動員,又是裁判。而在比特幣的網(wǎng)絡(luò)中,大量的全節(jié)點承擔(dān)了裁判的角色,礦池僅僅是運動員。用戶可以相信大量的全節(jié)點,不需要相信礦池。

需要指出的是,這個問題實際上不僅僅是EOS的問題,也是其他要在Layer 1擴容的項目會遇到的問題。

對CKB的啟示

出塊節(jié)點,全節(jié)點,輕節(jié)點形成了一個動態(tài)的網(wǎng)絡(luò),網(wǎng)絡(luò)中的各類角色都可以自由進出(額,出塊節(jié)點實際上在很多區(qū)塊鏈中無法自由進出,這個也不展開了,以后有時間再寫文章討論…),這些角色形成的拓撲結(jié)構(gòu)(例如節(jié)點比例、誰和誰連接等等等等)決定了網(wǎng)絡(luò)的性質(zhì),包括性能、安全、中心化程度等各個方面。不同的設(shè)計可能會導(dǎo)致網(wǎng)絡(luò)最終形成不同的結(jié)構(gòu),而這個最終結(jié)構(gòu)所展現(xiàn)的性質(zhì)有可能和設(shè)計初衷是相違背的。

全節(jié)點為了能夠不信任任何第三方,選擇自行驗證所有交易歷史。這種做法使全節(jié)點不僅僅滿足了自己的需求,也為網(wǎng)絡(luò)安全貢獻了力量,體現(xiàn)出一種正外部性。區(qū)塊鏈需要這種安全保證,因此全節(jié)點對于一個去中心化的網(wǎng)絡(luò)至關(guān)重要。如何內(nèi)部化這種正外部性是一個需要重視的課題,在這個課題還沒有解決的情況下,我們能做的只能是保證全節(jié)點可以運行在一個較低的成本,以促進網(wǎng)絡(luò)保有盡可能多的全節(jié)點。

對于希望成為未來加密經(jīng)濟的基礎(chǔ)設(shè)施的Nervos CKB來說,必須在設(shè)計之初就把這些因素考慮在內(nèi),以理想中的網(wǎng)絡(luò)結(jié)構(gòu)為目標,并通過經(jīng)濟激勵和其他機制設(shè)計來實現(xiàn)。這并不是一件容易的事情,還需要大量的研究和探索。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24751.html

相關(guān)文章

  • 如何驗證 Bitcoin Core 軟件簽名

    摘要:在簽名操作中,首先對信息進行取散列值的操作,然后使用信息發(fā)送者的私鑰加密這個散列值,獲得一個數(shù)字簽名,并將簽名和原信息一同發(fā)送。 showImg(https://iocaffcdn.phphub.org/uploads/images/201903/29/9595/hcLQHeAops.png!large); 來自 簡書btc address: 1FmWXNJT3jVKaHBQs2gAs...

    tigerZH 評論0 收藏0
  • [gist]pure and secure javascript oauth with yql

    from http://oyanglul.us It would be awesome if we can use OAuth in JavaScript purely in client side. before start to do that, please let me e...

    ityouknow 評論0 收藏0
  • Shell發(fā)送郵件以HTML展示

    摘要:有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過發(fā)送郵件來通知相關(guān)的負責(zé)人。一種是普通郵件,通過附件描述詳細報告一種是高級郵件哈哈,本來就是告警,還不趕快看,還要慢慢下載附件打開看所以將附件內(nèi)容以直接展示到正文處,并通過樣式標記警告。 有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過shell發(fā)送郵件來通知相關(guān)的負責(zé)人。本文講講如何shell發(fā)送郵件。一種是普通郵件,通過附件描述詳細報告;一種...

    roadtogeek 評論0 收藏0
  • Shell發(fā)送郵件以HTML展示

    摘要:有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過發(fā)送郵件來通知相關(guān)的負責(zé)人。一種是普通郵件,通過附件描述詳細報告一種是高級郵件哈哈,本來就是告警,還不趕快看,還要慢慢下載附件打開看所以將附件內(nèi)容以直接展示到正文處,并通過樣式標記警告。 有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過shell發(fā)送郵件來通知相關(guān)的負責(zé)人。本文講講如何shell發(fā)送郵件。一種是普通郵件,通過附件描述詳細報告;一種...

    phodal 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<