區塊鏈技術調研

球已經興起了多個基於區塊鏈的數字身份項目,側重點各有不同,值得關注的項目有uport、Civic、Evernym、AirPlatform、Indy、SelfKey等,認識和挖掘這些項目可以幫助我們數字身份的應用形態。

  • (1)uport是基於以太坊的自主權身份ID應用,它可以允許用戶身份驗證、無密登錄、數字簽名並和以太坊上的其它應用交互;
  • (2)Civic是一個基於區塊鏈和生物識別的多因素身份認證系統,可以在移動端無需用戶名和密碼的情況下進行準確安全的用戶身份識別
  • (3)Evernym 及其主權身份解決方案旨在相互交易的個人、組織和連接的設備之間建立信任體系;
  • (4)AirPlatform是一個高度安全的數字身份平臺,建立在“超級賬本”區塊鏈項目之上,它採用一種創新的方式,用戶可以通過微支付的便捷方式參與其中,從而允許其他各方增加定向內容,並增強用戶參與互動;
  • (5)Hyperledger Indy 提供了工具、程序庫和可重複使用的組件,用於提供基於區塊鏈或者其它分佈式賬本的數字身份,從而讓它們跨管理域、跨應用和其他silo進行互操作;
  • (6)SelfKey是一個的點對點的數字身份生態系統,由系統中原始的 key 代幣提供系統運行的燃料,授權並激勵生態系統裏的數字身份的參與方,在這個生態系統裏,用戶可以通過叫 key 的代幣進行價值的轉移;

 

Civic 項目由連續創業者 Vinny Lingham 領導,是一個基於以太坊的身份驗證去中心化應用。在 Civic 去中心化生態系統中,用戶需要驗證自己的身份,之後請求接受方(例如銷售服務的公司)才能接受該用戶爲客戶。爲此,驗證者通過交叉引用政府數據庫的文檔驗證用戶的聲明。一旦驗證者證實了用戶的身份,他們就用默克爾樹根值來認證這段信息,而默克爾樹就拿用戶的聲明來做默克爾樹的葉子節點。

 

Civic 實現無密碼登錄的原理:

根據civic 白皮書翻譯:(白皮書全英文,翻譯有難度)

使用者用密碼+生理性鎖(指紋等)在civic上註冊,獲得認證。完全認證過後,civic提供對數據的認證證明到區塊鏈然後使得數據的收件人(要求驗證身份的地方)可以確認PII的授權和擁有權。
安全認證平臺允許用戶和認證要求者之間自願的信息交換。

pll (個人認證信息)

 

以太坊:

以太坊(Ethereum)是一個有智能合約功能的公共區塊鏈平臺。允許任何人在平臺上建立通過區塊鏈技術運行的去中心化應用。就像比特幣一樣不受任何人控制的開放源項目,但與比特幣不同的是,它解決了擴展性不足的問題,它十分靈巧簡便,極具適應性。

 

以太坊開發語言主要有:python ,c++, go

 

以太坊虛擬機

作爲一種比較新的利用比特幣技術的開發項目,以太坊致力於實施全球去中心化且無所有權的的數字技術計算機來執行點對點合約。簡單來說就是,以太坊是一個你無法關閉的世界計算機。

它是一個可編程的區塊鏈,用戶可以按照自己的意願創建複雜的操作。爲不同的區塊鏈應用提供服務。簡單來說,以太坊就是一系列協議,核心是以太坊虛擬機(“EVM”),可以執行任何複雜的代碼。

以太坊工作

以太坊的基本單元是賬戶。它有兩種賬戶類型,一個是外有賬戶(EOA),由私人密碼控制,用戶掌握了賬戶就掌握私鑰;另一個是合約賬戶,由合約代碼來控制,只能由一個EOA賬號來操作,“智能合約”就是合約賬號中的代碼,當一個交易被髮送到該賬戶時,合約中的代碼就會被執行。用戶可以通過把代碼部署到區塊鏈中來創建一個新合約,也即創建了一個新的合約賬戶。

目前已有200多個應用在以太坊上開發,最大特點是智能合約,一旦執行就沒有人可以更改阻止它的執行。

 

CVC 是Civic項目的以太坊代幣。Civic是一個基於區塊鏈和生物識別的多因素身份認證系統,可以在移動端無需用戶名和密碼的情況下進行準確安全的用戶身份識別,目前已經開發出手機app和API等功能用於對接商業應用。CVC在ICO階段採用基於自己的身份認證系統的排隊和限額投資方式,避免了投資大戶讓籌碼分佈非常廣泛,並且避免了ICO階段造成對以太坊網絡的阻塞,受到社區廣泛的好評。 CVC總量10億枚,ICO價格爲0.1美金。

