從開發人員角度
十分鐘理解區塊鏈技術
多奇數位創意有限公司
技術總監 黃保翕 ( Will 保哥 )
部落格:http://blog.miniasp.com/
BlockChain from a developer's perspective
什麼是區塊鏈?
What is BlockChain?
3
區塊鏈
( Block Chain )
是一種
分散式資料庫
4
區塊鏈
( Block Chain )
最初是廣泛使用在
比特幣(Bitcoin)
5
區塊鏈
( Block Chain )
維護一份連續不斷的
交易記錄檔
6
區塊鏈
( Block Chain )
每一筆資料被稱為一個
區塊 (Block)
7
區塊鏈
( Block Chain )
每一個區塊可以包含
一筆以上的交易
8
區塊鏈
( Block Chain )
每個區塊都會與另一個區塊
產生連結 (Linking)
9
區塊鏈
( Block Chain )
每個區塊都會包含
上個區塊的 hash 值
10
區塊鏈
( Block Chain )
所有連結在一起的區塊被稱為
鏈 (Chain)
11
區塊鏈
( Block Chain )
就是
由多個區塊組成的鏈
區塊鏈如何運作?
How BlockChain works?
13
區塊鏈
( Block Chain )
產生區塊的過程會經過
複雜的密碼學運算
(Cryptography)
14
區塊鏈
( Block Chain )
複雜的密碼學運算可有效杜絕
紀錄竄改與修訂
15
區塊鏈
( Block Chain )
每筆區塊在成功產生之後
是無法修改的
16
區塊鏈
( Block Chain )
產生區塊的過程又稱為
挖礦 (Mining)
17
區塊鏈
( Block Chain )
負責產生區塊的人又稱
礦工 (Miner)
18
區塊鏈
( Block Chain )
負責產生區塊的機器又稱
挖礦機
19
區塊鏈
( Block Chain )
每一筆資料都可以透過連結找出
所有可靠的歷史資料
20
區塊鏈
( Block Chain )
由於是分散式資料庫,所以
具有「去中心化」特性
21
區塊鏈
( Block Chain )
「去中心化」意味著
資料會散佈在多個節點
22
區塊鏈
( Block Chain )
所有的節點會共同維護
整份資料庫
區塊鏈
( Block Chain )
共同維護整份資料庫意謂著
沒人可以說自己的區塊
才是合法有效的區塊
區塊鏈
( Block Chain )
共同維護整份資料庫意謂著
多數人驗證過的區塊
才是合法有效的區塊
區塊鏈
( Block Chain )
共同維護整份資料庫意謂著
超過 50% 的人認證過的
才是合法有效的區塊
區塊鏈
( Block Chain )
每個節點
必須儲存所有區塊
(但有新的設計可讓節點僅儲存部分區塊)
27
區塊鏈
( Block Chain )
每一個節點都可以
協助驗證區塊有效性
28
區塊鏈
( Block Chain )
任何一筆資料被竄改
都將破壞區塊完整性
29
區塊鏈
( Block Chain )
任何一筆資料被竄改的機率
微乎其微!
30
區塊鏈
( Block Chain )
的運作原理跟 Git 分散式儲存庫
有著異曲同工之妙
30 天精通 Git 版本控管 / 第 06 天:解析 Git 資料結構 - 物件結構
31
區塊鏈
( Block Chain )
的實作包含兩種物件類型
【交易】與【區塊】
32
區塊鏈
( Block Chain )
解說的情境
數位貨幣
33
區塊鏈
( Block Chain )
交易物件就是
轉帳過程的完整內容
34
區塊鏈
( Block Chain )
區塊物件包含
一批交易的集合
35
區塊鏈
( Block Chain )
區塊之間連結起來就是一本
帳簿 (Ledger)
36
區塊鏈
( Block Chain )
基本原理就是讓所有人
共同維護一份帳簿
區塊鏈
( Block Chain )
這份共同維護的帳簿
必須由大伙共同認證
(每個區塊都必須擁有超過50%的參與者認證過)
以 BitCoin 轉帳交易為例
38
以 BitCoin 轉帳交易為例
• 在 BitCoin 生態系統中,有許多運行中的電腦 (節點),每個節點就是一台挖礦
機,他們專門用來幫大家完成交易,意即建立新的區塊並加入帳簿。當 A 想要
轉帳給 B 時,要先由 B 建立一個地址 (匿名),把地址交給 A 之後,再由 A 建
立一個 交易物件 並透過 廣播 的方式發佈到 BitCoin 網路系統中。注意:每個
人都可以申請一個地址 (一串亂碼),該地址可用來付帳與收款,該地址在變更
之後就無法使用 (一次性),變更後就只能用新的地址來交易。
• BitCoin 系統會自動挑選不同的節點來驗證這筆交易的可靠性,通常一次交易
會需要獲得數個不同的節點來確認。被選中的節點至少會驗證一個以上的區塊
(即本次交易所需的所有區塊) 來運算出本次交易產生的合法區塊。
• 基本上每個節點都能產生區塊,並且會相互驗證彼此之間的有效性,當超過
50% 的節點都說這個區塊是合法有效的,這個新的區塊就會被寫入帳簿,最後
再將這些 區塊 透過 廣播 的方式發佈回 BitCoin 系統。通常一次交易要花十多
分鐘才能做完確認。當 BitCoin 系統驗證交易確實完成,A 跟 B 就可以看到這
是一份「合法有效」的交易,且該交易被記錄在特定一個區塊之中,並且可以
從中獲得自己的帳戶中有多少錢。
• 事實上,並不是 A 與 B 擁有這份帳簿,而是整個 BitCoin 網路系統就只有一份
帳簿 (所有人的交易都記錄在這裡),並分散儲存在不同的節點中,每個節點都
擁有一份完整的帳簿。因此這本帳簿是一份完全分散式、去中心化管理、公開、
透明、無法竄改、又能匿名交易的一本帳簿。 39
區塊鏈的特色與應用
BlockChain features and applications
區塊鏈的特色
• 完全開放的技術
• 去中心化的分散式架構
• 所有節點都以匿名方式存在共同驗證整份帳簿
( 負責驗證交易的節點會以共識決的方式決定這是否為有效交易 )
• 任何人想竄改歷史紀錄都將付出極高代價
( 你必須讓網路上所有包含你這筆交易的區塊同時修改才能被視為有效 )
• 完全自動化的衝突處理機制
( 例如同一筆交易在不同節點完成導致轉帳兩次的狀況 )
41
區塊鏈的潛在應用領域
• 數位貨幣 (Cryptocurrency) 是最典型的應用
– BitCoin、Litecoin、Ethereum、… (many others)
• 能將資料去中心化、透明化、不可修改(僅能新增
區塊)、永久保存的應用都適合改用區塊鏈技術實
作
– 數位資產管理
– 供應鏈透明化
– 生產履歷 / 產銷履歷
– 智慧合約 / 契約執行
– 交易流程透明化
– 電子函證
42
相關連結
More info
BitCoin
• Bitcoin - 開放原始碼點對點數位貨幣
– Bitcoin 運作原理 ( How does Bitcoin work? )
– Bitcoin 專有名詞 ( Vocabulary )
– Bitcoin Block Explorer - Blockchain.info
• Bitcoin Wallet
– Blockchain: Bitcoin Wallets
– Blockchain (粉絲專頁)
– 比特幣(Bitcoin)
44
區塊鏈 (BlockChain)
• 區塊鏈 - 維基百科,自由的百科全書
– Block chain (database) – Wikipedia
– Blockchain.info - 維基百科,自由的百科全書
– 'BlockChain' on SlideShare
– 區塊鏈科技趨勢與應用 - SlideShare
• 社群資源
– Bitcoin 中文社群
– Bitcoin 比特幣中文社團
– 數位貨幣論壇
45
程式開發
• Ethereum Project
( Ethereum is a decentralized platform that runs smart contracts )
– Ethereum: the Programmable Blockchain and Decentralized
Application Development Platform
• Blockchain Programming in C#
• Bitcoin Developer API's - Blockchain.info
• Ethereum Blockchain as a Service now on Azure |
Microsoft Azure Blog
46
聯絡資訊
• The Will Will Web
記載著 Will 在網路世界的學習心得與技術分享
– http://blog.miniasp.com/
• Will 保哥的技術交流中心 (臉書粉絲專頁)
– http://www.facebook.com/will.fans
• Will 保哥的噗浪
– http://www.plurk.com/willh/invite
• Will 保哥的推特
– https://twitter.com/Will_Huang

