ZILLIQA白皮書介紹

目前現(xiàn)有的加密貨幣和智能合約平臺或多或少都有擴展性的問題,每秒能夠處理的交易數(shù)量是有限的域醇,一般少于每秒20次谍椅。
隨著使用公共加密貨幣和智能合約平臺的應用和用戶數(shù)量的增長勉盅,需求用于每秒處理數(shù)百和數(shù)千次數(shù)量級的高交易速率正在增加。
ZILLIQA 就是問題的解決方案牺氨。它是一種旨在擴大交易速度的新的區(qū)塊鏈平臺狡耻,隨著其的礦工人數(shù)的增加,其交易速度還會上升波闹。在以太坊現(xiàn)有的3萬名礦工的網(wǎng)絡規(guī)模下酝豪,ZILLIQA 預計會處理以太坊交易速率的大約一千倍。

ZILLIQA白皮書一共分6層來介紹:

  • 密碼層
  • 數(shù)據(jù)層
  • 網(wǎng)絡層
  • 共識層
  • 智能合約層
  • 激勵層

在ZILLIQA中一共有兩種角色:用戶和礦工精堕。 ZILLIQA的采礦網(wǎng)絡被進一步分成幾個小網(wǎng)絡孵淘,被稱為分片。一名礦工被一組叫做DS節(jié)點分配給一個分片歹篓。這組DS節(jié)點也被稱為DS委員會瘫证。每個分片和DS委員會都有一個領導者。領導者在ZILLIQA的共識協(xié)議和網(wǎng)絡的整體運作中發(fā)揮重要作用庄撮。

1.密碼層

在白皮書中背捌,我們廣泛使用SHA3哈希函數(shù)來展示我們的設計。

1.1 Schnorr 簽名

簡化的多重簽名是如何工作的呢洞斯?

在介紹細節(jié)之前毡庆,讓我們先了解一下背景:在多重簽名方案中坑赡,我們有n個簽名者,每個簽名者都有一對密鑰(公鑰和私鑰)么抗、一個驗證簽名的驗證者和一個匯總各方“簽名”的聚合者(aggregator)毅否。為了便于理解,我們現(xiàn)在簡單假設所有節(jié)點都是誠實的蝇刀,并且會配合簽署消息螟加。

驗證者在檢驗匯總后的簽名時,會檢查所有簽名者是否都正確地簽了名吞琐。僅當驗證者確認所有簽名者都正確地簽了名之后捆探,驗證才算通過菌羽,反之則驗證失敗滑肉。

接下來讓我們深入細節(jié)。

多重簽名方案基本上分兩步進行和措。在協(xié)議的第一步中卒蘸,每個節(jié)點將其公鑰發(fā)送給聚合者雌隅,聚合者根據(jù)公鑰的數(shù)學形式,通過簡單的加法或乘法將之聚合為一個單一的公鑰缸沃。

例如恰起,聚合公鑰= 公鑰_1 + 公鑰_2 + …+公鑰_n。

然后聚合者將聚合公鑰轉(zhuǎn)發(fā)給驗證者從而可以使后者驗證聚合簽名趾牧,與此同時聚合者也將聚合公鑰發(fā)送給每個簽名者讓所有人簽名检盼。

在第二步中,聚合者啟動與每個簽名者的交互協(xié)議(interactive protocol)翘单。這個交互協(xié)議總分包含三個階段:

1吨枉、提交階段(Commit phase):此階段每個節(jié)點生成一些隨機內(nèi)容并提交給交互協(xié)議。加密提交(cryptographic commitment)可以通過這種類比的方式理解:每個節(jié)點都秘密地擲骰子哄芜,然后將結(jié)果寫在一張紙上并將其放在一個盒子中鎖好貌亭,最后發(fā)送給聚合者。聚合者無權(quán)打開盒子认臊。

2圃庭、挑戰(zhàn)階段(Challenge phase):此階段聚合者首先使用加法或乘法將所有的提交聚合為一個聚合提交,然后使用它以及聚合公鑰失晴、消息生成一個挑戰(zhàn)剧腻,再將挑戰(zhàn)發(fā)送到所有節(jié)點。之后挑戰(zhàn)可用于確認所有節(jié)點都知道公鑰對應的私鑰涂屁。這與常規(guī)數(shù)字簽名的工作方式類似书在,即由簽名證明簽名人確實知道私鑰。

