日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是Tendermint?(1)

發(fā)布時(shí)間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是Tendermint?(1) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是Tendermint?

    • 一、Tendermint介紹
      • 1.1 什么是 Tendermint?
      • 1.2 Tendermint 與同類軟件對(duì)比
        • 1.2.1 Zookeeper, etcd, consul
        • 1.2.2 比特幣、以太坊及其他加密貨幣
        • 1.2.3 其他區(qū)塊鏈項(xiàng)目
      • 1.3 cosmos與tendermint
      • 1.4 總結(jié)
      • 1.5 參考文檔

一、Tendermint介紹

1.1 什么是 Tendermint?

Tendermint 是一種能夠?yàn)槎嗯_(tái)機(jī)器安全和保證數(shù)據(jù)一致性復(fù)制應(yīng)用程序的軟件。從安全性層面看,分布式系統(tǒng)中即使 1/3 的隨機(jī)節(jié)點(diǎn)即使宕機(jī)了,Tendermint 依然能夠保證分布式系統(tǒng)正常運(yùn)行。另外在數(shù)據(jù)一致性方面,故障的節(jié)點(diǎn)能夠看到相同的事務(wù)日志并計(jì)算出相同的狀態(tài)。安全且保持一致性復(fù)制是分布式系統(tǒng)的基本問題, 在很多應(yīng)用程序中起著關(guān)鍵性的作用,比如貨幣系統(tǒng)、選舉和基礎(chǔ)設(shè)備編排等系統(tǒng)。

分布式系統(tǒng)需具備容忍節(jié)點(diǎn)離線或出錯(cuò),也就是拜占庭容錯(cuò)。拜占庭容錯(cuò)理論歷史悠久,區(qū)塊鏈技術(shù)落地成功的案例、比如比特幣、以太坊的成功促使該理論在計(jì)算機(jī)領(lǐng)域的實(shí)現(xiàn)得以流行。區(qū)塊鏈技術(shù)著重結(jié)合對(duì)等網(wǎng)絡(luò)(P2P) 和密碼認(rèn)證對(duì)拜占庭容錯(cuò)加以進(jìn)化。 交易被批量打包成塊,每個(gè)塊通過加密哈希連接上一個(gè)塊從而形成鏈,這也是把該技術(shù)命名為 區(qū)塊鏈 (BlockChain) 的原因。

Tendermint 包含兩個(gè)組件: 區(qū)塊鏈共識(shí)引擎 (blockchain consensus engine)、 通用應(yīng)用接口(generic application interface) 共識(shí)引擎被稱為 Tendermint Core ,確保交易記錄在任何一個(gè)節(jié)點(diǎn)都能一致被排序。通用應(yīng)用接口被稱為 應(yīng)用區(qū)塊鏈接口 (Application BlockChain Interface) 簡(jiǎn)稱為 ABCI , 交易能夠被任何編程語言處理。大部分區(qū)塊鏈和共識(shí)方案預(yù)先打包內(nèi)置狀態(tài)機(jī)(比如存儲(chǔ)鍵值對(duì)或者通過腳本),而開發(fā)者通過 Tendermint 可以對(duì)任意編程語言編碼的應(yīng)用實(shí)現(xiàn) BFT 狀態(tài)機(jī)復(fù)制, 并且開發(fā)環(huán)境對(duì)開發(fā)者也很適合。

Tendermint 以易用、易懂、高性能為設(shè)計(jì)原則,對(duì)各種分布式應(yīng)用程序都有用。

1.2 Tendermint 與同類軟件對(duì)比

Tendermint 與兩類軟件相似。一類是分布式鍵值對(duì)存儲(chǔ)軟件,例如 Zookeeper, etcd, 和 consul, 但他們使用了 non-BFT 共識(shí)。 另外一類就是區(qū)塊鏈技術(shù)。區(qū)塊鏈技術(shù)包含加密貨幣,例如比特幣和以太坊,還包含非傳統(tǒng)類的分布式賬本,譬如 Hyperledger 的 Burrow

1.2.1 Zookeeper, etcd, consul