從開發人員角度十分鐘理解區塊鏈技術

  • 1.
    從開發人員角度 十分鐘理解區塊鏈技術 多奇數位創意有限公司 技術總監 黃保翕 (Will 保哥 ) 部落格:http://blog.miniasp.com/ BlockChain from a developer's perspective
  • 2.
  • 3.
    3 區塊鏈 ( Block Chain) 是一種 分散式資料庫
  • 4.
    4 區塊鏈 ( Block Chain) 最初是廣泛使用在 比特幣(Bitcoin)
  • 5.
    5 區塊鏈 ( Block Chain) 維護一份連續不斷的 交易記錄檔
  • 6.
    6 區塊鏈 ( Block Chain) 每一筆資料被稱為一個 區塊 (Block)
  • 7.
    7 區塊鏈 ( Block Chain) 每一個區塊可以包含 一筆以上的交易
  • 8.
    8 區塊鏈 ( Block Chain) 每個區塊都會與另一個區塊 產生連結 (Linking)
  • 9.
    9 區塊鏈 ( Block Chain) 每個區塊都會包含 上個區塊的 hash 值
  • 10.
    10 區塊鏈 ( Block Chain) 所有連結在一起的區塊被稱為 鏈 (Chain)
  • 11.
    11 區塊鏈 ( Block Chain) 就是 由多個區塊組成的鏈
  • 12.
  • 13.
    13 區塊鏈 ( Block Chain) 產生區塊的過程會經過 複雜的密碼學運算 (Cryptography)
  • 14.
    14 區塊鏈 ( Block Chain) 複雜的密碼學運算可有效杜絕 紀錄竄改與修訂
  • 15.
    15 區塊鏈 ( Block Chain) 每筆區塊在成功產生之後 是無法修改的
  • 16.
    16 區塊鏈 ( Block Chain) 產生區塊的過程又稱為 挖礦 (Mining)
  • 17.
    17 區塊鏈 ( Block Chain) 負責產生區塊的人又稱 礦工 (Miner)
  • 18.
    18 區塊鏈 ( Block Chain) 負責產生區塊的機器又稱 挖礦機
  • 19.
    19 區塊鏈 ( Block Chain) 每一筆資料都可以透過連結找出 所有可靠的歷史資料
  • 20.
    20 區塊鏈 ( Block Chain) 由於是分散式資料庫,所以 具有「去中心化」特性
  • 21.
    21 區塊鏈 ( Block Chain) 「去中心化」意味著 資料會散佈在多個節點
  • 22.
    22 區塊鏈 ( Block Chain) 所有的節點會共同維護 整份資料庫
  • 23.
    區塊鏈 ( Block Chain) 共同維護整份資料庫意謂著 沒人可以說自己的區塊 才是合法有效的區塊
  • 24.
    區塊鏈 ( Block Chain) 共同維護整份資料庫意謂著 多數人驗證過的區塊 才是合法有效的區塊
  • 25.
    區塊鏈 ( Block Chain) 共同維護整份資料庫意謂著 超過 50% 的人認證過的 才是合法有效的區塊
  • 26.
    區塊鏈 ( Block Chain) 每個節點 必須儲存所有區塊 (但有新的設計可讓節點僅儲存部分區塊)
  • 27.
    27 區塊鏈 ( Block Chain) 每一個節點都可以 協助驗證區塊有效性
  • 28.
    28 區塊鏈 ( Block Chain) 任何一筆資料被竄改 都將破壞區塊完整性
  • 29.
    29 區塊鏈 ( Block Chain) 任何一筆資料被竄改的機率 微乎其微!
  • 30.
    30 區塊鏈 ( Block Chain) 的運作原理跟 Git 分散式儲存庫 有著異曲同工之妙 30 天精通 Git 版本控管 / 第 06 天:解析 Git 資料結構 - 物件結構
  • 31.
    31 區塊鏈 ( Block Chain) 的實作包含兩種物件類型 【交易】與【區塊】
  • 32.
    32 區塊鏈 ( Block Chain) 解說的情境 數位貨幣
  • 33.
    33 區塊鏈 ( Block Chain) 交易物件就是 轉帳過程的完整內容
  • 34.
    34 區塊鏈 ( Block Chain) 區塊物件包含 一批交易的集合
  • 35.
    35 區塊鏈 ( Block Chain) 區塊之間連結起來就是一本 帳簿 (Ledger)
  • 36.
    36 區塊鏈 ( Block Chain) 基本原理就是讓所有人 共同維護一份帳簿
  • 37.
    區塊鏈 ( Block Chain) 這份共同維護的帳簿 必須由大伙共同認證 (每個區塊都必須擁有超過50%的參與者認證過)
  • 38.
  • 39.
    以 BitCoin 轉帳交易為例 •在 BitCoin 生態系統中,有許多運行中的電腦 (節點),每個節點就是一台挖礦 機,他們專門用來幫大家完成交易,意即建立新的區塊並加入帳簿。當 A 想要 轉帳給 B 時,要先由 B 建立一個地址 (匿名),把地址交給 A 之後,再由 A 建 立一個 交易物件 並透過 廣播 的方式發佈到 BitCoin 網路系統中。注意:每個 人都可以申請一個地址 (一串亂碼),該地址可用來付帳與收款,該地址在變更 之後就無法使用 (一次性),變更後就只能用新的地址來交易。 • BitCoin 系統會自動挑選不同的節點來驗證這筆交易的可靠性,通常一次交易 會需要獲得數個不同的節點來確認。被選中的節點至少會驗證一個以上的區塊 (即本次交易所需的所有區塊) 來運算出本次交易產生的合法區塊。 • 基本上每個節點都能產生區塊,並且會相互驗證彼此之間的有效性,當超過 50% 的節點都說這個區塊是合法有效的,這個新的區塊就會被寫入帳簿,最後 再將這些 區塊 透過 廣播 的方式發佈回 BitCoin 系統。通常一次交易要花十多 分鐘才能做完確認。當 BitCoin 系統驗證交易確實完成,A 跟 B 就可以看到這 是一份「合法有效」的交易,且該交易被記錄在特定一個區塊之中,並且可以 從中獲得自己的帳戶中有多少錢。 • 事實上,並不是 A 與 B 擁有這份帳簿,而是整個 BitCoin 網路系統就只有一份 帳簿 (所有人的交易都記錄在這裡),並分散儲存在不同的節點中,每個節點都 擁有一份完整的帳簿。因此這本帳簿是一份完全分散式、去中心化管理、公開、 透明、無法竄改、又能匿名交易的一本帳簿。 39
  • 40.
  • 41.
    區塊鏈的特色 • 完全開放的技術 • 去中心化的分散式架構 •所有節點都以匿名方式存在共同驗證整份帳簿 ( 負責驗證交易的節點會以共識決的方式決定這是否為有效交易 ) • 任何人想竄改歷史紀錄都將付出極高代價 ( 你必須讓網路上所有包含你這筆交易的區塊同時修改才能被視為有效 ) • 完全自動化的衝突處理機制 ( 例如同一筆交易在不同節點完成導致轉帳兩次的狀況 ) 41
  • 42.
    區塊鏈的潛在應用領域 • 數位貨幣 (Cryptocurrency)是最典型的應用 – BitCoin、Litecoin、Ethereum、… (many others) • 能將資料去中心化、透明化、不可修改(僅能新增 區塊)、永久保存的應用都適合改用區塊鏈技術實 作 – 數位資產管理 – 供應鏈透明化 – 生產履歷 / 產銷履歷 – 智慧合約 / 契約執行 – 交易流程透明化 – 電子函證 42
  • 43.
  • 44.
    BitCoin • Bitcoin -開放原始碼點對點數位貨幣 – Bitcoin 運作原理 ( How does Bitcoin work? ) – Bitcoin 專有名詞 ( Vocabulary ) – Bitcoin Block Explorer - Blockchain.info • Bitcoin Wallet – Blockchain: Bitcoin Wallets – Blockchain (粉絲專頁) – 比特幣(Bitcoin) 44
  • 45.
    區塊鏈 (BlockChain) • 區塊鏈- 維基百科,自由的百科全書 – Block chain (database) – Wikipedia – Blockchain.info - 維基百科,自由的百科全書 – 'BlockChain' on SlideShare – 區塊鏈科技趨勢與應用 - SlideShare • 社群資源 – Bitcoin 中文社群 – Bitcoin 比特幣中文社團 – 數位貨幣論壇 45
  • 46.
    程式開發 • Ethereum Project (Ethereum is a decentralized platform that runs smart contracts ) – Ethereum: the Programmable Blockchain and Decentralized Application Development Platform • Blockchain Programming in C# • Bitcoin Developer API's - Blockchain.info • Ethereum Blockchain as a Service now on Azure | Microsoft Azure Blog 46
  • 47.
    聯絡資訊 • The WillWill Web 記載著 Will 在網路世界的學習心得與技術分享 – http://blog.miniasp.com/ • Will 保哥的技術交流中心 (臉書粉絲專頁) – http://www.facebook.com/will.fans • Will 保哥的噗浪 – http://www.plurk.com/willh/invite • Will 保哥的推特 – https://twitter.com/Will_Huang