區塊鏈之旅(三)智能合約與共識機制 | 入駐第十一天

智能合約

定義

​ 智能合約是一套以數字形式定義的約定,包括合約參與方能夠在上面執行這些約定的協議。智能合約的基本思想是,各類各樣的合約條款能夠嵌入到咱們使用的硬件和軟件中,從而使得攻擊者須要很大的代價去攻擊。算法

特色:數據庫

  • 計算機程序的if-then語句
  • 條約達成時自動執行
  • 數字化的合同
  • 計算系統自動執行條款

特徵:編程

  • 數據透明:區塊鏈上的數據對參與方是公開透明的,數據處理也是公開透明的。
  • 不可篡改:區塊鏈自己的全部數據不可篡改,區塊鏈上的智能合約代碼以及運行產生的數據輸出也是不可篡改的。
  • 永久運行:支撐區塊鏈網絡的節點每每達到數百甚至上千,部分節點的失效並不會致使智能合約的中止,其可靠性理論上接近於永久運行。

構成

  • 參與方:參與數字資產交易的人或是組織。
  • 資產:具有必定價值而做爲交易標得地事物,能夠是具體的能夠是抽象的。
  • 交易:參與方對資產進行查詢,轉移等操做的過程。
  • 帳本:記錄資產的歸屬及其交易事實的數據庫。

設計流程

  1. 多方用戶共同參與,制定智能合約。
  2. 合約經過P2P網絡擴散並存入區塊鏈。
  3. 區塊鏈構建的智能合約自動執行。

編程語言

在這裏插入圖片描述

基礎建構模型

在這裏插入圖片描述

運行機制

在這裏插入圖片描述

應用領域

在這裏插入圖片描述

問題挑戰

在這裏插入圖片描述

共識機制

簡介

拜占庭將軍問題

​ 一個關於分佈式系統容錯問題的故事。markdown

背景:

​ 在戰爭的時候,拜占庭軍隊內全部將軍和副官必須達成一致的共識,決定是否有贏的機會纔去攻打敵人的陣營。可是,在軍隊內有可能存有叛徒和敵軍的間諜,左右將軍們的決定又擾亂總體軍隊的秩序。在進行共識時,結果並不表明大多數人的意見。這時候,在已知有成員謀反的狀況下,其他忠誠的將軍在不受叛徒的影響下如何達成一致的協議,拜占庭問題就此造成。網絡

解決方案:

​ 每一個節點給全部的其餘節點發送消息編程語言

​ 每一個節點根據接受到的全部消息來決定最終的策略分佈式

缺點

​ 每一個節點先全網節點發送大量的消息。區塊鏈

概念

​ 因爲點對點網絡下存在較高的網絡時延,各個節點所觀察到的事務前後順序不可能徹底一致。所以區塊鏈系統須要設置一種機制對在差很少時間內發生的事務的前後順序達成一致。這種對一個時間窗口內的事務的前後順序達成共識的算法被稱爲共識機制。spa

  • 共識算法:節點依據共識規矩達成共識的計算算法
  • 共識規則:每一個區塊鏈裏面都有通過精心設計的規則性協議,這些協議經過共識算法來保證共識規則得以正確執行。

做用

​ 做用至關因而生活中的法律設計

概覽

  • 工做量證實PoW:比特幣BTC、以太坊ETH、以太坊經典ETC
  • 權益證實PoS:ADA艾達幣、Peercoin點點幣
  • 受權工做證實DPoS:EOS、Asch、Steem
  • 拜占庭容錯算BFT:實用拜占庭容錯PBFT、派生BFT
  • RAFT算法:ETCD

PoW

特色:

​ 解決計算困難問題所需的計算代價做爲新加入塊的憑證和得到獎勵受益。

過程:

在這裏插入圖片描述

缺陷:

在這裏插入圖片描述

​ 因爲PoW缺少去中心化且消耗的資源太大,因而有了另外一種的共識機制PoS

PoS

特色:

​ 以權益證實代替工做量證實,由具備最高權益的節點實現新塊加入和得到激勵收益。

過程:

在這裏插入圖片描述

​ 開始競爭出塊記帳前,擁有權益的節點將本身的權益放入PoS機制中,同時身份變爲驗證者,PoS機制根據驗證者下注的多少,採用隨機的方式選出一個記帳者進行出塊記帳。

缺陷:

​ 並非徹底的隨機,而是權值越大會越由機率獲取,仍是沒有解決資源算力浪費的問題,以及存在非徹底對等的問題。

DPoS

特色:

​ 首先經過PoS選出表明,進而從表明中選出塊生成者並得到收益。

過程:

在這裏插入圖片描述

​ DPoS共識機制的基本思路相似於「董事會決策」,即系統中每一個股東節點能夠將其持有的股份權益做爲選票授予一個表明,得到票數最多且願意成爲表明的前101個節點將進入「董事會」,按照既定的時間表輪流對交易進行打包結算而且簽署(即生產)一個新區塊。

缺陷:

BFT(拜占庭容錯算法)

特色:

​ DBFT算法中參與記帳的是超級節點,普通節點能夠看到共識過程,並同步賬本信息,但不參與記帳。總共n個超級節點分爲一個議長和n-1和議員,議長會輪流當選。每次記帳時,現有議長髮起區塊鏈提案(擬記帳的區塊內容),一旦有至少(2n+1)/3個記帳節點(議長+議員)贊成這個提案,那麼就這個提案就成爲最終發佈的區塊、而且該區塊是不可逆的。

過程:

​ PBFT過程:

在這裏插入圖片描述

在這裏插入圖片描述

RAFT

特色:

​ 是對PAXOS算法的一種簡單實現,核心思想是若是數個數據庫的初始狀態一致,只要以後及逆行的操做一致,就能保證以後的數據一致。

過程:

在這裏插入圖片描述

在這裏插入圖片描述

評價標準

在這裏插入圖片描述

共識機制的對比

在這裏插入圖片描述

PoW PoS DPoS Raft PBFT
場景 公鏈 公鏈、聯盟鏈 公鏈、聯盟鏈 聯盟鏈 聯盟鏈
去中心化 徹底 徹底 徹底 半中性化 半中性化
記帳節點 全網 全網 選出若干表明 選出一個Leader 動態決定
響應時間 10分鐘 1分鐘 3秒左右 秒級 秒級
存儲效率 全帳本 全帳本 全帳本 全帳本 全帳本+部分帳本
吞吐量 約7TPS 約15TPS 約300TPS或更高 幾千甚至上萬 約10000TPS或更高
容錯 50% 50% 50% 50% 33%
相關文章
相關標籤/搜索