Build the Blockchain as service (BaaS) Using Ethereum on Kubernetes

Preview:

Citation preview

Build the Blockchain as a

Service (Baas) using Ethereum

on Kubernetes

日期:2017.11.14Speaker:李麒傑

• 早期著重於 Web 前後端開發

• 研究所開始學習雲端技術(OpenStack、Kubernetes)

• 近期接觸區塊鏈技術(Ethereum)

Github: Ci-Jie

Agenda

何謂區塊鏈? 安全機制 問題探討架構

01 02 03 04

01

何謂區塊鏈?

為什麼我們覺得把錢

放在銀行很安全?

因為我們信賴銀行!

他不會無緣無故倒閉

但是你有想過人們某些

原因不再相信銀行…

區塊鏈將所有節點串連

在一起,沒有所謂的中

心,並且將所有交易的

資訊備份到所有節點

這樣的特性我們如何導入企業?

公開貨幣如何推廣?與實際貨幣價值比?

分散式儲存將資料有效的備份到私有鏈的所有節點,並且提供高安全的特性確保

資料不容易被竄改

公司內部貨幣如何應用?應用在哪裡?

02

資料安全

一次的儲存等於一筆交易

(Transaction)

Block 111 (hash: 123)

Transaction a

Transaction b

Block 112 (hash: 456)

Transaction c

456 = Hash ( hash 123 + hash (tansaction c) )

假如你今天想惡意竄改交易記錄…

Block 200 (hash: 123)

Transaction a

Transaction b

Block 201 (hash: 456)

Transaction c

Block 202 (hash: 789)

Transaction d

Transaction e

Transaction f

1. 假設竄改 Transaction a 的交易記錄

2. 因為 Block 201 的 hash 是由 Transaction a 與其他交易產生,所以需要重新計算

3. 若 Block 已產生到 1000 則需修改前 800 個 Block 的 hash

4. 若總共 n 個 nodes 則需修改 800 * (n / 2 + 1) 個 Blocks

5. 在竄改的同時又會產生新的 Blocks,所以惡意竄改非常困難

愈久的交易記錄愈不容易被竄改

區塊鏈上愈多節點也會增加竄改的難度

假如不竄改歷史記錄,而偽造新交易也

可能造成惡意攻擊

Block 200 (hash: 123)

Transaction a

Transaction b

Block 201 (hash: 456)

Transaction c

Block 202 (hash: 789)

Transaction d

Transaction e

Transaction f

1. 在 transaction a 中我欠小明 500 元

2. 在最新的 transaction 中寫入一筆我已經還小明 500 元的交易,但是我沒還

3. 同時有 (n / 2) + 1 的節點中都同意,那麼這筆交易會變成事實

但是收買超過 51% 的節點可能會超過

預期的價值!

03

架構

為什麼要把 Ethereum 建置在

Kubernetes 上?

Ethereum Nodes 服務故障需要重新啟動

可以任意擴展與縮小 Ethereum 規模

方便管理與監控 Ethereum Nodes

NetstatEthereum dashboard

NodeEthereum nodes

Miniter監控所有節點狀態,包括擴展與縮小節點規模時更改狀態

NFSEthereum 叢集整體狀態儲存

Netstat IP ?

Enode ?

Nodes IP ?

Accounts ?

基本上已經有了雛形,那麼我們還可以

加入什麼功能?

04

問題探討

每筆交易都必須付出手續費!

如何讓錢花不完?

如何降低每筆交易的手續費?

建置在 Kubernetes 上,如何找到

Account 所註冊的 Nodes?

Demo

Ethereum on Kubernetes

POC

Open Source education Lab

IMAC Cloud

Thank you

Recommended