https://blog.csdn.net/pony_maggie/article/details/74538902

 

區塊鏈技術之一:Merkle Tree

 

P2P網絡

  在P2P網絡中,Merkle Tree用來確保從其他節點接受的數據塊沒有損壞且沒有被替換,甚至檢查其他節點不會欺騙或者發佈虛假的塊。大家所熟悉的BT下載就是採用了P2P技術來讓客戶端之間進行數據傳輸,一來可以加快數據下載速度,二來減輕下載服務器的負擔。BT即BitTorrent,是一種中心索引式的P2P文件分分析通信協議[7]。

  要進下載必須從中心索引服務器獲取一個擴展名爲torrent的索引文件(即大家所說的種子),torrent文件包含了要共享文件的信息,包括文件名,大小,文件的Hash信息和一個指向Tracker的URL[8]。Torrent文件中的Hash信息是每一塊要下載的文件內容的加密摘要,這些摘要也可運行在下載的時候進行驗證。大的torrent文件是Web服務器的瓶頸,而且也不能直接被包含在RSS或gossiped around(用流言傳播協議進行傳播)。一個相關的問題是大數據塊的使用,因爲爲了保持torrent文件的非常小,那麼數據塊Hash的數量也得很小,這就意味着每個數據塊相對較大。大數據塊影響節點之間進行交易的效率,因爲只有當大數據塊全部下載下來並校驗通過後,才能與其他節點進行交易。

  就解決上面兩個問題是用一個簡單的Merkle Tree代替Hash List。設計一個層數足夠多的滿二叉樹,葉節點是數據塊的Hash,不足的葉節點用0來代替。上層的節點是其對應孩子節點串聯的hash。Hash算法和普通torrent一樣採用SHA1。其數據傳輸過程和第一節中描述的類似。

 

Pow  共識:工作量證明,利益分配

 

Pos  共識:  解決pow 資源浪費問題

同時解決51% 攻擊的問題

 

 

區塊鏈的運行:

 

括區塊鏈中公開記賬、創建創世區塊、 交易、打包 Transaction、廣播交易

 

 

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

1.P2P 網絡協議

 

2  分佈式一致性算法

 

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

 

3  加密簽名算法

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

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

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

 

4.賬戶與交易模型

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

我在設計元界區塊鏈時,參考了多種數據庫,有 NoSQL 的 BerkelyDB、LevelDB,也有一些幣 種採用基於 SQL 的 SQLite。

這些作爲底層的存儲設施,多以輕量級嵌入式數據庫爲主,由於並不涉及區塊鏈的賬本特性,這 些存儲技術與其他場合下的使用並沒有什麼不同。

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

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

 

IPFS協議:IPFS是點對點協議InterPlanetary File System的簡稱,它是一個面向全球的、點對點的分佈式版本文件系統,試圖將所有具有相同文件系統的計算設備連接在一起。

 

 

 

區塊鏈項目思路:

確定區塊鏈的類型:公證型區塊鏈還是價值型

 

 

區塊鏈原型選取:

以太坊與HyperLedger相同點:

都是提供區塊鏈業務實現的平臺,業務實現都是通過智能合約來完成,以達到最大的靈活性和對底層的不修改。
以太坊是:EVM虛擬機,Solidity合約語言
HyperLedger: Shim鏈碼容器, GO編寫合約。
官方版本都使用GO語言實現

 

開發轉變和開發難點

與傳統網絡服務不同的是:區塊鏈開發不再以面向服務爲主要關注點,而是面向賬本和交易。

 

目前開發人力資源儲備不足
目前比較成熟的技術體系有:比特幣及衍生技術體系,以太坊,超級賬本HyperLedger fabric,比特股Bitshares,瑞波Ripple,未來幣NXT

其中列出的前三個項目是最有影響力的區塊鏈項目。比特幣以及衍生技術多以C++語言進行開發;以太坊支持大部分主流語言,官方以Golang爲主,也有其他分支的項目如Rust語言的Parity錢包;超級賬本目前以Golang爲主。

 

https://blog.csdn.net/omnispace/article/details/80142595

 

歡迎對區塊鏈感興趣的同學,一起談論,有項目經驗的,能分享一下項目,謝謝!

本文來源於各種學習文檔,視頻,新聞 ,算是對區塊鏈有一個初步瞭解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章