3拆又、回應階段(Response phase):所有節(jié)點為了應對挑戰(zhàn)會向挑戰(zhàn)發(fā)送私鑰進行回應儒旬,之后聚合者將聚合所有的回應栏账。因此回應可被視為簽名者知道其公鑰對應的私鑰的證據(jù)。

因此栈源,最后的聚合簽名實際上是挑戰(zhàn)和聚合回應的信息對发笔,并能驗證第一步生成的聚合公鑰。

值得注意的是凉翻,聚合簽名的大小不取決于簽名者的數(shù)量,它是固定的捻激。

當驗證者檢查聚合簽名時制轰,它檢查的不是每個單獨簽名者是否都正確地遵守協(xié)議,而是檢查所有簽名者作為一個整體是否正確地遵守協(xié)議并知道私鑰胞谭。因此垃杖,驗證者做出的決定是全有或全無(all-or-nothing)。

1.2 工作證明

ZILLIQA的工作證明使用了以太坊1.0的Pow算法-Ethash.
該算法所采用的一般流程如下所示:

  1. 存在一個種子, 可以通過塊高度直到該點來計算每個塊丈屹。種子每隔30000塊更新一次调俘,稱為1個epoch。下一輪的種子由前一輪種子通過SHA3-256計算得來旺垒。
  2. 從種子, 你可以計算一個 16 MB 的偽隨機緩存, 用于輕客戶端存儲緩存彩库。
  3. 從緩存中, 我們可以生成一個 1 GB 的數(shù)據(jù)集, 該屬性表示數(shù)據(jù)集中的每個項只依賴于緩存中的少量項。完整的客戶和礦工存儲這個數(shù)據(jù)集先蒋。數(shù)據(jù)集會隨時間線性增長骇钦。
  4. 挖礦涉及抓取數(shù)據(jù)集的隨機切片并將它們一起哈希【貉可以通過使用緩存來重新生成所需的數(shù)據(jù)集的特定部分, 從而低內(nèi)存的機器可以進行驗證, 因為只需存儲緩存即可驗證眯搭。

2. 數(shù)據(jù)層

廣義地說,數(shù)據(jù)層定義構(gòu)成ZILLIQA全局狀態(tài)的數(shù)據(jù)业岁。

2.1 賬戶鳞仙、地址、狀態(tài)

ZILLIQA是基于賬戶的系統(tǒng)笔时,一共有兩種賬戶類型:普通賬戶和和合約賬戶棍好。

每個帳戶由不同類型的地址根據(jù)其類型來標識。普通帳戶的地址是從帳戶的私鑰中導出的糊闽。對于給定的私鑰SK梳玫,地址A是一個160位的值,計算為:
Anormal = LSB160 (SHA3-256(PubKey(sk))),
合同帳戶的地址是從其創(chuàng)建者的地址和創(chuàng)建者帳戶發(fā)送了多少交易右犹,也叫做account nonce(下面描述)計算的:
Acontract = LSB160 (SHA3-256(address||nonce)),
其中address是創(chuàng)建者的賬戶地址提澎,nonce是創(chuàng)建者的nonce值。

每個賬戶包括如下的狀態(tài)值:

  • account nonce: 一個對從普通賬戶發(fā)送交易數(shù)量計數(shù)的計數(shù)器念链。對于合約賬戶盼忌,對從該賬戶創(chuàng)建的合約數(shù)量計數(shù)积糯。
  • balance: 非負值,保存tokens數(shù)量谦纱。
  • code hash: 存儲合約代碼的SHA3-256摘要看成,對于普通賬戶為空字符串摘要。
  • storage root: 賬戶存儲的SHA3-256摘要跨嘉。

2.2 交易

一筆交易包括以下部分:

  • version: 當前版本號川慌。
  • nonce: 計數(shù)器,等于交易的發(fā)送方發(fā)送的交易數(shù)。
  • to: 目標賬戶地址
  • amount: 交易數(shù)量
  • gas price: gas價格
  • gas limit: 完成交易所需的最大gas數(shù)
  • code: 可擴展大小祠乃,用于指定合約代碼,只有當交易創(chuàng)造一個新的合約賬戶時才使用梦重。
  • data: 可擴展大小,用于指定交易所需的數(shù)據(jù),只有當交易調(diào)用合約時才使用亮瓷。
  • pubkey: 公鑰
  • signature: 對整個數(shù)據(jù)的Schnorr 簽名