Zookeeper, etcd 和 consul 都是典型的鍵值對(duì)存儲(chǔ)和 non-BFT 共識(shí)算法的實(shí)現(xiàn)。Zookeeper 使用 Zookeeper Atomic Broadcast 版本的 Paxos 算法;etcd 和 consul 使用 比較新和簡(jiǎn)單的 Raft 共識(shí)算法。非拜占庭容錯(cuò)共識(shí)實(shí)現(xiàn)的分布式集群中,假設(shè)包含 3-5 個(gè)節(jié)點(diǎn),可以允許一半的節(jié)點(diǎn)離線,但是如果出現(xiàn)一個(gè)拜占庭錯(cuò)誤節(jié)點(diǎn)(作惡節(jié)點(diǎn))足以摧毀該分布式系統(tǒng)。

三者都各有特色稍微不同地實(shí)現(xiàn)了鍵值對(duì)存儲(chǔ),但都重點(diǎn)圍繞著給分布式系統(tǒng)提供基礎(chǔ)服務(wù),例如動(dòng)態(tài)配置、服務(wù)發(fā)現(xiàn)、鎖、領(lǐng)導(dǎo)節(jié)點(diǎn)選舉 (leader-election)

Tendermint 和上述類型的軟件本質(zhì)作用差不錯(cuò),但有兩個(gè)重要的不同點(diǎn):

  • 支持拜占庭容錯(cuò)算法,意味著智能容忍三分之一以內(nèi)的節(jié)點(diǎn)錯(cuò)誤,這個(gè)錯(cuò)誤包括任意節(jié)點(diǎn)離線和節(jié)點(diǎn)作惡
  • 獨(dú)立于特定類型軟件,例如鍵值存儲(chǔ)類。而 Tendermint
    只是關(guān)注任意狀態(tài)機(jī)復(fù)制,開發(fā)者根據(jù)軟件需求業(yè)務(wù)邏輯,例如通過狀態(tài)機(jī)復(fù)制實(shí)現(xiàn)鍵值對(duì)存儲(chǔ)、加密貨幣乃至分布式電子投票平臺(tái)等分布式應(yīng)用。

1.2.2 比特幣、以太坊及其他加密貨幣

Tendermint 誕生于傳統(tǒng)的加密貨幣之后。相比于比特幣的工作量證明 (Proof of Work) ,它實(shí)現(xiàn)的共識(shí)算法更高效和安全。早期的 Tendermint 內(nèi)置了簡(jiǎn)單的數(shù)字貨幣并實(shí)現(xiàn)了共識(shí)功能。 節(jié)點(diǎn)需要繳納保證金,如果作惡保證金就會(huì)被沒收。Tendermint 實(shí)際上也是一種股權(quán)證明 (Proof of stake)

