Email me: jollen # jollen.org

more: Jollen 的 Embedded Linux 教育訓練

« June 2017 | (回到Blog入口) | October 2017 »

September 2017 歸檔

September 30, 2017

Blockchain Developer - 初探 Distributed Ledger Technology (DLT)

DLT 有一個更耳熟能詳的名字,叫做區塊鏈...

本文章採用 Markdown 語法撰寫,若無法完整閱讀全文,請點擊這裡。

Distributed Ledger Technology (DLT)

DLT 有一個更耳熟能詳的名字,叫做區塊鏈。簡單來說,根據 Wikipedia 上的定義 [1],區塊鏈(Blockchain)就是一種 Distributed Ledger 的資料結構(Data Structure):

a Blockchain is only one type of data structure considered to be a distributed ledger.

也就是說,DLT 可以延用 Blockchain 資料結構設計,也可以根據應用的不同,設計全新的資料結構;無論是採用 Blockchain 資料結構,或是設計新的資料結構,目標都是提供一個分散式資料儲存系統(distributed data storage)。一個 DLT Platform 除了要具備一個安全可信任的 distributed data storage,還具備以下 2 個元素:

  • A peer-to-peer network
  • Consensus algorithms

在 distributed data storage 網路上的電腦裝置,稱之為節點。由於 distributed data storage 需要考慮備援與錯誤修正的問題,因此會將一筆資料同步備援在多個節點上,這樣的技術就稱為 replication。當某一個節點上的該筆資料毀損時,扮演該筆資料備援角色的節點,就能協助該節點,回覆毀損的資料,這樣的技術就稱為 redundancy。

技術上,DLT 就是一個為 distributed data storage 提供 replication/redundancy 功能的通訊協定(Protocol)。這樣的 replication/redundancy 機制,就稱為 fault tolerance(容錯機制)。

Transactions

DLT 與傳統資料庫系統,除了上述的差別外,另一個重要的區別是:交易。DLT 儲存的是交易(Transaction);而傳統資料庫儲存,則是儲存「資料」(Data)。

交易與資料的一個區別是,交易需要被「驗證」(validation);而資料卻是可以直接地,儲存進資料庫裡即可。交易會包含所要儲存的資料,因此,可以說交易是資料的「封裝」。

在軟體設計的領域裡,封裝有「打包」的意思;也就是說,這像是在寄掛號信,我先將文件(資料)放進信封打包好,再將郵件「提交」到郵局,最後由收件人簽收無誤後取出文件,再將文件歸檔(儲存)。

在一個 DLT Platoform 裡,交易的驗證過程,需要決定該筆交易的接受者與簽收方式,這就開始涉及 Broadcast 與 Consensus 技術了。最終,這筆交易會被節點儲存,而儲存交易的地方就稱為 Block(區塊);這些區塊將不只一個,而是一個 chain of blocks 的結構,這些串接在一起的 blocks 就稱為 blockchain。

Byzantine Fault Tolerance(拜占庭容錯算法)

DLT 是一個比 Blockchain 更整體的研究主題,例如知名的 Hyperledger 就是一個 DLT 平台。Fault tolerance 與 transactions 則是 DLT 的核心骨幹。像是 PBFT(Practical Byzantine Fault Tolerance )就是一個知名的 fault tolerance 演算法,並且被 Hyperledger Fabric v0.6 所採用。

SBFT(Simplified Byzantine Fault Tolerance)也是一種 fault toerance 演算法,由 Hyperledger Fabric v1.0 實作;SBFT 演算法延續自 PBFT,目標是擴充 PBFT 以支援更大規模(large scale)的 p2p 網路。

拜占庭容錯算法,目前經常被稱為共識算法(consensus algorithms);雖然二者是不同的技術,不過現在似乎也不會這麼嚴謹地區分了。

References

[1] https://en.wikipedia.org/wiki/Distributed_ledger

關於 September 2017

此頁面包含了在September 2017發表於Jollen's Blog的所有日記,它們從老到新列出。

前一個存檔 June 2017。

後一個存檔 October 2017。

更多信息可在 主索引 頁和 歸檔 頁看到。

Top | 授權條款 | Jollen's Forum: Blog 評論、討論與搜尋
Copyright(c) 2006 www.jollen.org