每個交易都有一個唯一的ID,是以上除了signature部分外的SHA-256摘要

2.3 區(qū)塊

ZILLIQA定義了兩種類型的區(qū)塊(因此存在兩條區(qū)塊鏈)琴拧,交易塊(TX-Block)和目錄服務塊(DS-Block),TX-Block包含用戶發(fā)送的交易,DS-Block包含參與共識協(xié)議的礦工的元數(shù)據(jù)嘱支。

2.3.1 DS Blocks

DS Blocks包含兩部分:頭部和簽名蚓胸。
其中頭部結(jié)構(gòu)如下:

  • version: 當前版本號
  • previous hash:父塊頭部的哈希值
  • pubkey: 挖到該區(qū)塊的礦工的公鑰
  • difficulty: 挖礦難度
  • number: 祖先區(qū)塊的數(shù)量
  • timestamp: 構(gòu)建本區(qū)塊的時間戳
  • mixHash: 由nonce計算的摘要,用于檢測Dos攻擊
  • nonce: Pow的解

而簽名包括以下兩部分:

  • signature: 由DS nodes簽署的對DS block頭部的多重簽名除师。
  • bitmap: 記錄了哪些DS nodes參與了多重簽名沛膳,由一個向量B表示,B[i]=1表示第i個DS node參與了簽名。

2.3.2 TX Blocks

TX-Block存儲由DS塊中的節(jié)點約定的交易的信息汛聚。每個DS-Block都鏈接到多個TX-Block于置。一個TX-Block包含頭部、數(shù)據(jù)贞岭、簽名三部分八毯。
頭部結(jié)構(gòu)如下:

  • type: 有兩種類型,micro block(0x00)和final block(0x01),具體在網(wǎng)絡層會有介紹。
  • version: 版本號
  • previous hash:父塊頭部的哈希值
  • gas limit: 當前每個區(qū)塊的gas消耗限制
  • gas used: 本區(qū)塊中所有交易消耗的gas數(shù)量
  • number: 祖先區(qū)塊的數(shù)量
  • timestamp: 構(gòu)建本區(qū)塊的時間戳
  • state root: 代表在所有交易執(zhí)行之后的全局狀態(tài)的摘要
  • transaction root: 塊中所有交易的默克爾樹的根的摘要
  • tx hashes: 塊中每個交易的哈希
  • pubkey: 提出這個區(qū)塊的組長的公鑰
  • pubkey micro blocks: 提出本塊中所有交易的組長的公鑰集合瞄桨,只有當區(qū)塊為final block時使用话速。
  • parent block hash:上一個final block頭部的哈希
  • parent ds hash: 父DS-Block的頭部哈希
  • parent ds block number: 父DS-Block的數(shù)

數(shù)據(jù)部分結(jié)構(gòu):

  • tx count: 塊中交易的數(shù)量
  • tx list: 交易列表

簽名部分結(jié)構(gòu):

  • signature: 一系列節(jié)點對TX-Block頭部的多重簽名,根據(jù)是final block還是micro block決定哪些節(jié)點簽名芯侥。
  • bitmap: 記錄了哪些節(jié)點參與了多重簽名泊交,由一個向量B表示,B[i]=1表示第i個節(jié)點參與了簽名。

以上的數(shù)據(jù)結(jié)構(gòu)可以結(jié)合ZILLIQA測試網(wǎng)絡查看

3. 網(wǎng)絡層

ZILLIQA最主要的思想就是分片柱查,即將挖礦網(wǎng)絡劃分成許多小的碎片廓俭,從而實現(xiàn)并行化處理,從而提高交易速率唉工。本節(jié)我們提出了網(wǎng)絡分片和交易分片的思想研乒。

3.1 網(wǎng)絡分片

將網(wǎng)絡分片主要分為兩步:首先,選舉一部分特定的節(jié)點作為目錄服務委員會(DS委員會),然后將網(wǎng)絡分片并將剩余節(jié)點指派到不同的分片中淋硝。