加入可股權(quán)證明算法之后,Tendermint 演變?yōu)閰^(qū)塊鏈共識(shí)引擎,允許任何機(jī)器都可以加入作為節(jié)點(diǎn)的分布式系統(tǒng)。這也意味這 Tendermint 可以作為其他區(qū)塊鏈項(xiàng)目即插可用的共識(shí)引擎, 替換原有的共識(shí)模塊。也就是說,舉個(gè)例子你可以使用 Tendermint 共識(shí)運(yùn)行任何語言實(shí)現(xiàn)的以太坊節(jié)點(diǎn)源碼作為 ABCI 應(yīng)用(上文提到,最終實(shí)現(xiàn)了一種基于股權(quán)證明共識(shí)以太坊。 事實(shí)上,我們基于以太坊實(shí)現(xiàn)了上述的 demo

the Cosmos network 共識(shí)算法就是內(nèi)置了 Tendermint

1.2.3 其他區(qū)塊鏈項(xiàng)目

  • Fabric 采用了與 Tendermint 相似的方法,但是它更偏向于如何管理狀態(tài),并要求所有的應(yīng)用行為能夠運(yùn)行在 docker 容器中,我理解 Fabric 的 chaincode 就像以太坊的智能合約。它基于 PBFT 實(shí)現(xiàn)。在 Tendermint
    中,可以把這種基于容器的行為作為 ABCI 應(yīng)用。
  • Burrow 實(shí)現(xiàn)了以太坊虛擬機(jī)和交易機(jī)制,并擴(kuò)展了名字注冊(cè) (name-registery),許可權(quán)限、原生合約提供多種方式調(diào)用區(qū)塊鏈接口 (REST 和 JSON-RPC)。 它使用
    Tendermint 作為共識(shí)引擎,提供的特殊的應(yīng)用狀態(tài)(這里的狀態(tài)由賬戶、驗(yàn)證人集合、和名字注冊(cè))

1.3 cosmos與tendermint

關(guān)于Cosmos的介紹詳情見下一篇博文。

Tendermint與Cosmos一起存在于一個(gè)堆棧中,Cosmos是一個(gè)區(qū)塊鏈平臺(tái),充當(dāng)調(diào)解人并自稱為“區(qū)塊鏈互聯(lián)網(wǎng)”;該平臺(tái)僅在幾天前推出了區(qū)塊鏈,啟動(dòng)了Cosmos / Tendermint生態(tài)系統(tǒng)的實(shí)際存在。整個(gè)生態(tài)系統(tǒng)的運(yùn)作方式與以太坊類似,只是它更模塊化、更靈活、更易于開發(fā)。

Cosmos SDK充當(dāng)生態(tài)系統(tǒng)的應(yīng)用層(類似于以太坊的EVM),而Tendermint代表共識(shí)層(BFT容錯(cuò)權(quán)益證明共識(shí)算法)和網(wǎng)絡(luò)層(Tendermint Core)。


在Tendermint Core堆棧下連接的共識(shí)算法+ p2p網(wǎng)絡(luò)協(xié)議通過生態(tài)系統(tǒng)的另一個(gè)稱為應(yīng)用程序區(qū)塊鏈接口(ABCI)的獨(dú)立元素連接到Cosmos SDK。

Cosmos SDK是ABCI的基本實(shí)現(xiàn),代表了生態(tài)系統(tǒng)的模塊化部分;它是一個(gè)準(zhǔn)系統(tǒng)應(yīng)用程序?qū)?#xff0c;開發(fā)人員可以使用自定義功能進(jìn)行開發(fā)和增強(qiáng)。這使得現(xiàn)有的區(qū)塊鏈可以構(gòu)建基于Tendermint的應(yīng)用程序,這些應(yīng)用程序可以連接到生態(tài)系統(tǒng)并在彼此之間交換消息和價(jià)值。

這就是為什么Tendermint和Cosmos使用“區(qū)塊鏈互聯(lián)網(wǎng)”綽號(hào)的原因;整個(gè)系統(tǒng)希望成為一個(gè)中心,允許不同區(qū)塊鏈之間的互操作性。

該項(xiàng)目背后的一家營(yíng)利性加利福尼亞公司(也稱為Tendermint)將上述三個(gè)主要元素分開,然后在Tendermint堆棧下連接網(wǎng)絡(luò)/共識(shí)層。
這樣做是為了使技術(shù)的組件更易于使用和修復(fù),而無需在想要更改某些內(nèi)容時(shí)為整個(gè)生態(tài)系統(tǒng)進(jìn)行開發(fā)。主要開發(fā)人員Jae Kwon飾演Ethan Buchman,他們希望創(chuàng)建一些易于理解,實(shí)現(xiàn)和開發(fā)的東西,而Tendermint是他們努力的最終結(jié)果。

在Tendermint之前,構(gòu)建區(qū)塊鏈需要從頭開始構(gòu)建所有三個(gè)層(網(wǎng)絡(luò),共識(shí),應(yīng)用程序)。以太坊通過提供虛擬機(jī)區(qū)塊鏈來簡(jiǎn)化這一點(diǎn),任何人都可以在其上以智能合約的形式部署自定義邏輯。一個(gè)問題仍然存在:區(qū)塊鏈本身的發(fā)展。Tendermint大大簡(jiǎn)化了這個(gè)過程,因?yàn)殚_發(fā)人員只需要擔(dān)心應(yīng)用程序?qū)印?/p>

網(wǎng)絡(luò)和共識(shí)層已經(jīng)通過Tendermint Core引擎提供;需要做的就是通過選擇的編程語言調(diào)整ABCI,開發(fā)獨(dú)特的應(yīng)用程序并開始使用Tendermint的功能。

Tendermint團(tuán)隊(duì)通過獲取以太坊的代碼庫(kù),剝離PoW并將最終結(jié)果插入其Tendermint Core之上來做這樣的事情。這創(chuàng)建了Ethermint,類似以太坊的協(xié)議,具有權(quán)益證明功能。所有現(xiàn)有的以太坊工具(Truffle,Metamask,…)都與Ethermint兼容,你可以將智能合約移植到那里,而無需任何額外的工作。


