《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 業界動態 > 【區塊鏈】區塊鏈背后的4大核心技術

【區塊鏈】區塊鏈背后的4大核心技術

2019-10-30
來源:產業智能官
關鍵詞: 區塊鏈

  區塊鏈的技術定義

  簡單來說,區塊鏈是一個提供了拜占庭容錯、并保證了最終一致性的分布式數據庫;從數據結構上看,它是基于時間序列的鏈式數據塊結構;從節點拓撲上看,它所有的節點互為冗余備份;從操作上看,它提供了基于密碼學的公私鑰管理體系來管理賬戶。

  或許以上概念過于抽象,我來舉個例子,你就好理解了。

  你可以想象有 100 臺計算機分布在世界各地,這 100 臺機器之間的網絡是廣域網,并且,這 100 臺機器的擁有者互相不信任。

  那么,我們采用什么樣的算法(共識機制)才能夠為它提供一個可信任的環境,并且使得:

  節點之間的數據交換過程不可篡改,并且已生成的歷史記錄不可被篡改;

  每個節點的數據會同步到最新數據,并且會驗證最新數據的有效性;

  基于少數服從多數的原則,整體節點維護的數據可以客觀反映交換歷史。

  區塊鏈就是為了解決上述問題而產生的技術方案。

  我們結合以往講過的內容,和即將要講的內容,先提煉一下區塊鏈在技術上的 7 個特征,你先記住,我們后續會慢慢道來:

  區塊鏈的存儲基于分布式數據庫;

  數據庫是區塊鏈的數據載體,區塊鏈是交易的業務邏輯載體;

  區塊鏈按時間序列化區塊數據,整個網絡有一個最終確定狀態;

  區塊鏈只對添加有效,對其他操作無效;

  交易基于非對稱加密的公私鑰驗證;

  區塊鏈網絡要求拜占庭將軍容錯;

  共識算法能夠“解決”雙花問題。

  區塊鏈的核心技術組成

  無論是公鏈還是聯盟鏈,至少需要四個模塊組成:P2P 網絡協議、分布式一致性算法(共識機制)、加密簽名算法、賬戶與存儲模型。

  1. P2P 網絡協議

  P2P 網絡協議是所有區塊鏈的最底層模塊,負責交易數據的網絡傳輸和廣播、節點發現和維護。

  通常我們所用的都是比特幣 P2P 網絡協議模塊,它遵循一定的交互原則。比如:初次連接到其他節點會被要求按照握手協議來確認狀態,在握手之后開始請求 Peer 節點的地址數據以及區塊數據。

  這套 P2P 交互協議也具有自己的指令集合,指令體現在在消息頭(Message Header) 的 命令(command)域中,這些命令為上層提供了節點發現、節點獲取、區塊頭獲取、區塊獲取等功能,這些功能都是非常底層、非?;A的功能。如果你想要深入了解,可以參考比特幣開發者指南中的 Peer Discovery 的章節。

  2. 分布式一致性算法

  在經典分布式計算領域,我們有 Raft 和 Paxos 算法家族代表的非拜占庭容錯算法,以及具有拜占庭容錯特性的 PBFT 共識算法。

  如果從技術演化的角度來看,我們可以得出一個圖,其中,區塊鏈技術把原來的分布式算法進行了經濟學上的拓展。