3.1.1 目錄服務委員會

為了促進網(wǎng)絡分片雹熬,我們首先選舉一系列的節(jié)點作為宽菜,稱為目錄服務節(jié)點。這些節(jié)點組成目錄服務委員會竿报。這個選舉是基于工作證明的算法Pow1,算法的介紹如下:


Pow1算法

每個比其他節(jié)點先及計算出正確nonce的節(jié)點提出一個新的DS Block的頭部铅乡。隨后將頭部多播至其他目錄服務委員會的節(jié)點。目錄服務委員會根據(jù)提出的頭部運行共識并產(chǎn)生簽名部分烈菌。一旦2f個節(jié)點對頭部簽名阵幸,則將其提交至 DS blockchain。DS節(jié)點的數(shù)量為預先定義的大小n0芽世,前n0個成功挖出DS-block的節(jié)點構(gòu)成目錄服務委員會侨嘀。
兩個連續(xù)DS-block之間的平均開采時間被稱為DS-epoch,這樣設定是為了最小化兩個競爭塊的可能性。在每個DS-epoch開始時捂襟,一個新的DS節(jié)點將加入,而最老的節(jié)點將會退出欢峰。這樣保證了委員會的節(jié)點數(shù)量維持在n0.最新加入的節(jié)點將成為領導者葬荷,來引導本次的共識協(xié)議。

3.1.2 解決爭議

當多個節(jié)點幾乎同時挖礦成功時纽帖,領導者會選擇nonce值最大的頭部作為新的頭部并構(gòu)建DS-Block.

3.1.3 構(gòu)建分片

在委員會被選舉出來之后將開始網(wǎng)絡分片宠漩。一個節(jié)點為了想?yún)⑴c底層共識協(xié)議,它必須執(zhí)行Pow2.算法如下:


PoW2

計算出的正確的nonce將被廣播至委員會懊直,當委員會的領導人接收到足夠多的nonce時扒吁,他將發(fā)起一個同意這些nonce解的共識協(xié)議。當超過2/3的DS節(jié)點對其簽名后生效室囊。
假設我們需要l個分片雕崩,每個分片有n0個節(jié)點。我們會對nonce的值進行排序融撞,前n0個節(jié)點將被分配至第一個分片盼铁,之后的n0個節(jié)點將被分配至第二個分片,以此類推尝偎。每個分片中nonce最大的節(jié)點將成為該分片的領導饶火。如下圖所示:


網(wǎng)絡分片

3.2 新節(jié)點加入

當一個新節(jié)點加入網(wǎng)絡時,他可以嘗試計算PoW1以加入委員會或者計算PoW2以加入一個分片致扯。

3.3 交易分片

本節(jié)我們將介紹一個特定的交易如何被分配至一個分片以及交易將如何運行肤寝。我們用 A→n B表示一筆從A向B轉(zhuǎn)n個ZIL的交易。

3.3.1 交易分配

對于一筆交易抖僵,假設我們有l(wèi)個分片鲤看,其編號從0到l-1。這筆交易的分配取決于發(fā)送者地址的最右邊[log2 l]+1位耍群,發(fā)送者的地址為160位整數(shù)刨摩,則l滿足:

實際中寺晌,l的值將小于100.
例如:假設l的值為80,則選擇其最右6+1=7位澡刹,假設A的最右地址7位為0011001=25呻征,則將其分配至第25個分片。(這里有個問題罢浇,假設A的地址最右7位為1100001=81陆赋,此時超出l的總值,白皮書好像沒有詳細解釋這種情況嚷闭,猜測此時會分配給81-79=2個分片攒岛。可能需要查看源代碼)胞锰。
當交易被分配至指定的分片后灾锯,這筆交易會廣播至分片中的其他節(jié)點。當分片的領導者接收到交易時嗅榕,領導者將會把這筆交易放入一個TX-Block并運行共識協(xié)議顺饮。

3.3.2交易處理