我們?nèi)匀粵]有提到的整個(gè)等式的一個(gè)重要元素是區(qū)塊鏈間通信協(xié)議(IBC),它對(duì)于區(qū)塊鏈互操作性非常重要。IBC允許異構(gòu)鏈在彼此之間傳輸價(jià)值和數(shù)據(jù),最終解鎖具有不同應(yīng)用程序和驗(yàn)證器集的區(qū)塊鏈之間的互操作性。

為了避免未來成百上千個(gè)區(qū)塊鏈可能帶來的可擴(kuò)展性問題,Cosmos提出了一種具有兩類區(qū)塊鏈的模塊化架構(gòu):Hubs和區(qū)域。

區(qū)域是常規(guī)的異構(gòu)區(qū)塊鏈,而 Hub 是專門設(shè)計(jì)用于將區(qū)域連接在一起的區(qū)塊鏈。當(dāng)區(qū)域與中心創(chuàng)建 IBC 連接時(shí),它可以自動(dòng)訪問(即發(fā)送和接收)連接到它的所有其他區(qū)域。因此,每個(gè)區(qū)域只需要使用一組受限制的集線器建立有限數(shù)量的連接。

中心還可以防止區(qū)域之間的雙重支出。這意味著,當(dāng)區(qū)域從中心接收令牌時(shí),它只需要信任此令牌的源區(qū)域和中心。第一個(gè)中心(Cosmos Hub)幾天前已經(jīng)啟動(dòng)。有些鏈條不會(huì)完全兼容Tendermint;開發(fā)人員設(shè)想了所謂的掛鉤區(qū)來處理這個(gè)問題。

Tendermint的密碼學(xué)本身并不是那么先進(jìn),ECDSA簽名是生態(tài)系統(tǒng)中最“奇特”的技術(shù)。在最近的發(fā)布后直播中提到了BLS簽名聚合,零知識(shí)證明和Ristretto帳戶,但這些似乎都還沒有出現(xiàn)。

該技術(shù)可用于創(chuàng)建公共和私有鏈,前者通過PoS運(yùn)行,后者通過許可節(jié)點(diǎn)運(yùn)行;兩個(gè)系統(tǒng)都將是BFT。Tendermint Core上的方塊可以有一秒鐘的區(qū)塊時(shí)間,并被視為立即最終;否則,可以安全地假設(shè)網(wǎng)絡(luò)遭受了33%的攻擊(超過三分之一的驗(yàn)證者是惡意的)。

區(qū)塊鏈需要具有拜占庭容錯(cuò)能力,即能夠容忍潛在的惡意節(jié)點(diǎn),這些節(jié)點(diǎn)正在向網(wǎng)絡(luò)傳達(dá)虛假狀態(tài)和消息并危及共識(shí)。拜占庭容錯(cuò)系統(tǒng)上的科學(xué)很少,因?yàn)檫@個(gè)話題在學(xué)術(shù)界并不受歡迎。

所做的一些研究集中在多達(dá)7個(gè)節(jié)點(diǎn)的小樣本網(wǎng)絡(luò)上;Tendermint開發(fā)人員想要一些可以在更高層次上擴(kuò)展的東西。即使比特幣引入了一個(gè)能夠支持?jǐn)?shù)千個(gè)獨(dú)立節(jié)點(diǎn)的系統(tǒng),該系統(tǒng)也曾經(jīng)(并且仍然擁有)一個(gè)管理域,這大大限制了它的可擴(kuò)展性。

Kwon和他的合作伙伴設(shè)想了一種BFT協(xié)議,該協(xié)議可以在無許可設(shè)置中擴(kuò)展到數(shù)百個(gè)節(jié)點(diǎn),并以權(quán)益證明(PoS)作為底層安全機(jī)制。他們提出了基于BFT的系統(tǒng),該系統(tǒng)具有我們已經(jīng)命名的兩個(gè)關(guān)鍵元素:Tendermint Core,用于達(dá)成共識(shí)和“八卦”,以及Cosmos SDK作為應(yīng)用層。

