主頁 > 區塊鏈 > [SIGMOD 2021] SharPer: Sharding Permissioned Blockchains Over Network Clusters

[SIGMOD 2021] SharPer: Sharding Permissioned Blockchains Over Network Clusters

2021-07-28 17:44:43 區塊鏈

在這里插入圖片描述

1. 作者簡介

論文發表在SIGMOD 2021,第一作者Mohammad Javad Amiri來自賓夕法尼亞大學,第二作者和第三作者都來自加州大學圣塔芭芭拉分校(Divyakant Agrawal和Amr El Abbadi都是ACM/IEEE Fellow,資料管理方面大佬),

2. 背景介紹

可拓展性是區塊鏈的一個重要性能指標,是指隨著區塊鏈網路中節點數目增加,系統對交易的處理性能也隨之增長,分片技術是分布式資料庫中常用來提升性能的技術方案,例如Google的Spanner,目前,分片技術也被運用在區塊鏈來提升單鏈性能,Elastico,OmniLedger和Rapidchain用在公鏈的分片中,分片由節點隨機組合產生,以通過概率來保障所有惡意節點均勻的分配到不同分片中,聯盟鏈中的分片作業有Fabric,Cosmos,RSCoin,AHL,AHL是本文所對比的一個方法,其首先依靠可信硬體降低片內允許的節點數目下限,使惡意節點占比低于1/3,同時,片間共識需要依賴片以外的其他節點,共識的網路通信開銷大,單片處理跨片交易不支持多片并行,

當前分片作業對于片內安全性假設有兩種,預先定義錯誤節點數目或者概率性的錯誤假設,例如Spanner,基于真實世界中的物理情況約束,假設資料中心的大部分節點都是安全的(Paxos情況下惡意節點數目不會超過1/2,PBFT共識演算法下惡意節點資料不超過1/3),即一種確定性的片內安全保證,其他例子還有ResilientDB和Blockplane,本文提出的Sharper也是基于這種確定性的安全保證假設,節點部署在資料中心,云服務或者本地服務器,Elastico,OmniLedger和Rapidchain都旨在更加廣泛的對等網路中提供分片服務,通過隨機分配節點形成分片,獲得概率性的片內安全保障,

3. 貢獻點

文章作業致力于提高當前聯盟鏈在分片架構下的交易吞吐率,貢獻點如下:

  • 將區塊鏈節點和資料進行分片,支持并行處理多個跨片交易,
  • 支持片間共識(純CFT或BFT節點錯誤),解決了片間并發時候共識出現的交易沖突、死鎖、主節點故障問題,

4. Sharper 架構