640.webp (11).jpg

 ?。▓D來自網絡)

  在圖中我們可以看到,計算機應用在最開始多為單點應用,高可用方便采用的是冷災備,后來發展到異地多活,這些異地多活可能采用的是負載均衡和路由技術,隨著分布式系統技術的發展,我們過渡到了 Paxos 和 Raft 為主的分布式系統。

  而在區塊鏈領域,多采用 PoW 工作量證明算法、PoS 權益證明算法,以及 DPoS 代理權益證明算法,以上三種是業界主流的共識算法,這些算法與經典分布式一致性算法不同的是,它們融入了經濟學博弈的概念,下面我分別簡單介紹這三種共識算法。

  PoW: 通常是指在給定的約束下,求解一個特定難度的數學問題,誰解的速度快,誰就能獲得記賬權(出塊)權利。這個求解過程往往會轉換成計算問題,所以在比拼速度的情況下,也就變成了誰的計算方法更優,以及誰的設備性能更好。

  PoS: 這是一種股權證明機制,它的基本概念是你產生區塊的難度應該與你在網絡里所占的股權(所有權占比)成比例,它實現的核心思路是:使用你所鎖定代幣的幣齡(CoinAge)以及一個小的工作量證明,去計算一個目標值,當滿足目標值時,你將可能獲取記賬權。

  DPoS: 簡單來理解就是將 PoS 共識算法中的記賬者轉換為指定節點數組成的小圈子,而不是所有人都可以參與記賬。這個圈子可能是 21 個節點,也有可能是 101 個節點,這一點取決于設計,只有這個圈子中的節點才能獲得記賬權。這將會極大地提高系統的吞吐量,因為更少的節點也就意味著網絡和節點的可控。

  3. 加密簽名算法

  由于我不是密碼學專業出身,所以這個部分我會以介紹為主。

  在區塊鏈領域,應用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、難題友好性等特征。

  其中,難題友好性正是眾多 PoW 幣種賴以存在的基礎,在比特幣中,SHA256 算法被用作工作量證明的計算方法,也就是我們所說的挖礦算法。

  而在萊特幣身上,我們也會看到 Scrypt 算法,該算法與 SHA256 不同的是,需要大內存支持。而在其他一些幣種身上,我們也能看到基于 SHA3 算法的挖礦算法。以太坊使用了 Dagger-Hashimoto 算法的改良版本,并命名為 Ethash,這是一個 IO 難解性的算法。

  當然,除了挖礦算法,我們還會使用到 RIPEMD160 算法,主要用于生成地址,眾多的比特幣衍生代碼中,絕大部分都采用了比特幣的地址設計。

  除了地址,我們還會使用到最核心的,也是區塊鏈 Token 系統的基石:公私鑰密碼算法。

  在比特幣大類的代碼中,基本上使用的都是 ECDSA。ECDSA 是 ECC 與 DSA 的結合,整個簽名過程與 DSA 類似,所不一樣的是簽名中采取的算法為 ECC(橢圓曲線函數)。

  從技術上看,我們先從生成私鑰開始,其次從私鑰生成公鑰,最后從公鑰生成地址,以上每一步都是不可逆過程,也就是說無法從地址推導出公鑰,從公鑰推導到私鑰。

640.webp (10).jpg

  圖來自《精通比特幣》一書

  4. 賬戶與交易模型

  從一開始的定義我們知道,僅從技術角度可以認為區塊鏈是一種分布式數據庫,那么,多數區塊鏈到底使用了什么類型的數據庫呢?

  我在設計元界區塊鏈時,參考了多種數據庫,有 NoSQL 的 BerkelyDB、LevelDB,也有一些幣種采用基于 SQL 的 SQLite。這些作為底層的存儲設施,多以輕量級嵌入式數據庫為主,由于并不涉及區塊鏈的賬本特性,這些存儲技術與其他場合下的使用并沒有什么不同。

  區塊鏈的賬本特性,通常分為 UTXO 結構以及基于 Accout-Balance 結構的賬本結構,我們也稱為賬本模型。UTXO 是“unspent transaction input/output”的縮寫,翻譯過來就是指“未花費的交易輸入輸出”。

  這個區塊鏈中 Token 轉移的一種記賬模式,每次轉移均以輸入輸出的形式出現;而在 Balance 結構中,是沒有這個模式的。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 高清国产一级毛片国语| 亚洲毛片在线看| 麻豆国产高清在线播放| 国产精品白浆在线播放| 久久这里只精品国产免费10| 欧美精品videossex欧美性| 国产在热线精品视频国产一二| 8x8×在线永久免费视频| 天天爽夜夜爽人人爽一区二区| 中文字幕亚洲欧美日韩高清| 欧美成人精品第一区| 人妻免费久久久久久久了| 美女教师一级毛片| 国产精品VA无码一区二区| 99国产精品永久免费视频| 小尤奈私拍视频在线观看| 中文日本免费高清| 日本特黄特色aaa大片免费| 久久这里只精品99re免费| 欧美jizz18欧美| 亚洲国产成人久久一区久久| 欧美综合天天夜夜久久| 亚洲综合欧美色五月俺也去| 青青草成人在线| 国产美女无遮挡免费视频| 中文字幕丝袜制服| 日本人强jizzjizz| 久久国产精品久久久久久| 曰批全过程免费视频播放网站| 人妻丰满熟AV无码区HD| 精品国产一二三区在线影院| 四虎成人精品在永久免费| 色吊丝永久性观看网站| 国产一卡二卡≡卡四卡免费乱码 | 狠狠躁狠狠躁东京热无码专区| 免费在线公开视频| 福利免费在线观看| 免费看激情按摩肉体视频| 高清中国一级毛片免费| 国产探花视频在线观看| 很黄很黄的网站免费的|