由分片提出的區(qū)塊稱為micro block,由委員會提出的區(qū)塊稱為final block.一個micro block包含分片中超過2/3節(jié)點的多重簽名,分片的領導者會構(gòu)建一個位圖記錄那些節(jié)點對區(qū)塊頭進行了簽名凌那。當一個分片對一個TX-Block達成共識后兼雄,領導者將會把區(qū)塊頭部和簽名多播給DS節(jié)點。DS節(jié)點收到后會在委員會內(nèi)部廣播帽蝶,此時委員會領導者可以收到區(qū)塊赦肋,區(qū)塊的數(shù)據(jù)部分可以被異步送達至這些節(jié)點。

委員會將其他分片發(fā)送的區(qū)塊收集起來励稳,并在他們自己的另一輪共識協(xié)議中達成關于final block的協(xié)議佃乘。一個final block包含委員會超過2/3節(jié)點的多重簽名。委員會領導者同樣會構(gòu)建一個位圖記錄哪些節(jié)點參與了簽名驹尼。隨后恕稠,final block的頭部和簽名會多播給各個分片的節(jié)點。

在每個分片中扶欣,采取以下步驟來處理final block:

  1. 分片中的每個節(jié)點使用DS節(jié)點的公鑰驗證多重簽名鹅巍。如果簽名對位圖所表示的超過2/3的公鑰比對有效,則節(jié)點執(zhí)行下一步檢查料祠。
  2. 對于包含在final block中的每個交易哈希骆捧,節(jié)點檢查其對應的交易內(nèi)容是否可用。如果對應的交易由節(jié)點所屬的分片提出髓绽,則交易數(shù)據(jù)的哈希與final block頭部中包含的哈希進行比較敛苇。如果交易是由另一個分片提出的,則交易數(shù)據(jù)在分片之間異步共享。
  3. 一旦交易數(shù)據(jù)可用枫攀,final block的data部分將重建括饶,并將TX-Block加入本地的交易鏈上,同時更新賬戶狀態(tài)和全局狀態(tài)来涨。
  4. 如果交易內(nèi)容不可用图焰,則該節(jié)點在其本地視圖中暫時使該事務的發(fā)送帳戶無效,從而該帳戶的任何其他未處理的交易將被拒絕蹦掐,直到本地交易內(nèi)容能夠與全局狀態(tài)同步技羔。此類被拒絕的交易將必須由發(fā)送節(jié)點進行重發(fā)。


    交易分配

4. 共識層

如以上提到的卧抗,每個分片和DS委員會需要分別在微塊和終塊上跑一個共識協(xié)議藤滥。在這一塊,我們將展示在每一個分片和DS委員會中定義的共識協(xié)議的共識層社裆。在討論中拙绊,我們將分片和DS委員會代指為共識組。

4.1 實用拜占庭容錯

ZILLIQA共識協(xié)議的核心依賴于實用拜占庭容錯(PBFT)協(xié)議泳秀。然而我們通過在PBFT中使用EC-Schnorr多簽名來提升效率标沪。EC-Schnorr多重簽名的使用將正常情況下的通信延遲從O(n*n)降低為O(n),并將簽名大小從O(n)減小到O(1)晶默,其中n是共識組的大小。 在這個部分航攒,我們提供PBFT的概述磺陡。

在PBFT中,共識組內(nèi)的所有節(jié)點都按順序排列漠畜,它有一個主節(jié)點(或領導者)币他,其他節(jié)點稱為備份節(jié)點。 每輪PBFT都有三個階段憔狞,如下所述:

  • 預準備階段: 在這個階段蝴悉,領導者宣布該小組將應該達成一致共識的下一個記錄(在我們的案例中是TX-Block)
  • 準備階段:在接收到預先準備消息后,每個節(jié)點驗證其正確性并將準備消息多播給所有其他節(jié)點
  • 提交階段:在收到超過2/3n準備消息時瘾敢,節(jié)點向組播組發(fā)送提交消息拍冠。最后,節(jié)點等待超過2/3n的提交消息簇抵,以確保有足夠數(shù)量的節(jié)點做出相同的決定庆杜。 因此,所有誠實的節(jié)點都接受相同的有效記錄碟摆。