假設前提:

  1. 網路中的所有節點存在于異步環境網路環境,(根據FLP定理,異步網路下只能保證一致性協議的安全性,若要同時滿足活性異步網路是不夠的,需要弱同步網路),

  2. 網路中的所有節點分成P個分片P={p1, p2,…, pN},每個分片維護區塊鏈的部分視圖資料D={d1, d2,…, dP},片中所有節點存盤一個視圖中的所有資料,如圖1所示,對于運行Paxos或者PBFT共識協議時,每個分片中節點數目都滿足2f+1或者3f+1安全條件,f為故障階段或拜占庭階段數目,并且同一個片中的節點是由地理上距離比較相近的一批節點組成,互相通信延遲較低,

  3. 網路中的訊息經過簽名認證,惡意節點無法鍛造誠實節點的訊息,
    圖1 Sharper分片架構示例
    Sharper架構示例如圖1所示,整條鏈被分成4個分片,t10,t11是片1的第一個和第二個執行的交易,它們都是片內交易,t12,22是片1和片2需要共同執行的跨片交易,并且都是片內的第三個執行的交易,跨片交易需要確定在相關片中執行的序號確保結果的正確性,對于那些所涉及的分片不存在交集的跨片交易,Shaper支持并行處理這些交易,例如交易t12,22和交易t32,42,

  4. 跨片共識
    區塊鏈中的共識機制負責讓所有節點對請求按照某個相同的處理順序達成共識,需協議要滿足以下四個性質:

    約同性( Agreement , 所有誠實節點對相同的請求達成commit意見,
    有效性( Validity ,好節點達成commit意見的值,必須是一個好節點的輸入值,
    一致性( Consistency ,所有好節點按照相同的順序commit相同的值,
    可終止性( Termination ,最終所有節點都會commit一個值,

    其中,前三個總結為協議安全性(safety),最后一個總結為活性(liveness),

對單個分片而言,讓片中所有節點對一筆交易保持一致的技術已經很成熟,然而對于跨片交易而言,它需要在多個排序實體的節點之間保持保持一致,本文分別研究了CFT和BFT網路節點錯誤環境下的跨片共識機制,值得一提的是,雖然現在區塊鏈中大家都在研究BFT共識下的問題,對于研究CFT下的跨片共識的重要性作者給予了解釋,認為在存在準入機制的聯盟鏈場景中,CFT共識可能就已經足夠了,例如有名的Hyperledger Fabric專案中也只支持CFT下的共識,

5. CFT 網路

5.1.1 片內 CFT 共識

對于只涉及到一個分片的交易只要走片內共識(Intra-shard consensus)就可以了,Sharper在CFT網路中的片內共識采用multi-paxos演算法,該演算法由Lamport 1998年提出,選擇一個穩定的節點長期作為主節點,協議相比原始paxos具有更低的延時,
圖2 multi-paxos
流程如下(因為網路中只有故障停節點,因此不需要對訊息進行簽名,只有主節點廣播commit訊息以及回復客戶端的時候需要簽名,用于其他節點和客戶端作為交易提交的證明):

  1. 客戶端向主節點發送一個交易請求,主節點分配一個訊息序號回傳給客戶端
  2. 主節點向所有從節點廣播此訊息并且帶上accept資訊
  3. 從節點收到主節點發來的訊息后回傳主節點accept資訊
  4. 主節點收齊f個accept訊息后(加上自己的一共f+1個),向所有從節點廣播commit訊息,回傳客戶端處理結果(交易哈希,commit資訊,簽名),
  5. 從節點收到主節點commit資訊后,將交易打包區塊,并帶上主節點簽名的commit請求提交給各自的節點驗簽、執行,( 論文假設交易在所有節點上都是確定性執行 , 最后所有節點狀態一定一致

5.1.2 跨片 CFT 共識
在這里插入圖片描述
在這里插入圖片描述
跨片共識演算法流程如下:

  1. 客戶端c向跨片交易所涉及的其中一個分片主節點π(pi)發送交易m=<REQUEST, OP, tc, c>δc,tc是交易時間戳,用于抵抗重放攻擊,op是交易操作內容,δc表示客戶端簽名,
  2. 主節點π(pi)給訊息m分配編號hi,并向交易所涉及分片的所有節點廣播propose訊息<PROPOSE, hi,d, m>,m是客戶端給主節點發送的交易,d是交易哈希,
  3. 分片的從節點接受到主節點π(pi)的訊息后,驗證序號hi和訊息內容,若當前節點在等待前一筆跨片交易m’的commit訊息(m和m’涉及相同分片或者有重合),為了保證片間commit順序一致,節點將交易m存入快取,等m’交易commit之后再處理m,否則,從節點直接向主節點π(pi)回傳accept訊息<ACCEPT, hi, hj, d, r>,其中hj表示片內一個從節點r給訊息m分配的訊息編號,
  4. 當主節點π(pi)收齊來自每個分片的f+1個ACCEPT訊息后,驗證hj、hi和d,收集所有分片的從節點分配的訊息編號(h1, h2, …, hk),隨后向所有涉及交易的分片廣播COMMIT訊息<COMMIT, [h1, h2, …, hk], d>δπ(pi),δπ(pi)表示主節點簽名,用于向區塊鏈證明區塊交易的正確性,主節點向客戶端回傳結果,如果客戶端沒收到回復,向所有相關分片節點廣播,如果分片節點判斷該請求已經被處理,則向客戶端回傳結果,否則,從節點將訊息轉發給主節點廣播,如果主節點不廣播訊息,判斷主已經故障,
  5. 分片的從節點接受到COMMIT訊息后確認編號hj之前的所有交易都已經COMMIT(即使之前沒有ACCEPT,因為之前可能宕機了沒收到),然后向區塊鏈提交交易,執行,改變狀態,

協議可能出現問題:

若某個時刻兩個分片(p1和p3)的主節點同時向某個分片(p2)中的節點廣播propose訊息,如下圖,由于網路延遲,p2中不同節點收到來自p1和p2的順序可能不同,導致不同節點賦予相同訊息的編號不同,造成p1或者p3收到的交易編號沖突,無法收齊f+1個編號一致的accept訊息,造成此輪無法commit,另外,這也會進一步造成死鎖情況,例如兩個分片p1和p2同時收到p3的跨片共識請求,p1收到訊息的順序是m、m’; ,p2收到訊息順序是m’、m,p1只有收到m的commit訊息后才會提交m’, p2只有收到m’的commit訊息后才會提交m,系統陷入死鎖,作者隨后通過非常Na?ve的方法解決這幾個問題,最后還處理了主節點故障問題,

BFT場景中演算法也非常類似,協議概要圖如下:
在這里插入圖片描述
同樣,作者也針對這個場景下會發生的編號沖突、死鎖、主節點故障進行了討論,解法非常相似,這里不再贅述,

6. 實驗

1測驗CFT和BFT環境中不同workload下的吞吐,發現在跨片事務較小的時候性能最好,
在這里插入圖片描述

在這里插入圖片描述
2分片中節點數目增加,系統整體吞吐變化,意料之中,主要是共識開銷,

在這里插入圖片描述

轉載請注明來自我的CSDN博客:https://blog.csdn.net/BOBOyspa/article/details/119119827

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/290500.html

標籤:區塊鏈

上一篇:從區塊鏈角度(去中心化金融)解讀虛擬貨幣CCF幣

下一篇:一文總結以太坊2.0,升級之后它會超越位元幣嗎?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more