• 現(xiàn)狀:只有極少數(shù)的區(qū)塊鏈交易會(huì)產(chǎn)生沖突• Conflux將大幅提高并發(fā)塊的的處理效率· 利用樂觀處理并發(fā)區(qū)塊的想法,采用有向無環(huán)圖結(jié)
• 現(xiàn)狀:只有極少數(shù)的區(qū)塊鏈交易會(huì)產(chǎn)生沖突
• Conflux將大幅提高并發(fā)塊的的處理效率
· 利用樂觀處理并發(fā)區(qū)塊的想法,采用有向無環(huán)圖結(jié)構(gòu)組織區(qū)塊
· 利用對(duì)主鏈的共識(shí)來幫助對(duì)有向無環(huán)圖中所有區(qū)塊的一致排序
• Conflux能將公鏈系統(tǒng)的吞吐率提升到每秒上千次交易,且能夠在分鐘級(jí)別的延時(shí)內(nèi)確認(rèn)交易
• Conflux將打破共識(shí)機(jī)制的性能瓶頸
Conflux的整體運(yùn)行架構(gòu)
1. 區(qū)塊鏈目前所面臨的問題
區(qū)塊鏈行業(yè)的問題之一(1/2)比特幣無并發(fā)處理能力
在比特幣生成區(qū)塊時(shí),礦工就要確定一個(gè)嚴(yán)格的交易順序:
區(qū)塊鏈行業(yè)的問題之一(2/2)比特幣無并發(fā)處理能力
區(qū)塊鏈交易僅極少產(chǎn)生沖突,那么如何提升交易處理的效率?
區(qū)塊鏈交易之間極少產(chǎn)生沖突的情況。沒有沖突的交易之間可以按任何順序排序;對(duì)于所有在并發(fā)的區(qū)塊中的交易,如果它們之間沒有沖突,為什么不都執(zhí)行呢?
在 Conflux 中,所有區(qū)塊構(gòu)成一個(gè)有向無環(huán)圖結(jié)構(gòu)
2. 有向無環(huán)圖的設(shè)計(jì)與解釋
如何在有向無環(huán)圖中確認(rèn)一個(gè)區(qū)塊的排序(1/2)
每個(gè)區(qū)塊有一個(gè)“父邊”,指向它的父親區(qū)塊;所有的區(qū)塊和它們的父邊構(gòu)成一棵樹
如何在有向無環(huán)圖中確認(rèn)一個(gè)區(qū)塊的排序(2/2)
這個(gè)引用邊主要是記錄和表達(dá)哪些區(qū)塊的生成早于當(dāng)前的區(qū)塊
如何將一條鏈對(duì)區(qū)塊的全序達(dá)成共識(shí) (1/2)
根據(jù)主鏈,通過一個(gè)確定性的規(guī)則,決定一個(gè)一致的區(qū)塊的全序
如何將一條鏈對(duì)區(qū)塊的全序達(dá)成共識(shí) (2/2)
有向無環(huán)圖中產(chǎn)生一個(gè)新區(qū)塊的規(guī)則
如何在有向無環(huán)圖中對(duì)區(qū)塊的全序達(dá)成共識(shí) (1/3)
全序達(dá)成共識(shí)的規(guī)則:
1. 在主鏈上的每一個(gè)區(qū)塊就確定了一個(gè)Epoch
2. 在分叉上的區(qū)塊屬于哪個(gè)Epoch,是由第一個(gè)產(chǎn)生在它之后的主鏈區(qū)塊所在的Epoch決定的
如何在有向無環(huán)圖中對(duì)區(qū)塊的全序達(dá)成共識(shí) (2/3)
全序達(dá)成共識(shí)的規(guī)則:
1. 首先按照Epoch的順序來給區(qū)塊排個(gè)序
2. 再按照拓?fù)渑判騺泶_定區(qū)塊的順序
3. 根據(jù)區(qū)塊頭哈希值來打破平局
如何在有向無環(huán)圖中對(duì)區(qū)塊的全序達(dá)成共識(shí) (3/3)
3. 為什么Conflux可以防止雙花攻擊
為什么Conflux的設(shè)計(jì)能夠成功地防止雙花攻擊?
聲明1:除非攻擊者能夠改變主鏈,否則無法完成逆轉(zhuǎn)交易(1/2)
• 若攻擊者想成功對(duì)交易2(在區(qū)塊2中)發(fā)起雙花攻擊,它需要將創(chuàng)世區(qū)塊作為父親,并且寄希望于各個(gè)節(jié)點(diǎn)對(duì)排序達(dá)成的共識(shí)中,惡意的區(qū)塊在區(qū)塊 B 前面。
聲明1:除非攻擊者能夠改變主鏈,否則無法完成逆轉(zhuǎn)交易(2/2)
• 然而,只要主鏈未發(fā)生變化,則不良/惡意區(qū)塊一定被列于較后的epoch;所以攻擊者無法對(duì)較早的epoch中的交易完成雙花攻擊
聲明2:若攻擊者未超過50%的算力,則無法改變主鏈
• 改變主鏈中老區(qū)塊的理論分析
假定要轉(zhuǎn)換主鏈上的區(qū)塊A
那么所有攻擊者產(chǎn)生的塊都會(huì)在A’的子樹下面,然而所有誠實(shí)的節(jié)點(diǎn)所產(chǎn)生的塊都會(huì)在A的子樹;攻擊者則需要超過50%的算力才能讓A’的子樹超過A的子樹。
為什么需要50%的算力來改變主鏈
有向環(huán)形圖的確認(rèn)機(jī)制
Conflux確認(rèn)機(jī)制的設(shè)計(jì)基于大量且精準(zhǔn)的安全性分析
• 用戶假設(shè):
攻擊者的算力 -- q
交易被逆轉(zhuǎn)所承受的風(fēng)險(xiǎn)率 -- r
• Conflux首先找到這個(gè)交易所屬的Epoch
• 然后找到和這個(gè)Epoch相應(yīng)的主鏈區(qū)塊
• 最后再檢查這個(gè)主鏈區(qū)塊被逆轉(zhuǎn)的概率是否小于用戶所能承受的風(fēng)險(xiǎn)
4.Conflux的研究評(píng)估
測(cè)試Conflux的實(shí)驗(yàn)環(huán)境
• 我們搭建了Conflux的一個(gè)原型系統(tǒng),并在Amazom EC2上運(yùn)行1萬個(gè)Conflux節(jié)點(diǎn)來做實(shí)驗(yàn)
• 為了模擬公網(wǎng)上真實(shí)網(wǎng)絡(luò)環(huán)境,我們限制每個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬是20Mbps
• 實(shí)驗(yàn)中我們調(diào)整不同的區(qū)塊大小和出塊率:
區(qū)塊大小范圍: 1MB ~ 8MB
出塊率速度范圍: 5s ~ 80s
• 對(duì)實(shí)驗(yàn)已達(dá)成的結(jié)果進(jìn)行測(cè)算,并確認(rèn)遞延時(shí)間
• 與其他協(xié)議的實(shí)驗(yàn)表現(xiàn)進(jìn)行對(duì)比,包括比特幣、Ghost協(xié)議
Conflux的實(shí)驗(yàn)成果 – 現(xiàn)階段成果
• Conflux 可達(dá) 2.88G/小時(shí) 處理 每5秒產(chǎn)生4MB大小區(qū)塊的內(nèi)部環(huán)境下,在每5秒產(chǎn)生4MB大小區(qū)塊的實(shí)驗(yàn)參數(shù)下,可以每小時(shí)處理 2.88G 的交易數(shù)據(jù)量~3200 TPS
• 在一致環(huán)境下,效率為Algorand 的3.7倍
• 效率為比特幣/GHOST的12.5倍
Conflux的實(shí)驗(yàn)成果 – 區(qū)塊的使用率
• 更高的出塊速度和更大的區(qū)塊大小 à在比特幣/GHOST中有效區(qū)塊的比例更低
• 在處理4MB+5s的設(shè)定下,比特幣僅有 8% 的區(qū)塊被保留,其他區(qū)塊作為孤塊被丟棄
• 相對(duì)而言,Conflux中的所有區(qū)塊都能出塊
可信交易的確認(rèn)時(shí)間(1/2)
• 高效出塊
- 區(qū)塊之間會(huì)快速建立聯(lián)系
- 快速及時(shí)的確認(rèn)
• 在每5秒產(chǎn)生4MB大小的區(qū)塊的實(shí)驗(yàn)參數(shù)下,確認(rèn)時(shí)間平均約 10 分鐘
• 比特幣無法在高出塊率/大區(qū)塊下保證安全
可信交易的確認(rèn)時(shí)間(2/2)
• 假設(shè)攻擊者算力增加,則用戶需要等待確認(rèn)的時(shí)間會(huì)更長(zhǎng)
• 用戶等待確認(rèn)時(shí)間越長(zhǎng),則交易被逆轉(zhuǎn)的幾率會(huì)呈指數(shù)下降
Conflux帶寬的延展性
• Conflux在帶寬為20Mbps時(shí)無法處理每2.5秒4MB的區(qū)塊
• 而網(wǎng)絡(luò)帶寬為整個(gè)系統(tǒng)吞吐率的瓶頸
• 如果將網(wǎng)絡(luò)帶寬假設(shè)提高到——40Mbps
• 10000 個(gè) Conflux 節(jié)點(diǎn)在 40Mbps 的帶寬下,可以成功對(duì)每2.5秒4MB的實(shí)驗(yàn)設(shè)定下達(dá)成共識(shí)
· 達(dá)到5.76GM/小時(shí)的吞吐
· 最高達(dá)6400筆交易每秒 (比特幣的交易規(guī)模)
• 在6.3分鐘的延遲時(shí)間內(nèi)確認(rèn)交易
在更多全節(jié)點(diǎn)情況下的延展性 (4MB+5s)
• Conflux 能擴(kuò)展至20,000個(gè)全節(jié)點(diǎn)
• 全節(jié)點(diǎn)的數(shù)量成倍增加時(shí),網(wǎng)絡(luò)傳播延遲時(shí)間 d 將呈線性增長(zhǎng)(考拉)
相關(guān)研究
關(guān)鍵詞: Conflux 無環(huán)圖結(jié)構(gòu) 交易