PBFT依靠正確的領導者開始每個階段晃财,并在足夠多節(jié)點存在時繼續(xù)進行。 如果領導是拜占庭典蜕,它可能會拖延整個共識協(xié)議断盛。 為了應對這一挑戰(zhàn)罗洗,PBFT提供了視圖更改協(xié)議來使用另一個取代拜占庭領袖。 如果節(jié)點在有限的時間內(nèi)沒有看到任何進展钢猛,他們可以獨立宣布改變領導者的愿望伙菜。 如果超過2/3*n個節(jié)點的法定人數(shù)決定領導者有問題,那么在已知計劃中的下一個領導者就會接管厢洞。

由于在準備/提交階段每個節(jié)點的多播仇让,正常情況下PBFT的通信復雜度為O(n*n)

4.2 提高效率

經(jīng)典的PBFT使用消息認證碼(MAC)進行節(jié)點之間的認證通信。 由于MAC需要在每兩個節(jié)點之間共享密鑰躺翻,所以一個共識組中的節(jié)點可以在同一個記錄上達成一致丧叽,其中每個節(jié)點的通信復雜度為O(n*n)。 由于二次復雜性公你,當委員會有20多個節(jié)點時踊淳,PBFT變得不切實際。

為了提高效率陕靠,我們使用來源于ByzCoin的想法:

  • 我們用數(shù)字簽名替換MAC來有效地減少O(n)的通信開銷迂尝。
  • 與此同時,為了讓其他節(jié)點能夠驗證協(xié)議剪芥,一種典型的方法是從誠實的多數(shù)收集簽名并將它們附加到協(xié)議中垄开,從而導致協(xié)商規(guī)模與協(xié)商組的大小成線性關系。 為了改善這一點税肪,我們使用EC-Schnorr多重簽名來將幾個簽名聚合成O(1) - 大小多重簽名

然而溉躲,我們不能直接在PBFT設置中使用經(jīng)典的EC-Schnorr多重簽名方案。 這是因為在古典設置中益兄,所有簽名者都同意簽署給定的消息锻梳,并且簽名只有在所有簽名者都簽名后才有效。 在PBFT設置中净捅,我們只需要在共識組中超過2/3*n個節(jié)點簽署消息疑枯。 所需的主要修改之一是為參與簽名過程的簽名者維護位圖B. 如果第i個節(jié)點參與該過程,則B [i] = 1蛔六,否則為0荆永。位圖由領導者構(gòu)建。 位圖可以被任何驗證者用來驗證簽名国章。 最終的協(xié)議留在附錄B中屁魏。

4.3 Zilliqa共識

在ZILLIQA中,我們使用PBFT作為基礎共識協(xié)議捉腥,并采用兩輪EC-Schnorr多重簽名來替換PBFT中的準備階段和提交階段氓拼。 下面將解釋對PBFT階段的不同修改。

  • 預準備階段: 與標準PBFT中一樣,領導者將TX-Block或聲明(由領導者簽名)分發(fā)給共識組中的所有節(jié)點桃漾。
  • 準備階段:所有誠實的節(jié)點檢查TX塊的有效性坏匪,并且領導者收集來自超過2/3*n個節(jié)點的響應。 這保證領導者提出的陳述是安全的并且與以前的所有歷史一致撬统。 簽名是使用EC-Schnorr多重簽名生成的适滓。 領導者還構(gòu)建簽署TX塊的節(jié)點的位圖
  • 提交階段:為了確保超過2/3n的節(jié)點知道超過2/3n節(jié)點驗證了TX-Block的事實。我們進行第二輪EC-Schnorr多重簽名恋追。 正在簽署的聲明是上一輪生成的多重簽名凭迹。

在三個階段結(jié)束時,就領導者提出的TX-Block將達成共識苦囱。

4.4 領導者改變

在我們的共識協(xié)議中嗅绸,如果領導者是誠實的,它可以不斷的推動共識委員會中的節(jié)點就新的交易達成協(xié)議撕彤。 但是鱼鸠,如果領導是拜占庭,它可以有意地延遲或丟棄來自誠實節(jié)點的消息羹铅,并減慢協(xié)議蚀狰。 為了懲罰這些惡意領導者,我們的協(xié)議會定期更改每個分片的領導和DS委員會职员。 這可以防止拜占庭領袖在無限期的時間內(nèi)拖延共識協(xié)議麻蹋。 由于所有節(jié)點都是有序的,下一個領導者將以循環(huán)方式選擇焊切。

