Exploring Bitcoin and blockchain technology(探秘比特币与区块链技术)(视频)

有人认为这不过是炒作;其他人则将此视作一种革命性技术,可以彻底改变我们交易几乎一切有价值之物的方式。 那么这种所谓分布式账本技术(DLT)到底是什么?它怎样运作?谁能从中受益?在这个的视频中,我们将为您区分事实与虚构,帮您看清炒作的烟幕。 …

Some people think this is just hype; others see it as a revolutionary technology that can completely change the way we trade almost everything of value. So what is this so-called distributed ledger technology (DLT)? How does it work? Who can benefit from it? In this video, we will distinguish between fact and fiction, and help you see the smoke screen of hype. …

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

Block.Chan(程伟) wechat
欢迎关注区块新看点