他們的BFT權(quán)益證明算法通過使用部分同步網(wǎng)絡(luò)模型克服了拜占庭將軍問題,這意味著對(duì)區(qū)塊進(jìn)行投票的驗(yàn)證者不需要同時(shí)采取行動(dòng)。這個(gè)系統(tǒng)中的區(qū)塊不是按時(shí)間表投票的,也沒有確定的大小。

在被認(rèn)為是“完全同步”的比特幣中,我們有一個(gè)設(shè)定的10分鐘時(shí)間框架,節(jié)點(diǎn)必須尋找,收集,驗(yàn)證和添加交易到區(qū)塊。對(duì)于以太坊,這個(gè)時(shí)間范圍只有15秒。這一切都很好,直到同步性被打破;一些節(jié)點(diǎn)可能會(huì)脫機(jī)并遭受延遲問題,在這種情況下,鏈可能會(huì)停止或分叉。

Tendermint旨在實(shí)現(xiàn)一個(gè)更集中的模型,該模型拒絕對(duì)其以異步方式運(yùn)行的節(jié)點(diǎn)進(jìn)行這些計(jì)時(shí)限制。

該協(xié)議更加異步:不是每輪花費(fèi)預(yù)定的時(shí)間段,而是在超過2/3的節(jié)點(diǎn)達(dá)成共識(shí)后,回合的每個(gè)步驟都會(huì)進(jìn)行。這種缺乏同步是部分的,項(xiàng)目將其稱為“弱異步”。驗(yàn)證者是眾所周知的,可以相互溝通,以協(xié)調(diào)他們的努力,并確保始終達(dá)成網(wǎng)絡(luò)共識(shí)。所有這些都意味著,事實(shí)上,他們的網(wǎng)絡(luò)永遠(yuǎn)不會(huì)分叉。

Tendermint定期重新分配驗(yàn)證者提出區(qū)塊的權(quán)利,以略微緩解該過程集中化的潛在問題。在提出區(qū)塊后,驗(yàn)證者在多輪確定性過程中投票。

為了擴(kuò)展這一點(diǎn),我們需要意識(shí)到,在協(xié)議的世界里,我們有非確定性和確定性的協(xié)議。非確定性協(xié)議是我們?cè)谕耆惒较到y(tǒng)中看到的協(xié)議。純異步情況的共識(shí)可能依賴于隨機(jī)預(yù)言機(jī),并且通常會(huì)產(chǎn)生很高的消息復(fù)雜性開銷,因?yàn)樗鼈円蕾囉谒型ㄐ诺目煽繌V播。

Tendermint通過走確定性路線來避免這種高開銷;實(shí)際上沒有什么是隨機(jī)的,而是通過定義的數(shù)學(xué)函數(shù)完成的,該函數(shù)允許我們做出預(yù)測(cè),即協(xié)議保證做出決策。

使用 Tendermint,驗(yàn)證器在確定性加權(quán)輪循機(jī)制格式的幫助下進(jìn)行輪換。驗(yàn)證者擁有的賭注越多,他們被選為領(lǐng)導(dǎo)者的次數(shù)就越多。目前,該協(xié)議的上限為一百個(gè)驗(yàn)證器,但是,如果需要,團(tuán)隊(duì)可能會(huì)考慮添加更多驗(yàn)證器。這確保了系統(tǒng)在異步環(huán)境中是安全的,并且在弱同步環(huán)境中是活躍的。總體而言,共識(shí)機(jī)制犧牲了一定程度的活性,以實(shí)現(xiàn)共識(shí)安全性和即時(shí)終結(jié)性。

1.4 總結(jié)

Tendermint是一個(gè)有趣的概念,在紙面上看起來和聽起來可能比在現(xiàn)實(shí)中更復(fù)雜。它基本上是互操作性的EOS,與以太坊及其大量克隆項(xiàng)目有很多相似之處。Tendermint的主要目標(biāo)是解決區(qū)塊鏈互操作性問題,它在這個(gè)市場(chǎng)上面臨著強(qiáng)烈的反對(duì)意見。Ark,ICON,Polkadot,AION和類似的項(xiàng)目都有相同的目標(biāo),所以誰會(huì)脫穎而出還有待觀察。

1.5 參考文檔

1.區(qū)塊鏈 PoS 共識(shí)——Tendermint
2.What is Tendermint? How does Tendermint consensus work?

總結(jié)

以上是生活随笔為你收集整理的什么是Tendermint?(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。