事實上扮授,每一個micro block后分片的領導者都會改變,并且在每個final block之后DS委員會的領導者也會更改蛛蒙。 讓我們假設共識組的大小為n糙箍,那么在一個DS-epoch時期內(nèi)渤愁,我們允許的final block的最大值為n牵祟,每個final block最多在1個分片聚合1個micro block。

5. 智能合約層

ZILLIQA 中的智能合同語言遵循數(shù)據(jù)流程編程風格抖格,非常適合運行大規(guī)模并行計算诺苹。包括簡單的計算,比如搜索雹拄,排序和線性代數(shù)計算等收奔;以及更復雜的運算處理,比如訓練神經(jīng)網(wǎng)絡滓玖,數(shù)據(jù)挖掘坪哄,財務建模,科學計算等等。

6. 激勵層

ZILLIQA的代幣被稱為Zillings或ZIL翩肌。 Zillings為用戶提供平臺使用權(quán)模暗,用于支付交易處理或運行智能合同。任何金額念祭,價值兑宇,余額或付款的功能都使用ZIL作為單位來計算。代幣供應量為210億個ZIL粱坤。

每個產(chǎn)生的區(qū)塊都帶有一個區(qū)塊獎勵隶糕,可以產(chǎn)生新的代幣。區(qū)塊獎勵將隨著時間的推移而在10年內(nèi)遞減站玄。挖礦的產(chǎn)量是預計在前四年挖掘大約80%的代幣枚驻,在之后六年內(nèi)挖掘其余的20%。代幣的產(chǎn)生將是“平滑”的蜒什,因為在一定數(shù)量的區(qū)塊之后测秸,區(qū)塊獎勵不會大幅減少。區(qū)塊獎勵的平滑減少意味著網(wǎng)絡哈希率可以隨著時間的推移逐漸減小灾常,從而保持穩(wěn)定霎冯。

十年之后,預計在網(wǎng)絡中的節(jié)點數(shù)量和執(zhí)行交易的用戶方面已經(jīng)達到了相當大的規(guī)模钞瀑。屆時沈撞,市場的交易費率會穩(wěn)定下來,足夠維持網(wǎng)絡的運行雕什,而不需要新的代幣進入系統(tǒng)作為回報缠俺,也就是說沒有增發(fā)。

7. 以太坊分片

V神近期在介紹“Ethereum2.0 Roadmap”中提到用分片技術解決擴展性問題贷岸,他這樣描述分片“籠統(tǒng)簡單地來說壹士,你可以把分片看成是,設置一個區(qū)塊鏈偿警,在其中有一百個各自不同的宇宙躏救,每一個宇宙都是一個獨立的賬戶空間。

所以你可以在某個宇宙中擁有一個賬戶螟蒸,也可以在數(shù)個宇宙中持有一個合約盒使,當然,你還可以在數(shù)個宇宙間發(fā)起一筆交易七嫌,而這筆交易僅僅會對涉及到的這幾個宇宙產(chǎn)生影響少办。”

這句話看上去似乎有些難于理解诵原,請看下圖:


以太坊分片

從圖中我們可以看出英妓,以太坊2.0將以太網(wǎng)絡分為兩層挽放,上層為現(xiàn)有的以太坊(也叫主鏈),基本保持不變蔓纠;下層為各個分片骂维,他們相互獨立,擁有不同的賬戶空間贺纲。

各個分片延生屬于自己的鏈航闺,并將最新區(qū)塊頭發(fā)給主鏈。主鏈收集各個分片的區(qū)塊頭猴誊,然后生成主鏈區(qū)塊潦刃。值得注意的是,在主鏈上只保存各個分片的區(qū)塊頭懈叹,具體交易并不在主鏈上保存乖杠。

從以上特征我們可以看出,以太坊2.0通過引入多個獨立分片澄成,可以很大程度上分擔主鏈的壓力胧洒。一方面,多個分片可以并行處理交易墨状,提升整個系統(tǒng)的吞吐量卫漫;

另一方面,分片節(jié)點只保存與自己相關的歷史狀態(tài)肾砂,主鏈節(jié)點也不用包含分片的具體交易信息列赎,從而可以大大降低節(jié)點的存儲壓力。

