智能合約是一套以數字形式定義的約定,包括合約參與方能夠在上面執行這些約定的協議。智能合約的基本思想是,各類各樣的合約條款能夠嵌入到咱們使用的硬件和軟件中,從而使得攻擊者須要很大的代價去攻擊。算法
特色:數據庫
特徵:編程
一個關於分佈式系統容錯問題的故事。markdown
在戰爭的時候,拜占庭軍隊內全部將軍和副官必須達成一致的共識,決定是否有贏的機會纔去攻打敵人的陣營。可是,在軍隊內有可能存有叛徒和敵軍的間諜,左右將軍們的決定又擾亂總體軍隊的秩序。在進行共識時,結果並不表明大多數人的意見。這時候,在已知有成員謀反的狀況下,其他忠誠的將軍在不受叛徒的影響下如何達成一致的協議,拜占庭問題就此造成。網絡
每一個節點給全部的其餘節點發送消息編程語言
每一個節點根據接受到的全部消息來決定最終的策略分佈式
每一個節點先全網節點發送大量的消息。區塊鏈
因爲點對點網絡下存在較高的網絡時延,各個節點所觀察到的事務前後順序不可能徹底一致。所以區塊鏈系統須要設置一種機制對在差很少時間內發生的事務的前後順序達成一致。這種對一個時間窗口內的事務的前後順序達成共識的算法被稱爲共識機制。spa
做用至關因而生活中的法律設計
解決計算困難問題所需的計算代價做爲新加入塊的憑證和得到獎勵受益。
因爲PoW缺少去中心化且消耗的資源太大,因而有了另外一種的共識機制PoS
以權益證實代替工做量證實,由具備最高權益的節點實現新塊加入和得到激勵收益。
開始競爭出塊記帳前,擁有權益的節點將本身的權益放入PoS機制中,同時身份變爲驗證者,PoS機制根據驗證者下注的多少,採用隨機的方式選出一個記帳者進行出塊記帳。
並非徹底的隨機,而是權值越大會越由機率獲取,仍是沒有解決資源算力浪費的問題,以及存在非徹底對等的問題。
首先經過PoS選出表明,進而從表明中選出塊生成者並得到收益。
DPoS共識機制的基本思路相似於「董事會決策」,即系統中每一個股東節點能夠將其持有的股份權益做爲選票授予一個表明,得到票數最多且願意成爲表明的前101個節點將進入「董事會」,按照既定的時間表輪流對交易進行打包結算而且簽署(即生產)一個新區塊。
DBFT算法中參與記帳的是超級節點,普通節點能夠看到共識過程,並同步賬本信息,但不參與記帳。總共n個超級節點分爲一個議長和n-1和議員,議長會輪流當選。每次記帳時,現有議長髮起區塊鏈提案(擬記帳的區塊內容),一旦有至少(2n+1)/3個記帳節點(議長+議員)贊成這個提案,那麼就這個提案就成爲最終發佈的區塊、而且該區塊是不可逆的。
PBFT過程:
是對PAXOS算法的一種簡單實現,核心思想是若是數個數據庫的初始狀態一致,只要以後及逆行的操做一致,就能保證以後的數據一致。
PoW | PoS | DPoS | Raft | PBFT | |
---|---|---|---|---|---|
場景 | 公鏈 | 公鏈、聯盟鏈 | 公鏈、聯盟鏈 | 聯盟鏈 | 聯盟鏈 |
去中心化 | 徹底 | 徹底 | 徹底 | 半中性化 | 半中性化 |
記帳節點 | 全網 | 全網 | 選出若干表明 | 選出一個Leader | 動態決定 |
響應時間 | 10分鐘 | 1分鐘 | 3秒左右 | 秒級 | 秒級 |
存儲效率 | 全帳本 | 全帳本 | 全帳本 | 全帳本 | 全帳本+部分帳本 |
吞吐量 | 約7TPS | 約15TPS | 約300TPS或更高 | 幾千甚至上萬 | 約10000TPS或更高 |
容錯 | 50% | 50% | 50% | 50% | 33% |