也許上面的講解還不夠清晰镐确,舉個例子:將以太坊主鏈比如父親包吝,分片比作已經(jīng)分家的三個親兄弟,老大賣豬肉源葫,老二賣電腦诗越,老三賣衣服,他們都干著不同的事情息堂,各自有各自的賬本嚷狞,但是每隔一段時間都需要向父親進行匯報。而父親只記錄兒子報給他的摘要信息储矩,具體每一筆具體交易他不用保存感耙。

綜述所述:以太坊2.0通過引入相互獨立的分片褂乍,提升了系統(tǒng)的吞吐能力持隧,也降低了節(jié)點的存儲壓力,并且在需要的時候逃片,增加分片具有相當?shù)撵`活性屡拨,比如父親又生了一個兒子只酥,這個兒子去賣水果。

以太坊和Zilliqa對比

項目 以太坊2.0 Zilliqa
存儲擴展性問題 解決 沒解決
吞吐量擴展性問題 整體提升呀狼,主鏈沒提升 主鏈提升
地址空間 每個分片一個獨立地址空間 全網(wǎng)一個地址空間
分片共識 PoS PBFT
進度 3-5年內(nèi)實現(xiàn) 測試網(wǎng)絡已發(fā)布
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裂允,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哥艇,更是在濱河造成了極大的恐慌绝编,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件貌踏,死亡現(xiàn)場離奇詭異十饥,居然都是意外死亡,警方通過查閱死者的電腦和手機祖乳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門逗堵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人眷昆,你說我怎么就攤上這事蜒秤。” “怎么了亚斋?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵作媚,是天一觀的道長。 經(jīng)常有香客問我帅刊,道長掂骏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任厚掷,我火速辦了婚禮弟灼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冒黑。我一直安慰自己田绑,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布抡爹。 她就那樣靜靜地躺著掩驱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冬竟。 梳的紋絲不亂的頭發(fā)上欧穴,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音泵殴,去河邊找鬼涮帘。 笑死,一個胖子當著我的面吹牛笑诅,可吹牛的內(nèi)容都是我干的调缨。 我是一名探鬼主播疮鲫,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弦叶!你這毒婦竟也來了俊犯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤伤哺,失蹤者是張志新(化名)和其女友劉穎燕侠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體立莉,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡贬循,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了桃序。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杖虾。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖媒熊,靈堂內(nèi)的尸體忽然破棺而出奇适,到底是詐尸還是另有隱情,我是刑警寧澤芦鳍,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布嚷往,位于F島的核電站,受9級特大地震影響柠衅,放射性物質(zhì)發(fā)生泄漏皮仁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一菲宴、第九天 我趴在偏房一處隱蔽的房頂上張望贷祈。 院中可真熱鬧,春花似錦喝峦、人聲如沸势誊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粟耻。三九已至,卻和暖如春眉踱,著一層夾襖步出監(jiān)牢的瞬間挤忙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工谈喳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留册烈,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓叁执,卻偏偏與公主長得像茄厘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谈宛,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 分片的技術一直在區(qū)塊量行業(yè)被提起吆录,但以太網(wǎng)絡的分片推進也是相當?shù)木徛ぶ汀O喾矗琙illiqa恢筝,作為第一個使用了分片技...
    蒼天鴨閱讀 794評論 0 17
  • EOS.IO 技術白皮書 v2 本文檔由汪濤哀卫,minghua,鞠禹撬槽,李曉宇此改,輕靈紫,陳偉楨侄柔,趙余共啃,以及另外兩位不具...
    一只肥貓君閱讀 1,651評論 0 1
  • 以太坊(Ethereum ):下一代智能合約和去中心化應用平臺 翻譯:巨蟹 、少平 譯者注:中文讀者可以到以太坊愛...
    車圣閱讀 3,729評論 1 7
  • “不忘初心暂题,牢記使命”移剪。 云巖區(qū)舉辦紀念新中國成立70周年暨建黨98周年“紅色記憶”詩歌誦讀活動。 這是紅色記憶薪者!...
    聆聽鏡看閱讀 214評論 0 2
  • 自己很慶幸能來到這個大舞臺言津,向更多的人學習攻人!每一行都有領先人物,感恩所有悬槽!
    長沙尚學堂IT教育閱讀 192評論 0 0