分散型台帳技術Orb DLTの紹介
25 Jul, 2017
Hiroyuki Yamada
CTO at Orb
1
© 2017 orb, inc.
自己紹介
• ⼭⽥浩之 (情報理⼯学博⼠ 東京⼤学)
• 専⾨:データベースシステム、並列分散システム
• 東京⼤学⽣産技術研究所
– ⾼性能・スケーラブルな次世代並列分散データ管理システムの研究開発
• 経産省未踏ソフトウェア クリエータ
– 次世代分散データベースシステムの研究開発
– (スーパークリエータに認定)
• Yahoo! Japan, IBM Japan
– 分散検索エンジン、⾼性能データベースカーネルの研究開発
2
© 2017 orb, inc.
Orbの事業内容の紹介
お客様の通貨や契約アプリケーションにおけるトランザクション処理・管理を担う専門部隊
3
Orb DLTの技術的な方向性
4
(Distributed)
Transaction
19801970 1990 2000 2010 2020
Blockchain
Nakamoto論⽂ Ethereum Sidechain
Transaction
(Jim Gray –
Turing Award
Winner)
Paxos Consensus
(Lamport –
Turing Award Winner)
Distributed
Transaction
Spanner
(Google)
Raft
Orb1
Orb DLT
Private
CP
Public
A(P)
Secure
Decentralized
Transaction
P2P
File Sharing PIER, PeerDB
(Non-transactional Query Processing)
X
Decentralization
Tamper Evidence
Private/Consortium
CP
No Finality
No Scalability
No Availability
Oracle
Performance
Scalability
Availability
© 2017 orb, inc.
Orb DLT : Orb Distributed Ledger Technology
分散トランザクション技術とブロックチェーン技術の
融合
独自の非中央管理型分散トランザクションシステム
独自の高い耐改ざん機構
通貨、契約のための汎用ミドルウェア
コンソーシアム型、プライベート型のユースケースに
フォーカス
5
Orb
DLT
Orb
DLT
Orb
DLT
Orb
DLT
NodeData Center
高い改ざん耐性を有する非中央管理型分散トランザクションシステム
ユースケース例:カード決済ネットワーク
分散型台帳技術による非中央集権的な決済の実現
会員(カード利用者) 加盟店
イシュア
(カード発行会社)
アクワイアラ
(加盟店契約会社)
利用代金請求
代金支払い
売上データ
支払い 売上データ 代金支払い
会員(カード利用者) 加盟店
決済履歴台帳
カード会社の台
帳をもとに伝票
を取り回す
地域通貨発行事業体
(地方銀行、商店街、
商工会議所など)
地域通貨精算業
(地方銀行)
Wallet App POS/CCT
台帳台帳
台帳 台帳
決済情報 売上明細
6
© 2017 orb, inc.
Orb DLT アーキテクチャ
TOOLBOX for domain-specific solutions :
入金、決済、クリアリング、清算等のライブラ
リ/SDK群
CORE for complex use cases :
通貨および契約等におけるトランザクションを
管理するミドルウェア
APOLLO for platform innovation :
データの管理・処理を特定の計算機に依らずに
実行する非中央管理型のデータオペレーティン
グシステム
7
Oracle
Cloud, @Customer, On-Premise
Apollo : Decentralized Data Operating System
CoinCore ContractCore
Wallet
App
Smart
Coin Custom App Custom App
Storage
Transaction Analytics
Toolbox
OrbDLT
QueryCore
Orb DLTとその他の分散型台帳技術との比較
8
コンソーシアム・プレイベート型トランザクション技術における比較
Blockchain
(Ethereum)
HyperLedger
(Fabric)
Orb1
(2015)
Orb DLT
Enterprise
In-memory DB
Decentralized
Control
○ ○ (→ ?) △ ○ -
Tamper
Evidence
○ ○ ○ ○ -
Consistency X ○ △ ○ ○
Finality
(Atomicity)
X ○ ○ ○ ○
Performance X X (→ ?) X ○ ◎
Scalability X X (→ ?) X ○ ○
Availability X ○ △ ○ ○
Integrated Storage
and Analytics X X X ○ ○
Ease of Use
(for Coin/Contract apps)
X X X ○ -
© 2017 orb, inc.
ブロックチェーンの課題とOrb DLTでの解決方法:Finality, Consistency
不特定多数のノードにおける過半数合意
=> 合意不可能(No Finality)
特定多数のノードにおける過半数合意
Blockchain Orb DLT
9
© 2017 orb, inc.
FYI : Blockchain is a Probablistic State Machine [ICDCS workshop’16]
10
© 2017 orb, inc.
ブロックチェーンの課題とOrb DLTでの解決方法:Performance
TX TX
TX TX
TX TX
TX TX
TX TX
TX TX
TX TX
TX TX
TX TX
TX TX
ブロックの単一リスト構造による原理的に低い並列性
(加えて、性能とノード数(計算資源)は直交 : P = c)
TXレコードのDAG構造による高い並列性
Blockchain Orb DLT
11
A
B
C
D
TX
始点または終点が衝突したときにデータが衝突
t
© 2017 orb, inc.
ブロックチェーンの課題とOrb DLTでの解決方法:Scalability
全データを全ノードに複製
DVi = DV (DV: Total amount of data)
データを複数のノードに複製
DVi = DV / N・RF (RF: Replication Factor << N)
TX
TX
TX
TXTX
TX
TX
TX
TXTX
Blockchain Orb DLT
12
© 2017 orb, inc.
ブロックチェーンの課題とOrb DLTでの解決方法:Availability
13
1ノードで検証後にクライアントに応答
伝播する前にノード群に障害が発生した場合は
データ消失の危険性あり
Quorum(定足数)への書き込み完了後に
クライアントに応答
(実際には2では複数回のコンセンサスおよび永続化を実施)
TX
TX
TX
TXTX
TX
TX
TX
TXTX
Blockchain Orb DLT
1
2
3
1
2
3
© 2017 orb, inc.
統合されたストレージと解析エンジン
14
トランザクションデータとアプリ
ケーションデータをApolloで統合的
に管理
トランザクション処理だけでなく、
当該処理において作成されたデータ
の柔軟な解析が可能
様々なアプリケーションにおける実
用的なプラットフォームを志向
Analytics
QueryCore
Application
Storage
Transaction
CoinCore
Ledger Application-specific
data
© 2017 orb, inc.
Core - 通貨や契約における処理の振る舞いを柔軟に定義可能なミドルウェア群
• アプリケーション共通の機能を汎用化
• Apolloの複雑性を隠蔽
• 複雑なことを簡単に実現
15
Driver
Transaction Analytics
Coin
Account Query
Storage
Apollo
Core
Model your client’s
organization
Design and deploy your
client’s economy
Aggregate your client’s
data as you like
© 2017 orb, inc.
CoinCore - 通貨におけるトランザクションの振る舞いを柔軟に定義可能なミドルウェア
地域通貨の例
• Regularコイン、Bonusコイン、Merchantコ
イン
• チャージ
– A銀行がユーザに指定額のRegularコ
インを付与
– チャージしたRegularコインの5%分
のBonusコインをチャージボーナス
消費者に付与
• 支払い
– 消費者はRegularコインもしくは
Bonusコインから必要な額のコイン
を加盟店に支払い
– A銀行は手数料として支払額の2%
を加盟店から徴収
[
{
"ID": "charge",
"Modifiers": [
{
"Type": "basic",
"Order": 0,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"regular"
],
"UnavailableCoins": null,
"Amount": null,
"Percentage": 100
}
},
{
"Type": "basic",
"Order": 1,
"Config": {
"DecreaseTarget": "issuer",
"IncreaseTarget": "consumer",
"AvailableCoins": [
"bonus"
],
"UnavailableCoins": null,
"Amount": null,
"Percentage": 5
}
}
]
},
16
{
"ID": "payment",
"Modifiers": [
{
"Type": "basic_fee",
"Order": 0,
"Config": {
"DecreaseTarget": "consumer",
"IncreaseTarget": "merchant",
"AvailableCoins": [
"regular",
"bonus"
],
"UnavailableCoins": null,
"FeeTarget": "issuer",
"CoinID": null,
"Amount": null,
"Percentage": 100,
"FeePercentage": 2
}
}
]
}
]
Predefined Modifiers :
basic
basic_fee
max_use
dependent
tiered
tiered_dependent
time_tiered
© 2017 orb, inc.
ウェブベースのツールにより開発効率の大幅な向上を実現
17
Web-based Configuration Tool Transaction-behavior Test Tool
© 2017 orb, inc.
Orb DLTの性能評価システム@Oracle Cloud
• 48 x Oracle Compute Cloud (OC3 w/ Oracle Linux)
– 2 vCPU (H/W thread), 7.5 GB DRAM
– 128GB (-1TB) SSD
– Cost : 15000 yen/month
18
SSD Storage
Orb
DLT
Orb
DLT
Orb
DLT
・・・
SSD Storage
Orb
DLT
Orb
DLT
Orb
DLT
・・・
SSD Storage
Orb
DLT
Orb
DLT
Orb
DLT
・・・
16 node 16 node 16 node
© 2017 orb, inc.
支払いトランザクション処理を用いたベンチマーク
• データ
– 6千万ユーザレコード / ノード(データ量:約10GB/ノード)
– ユーザID、残高等からなるレコード
– 事前に十分な残高をチャージ
– レプリケーション数:3
• 支払いトランザクション処理(Apolloレベル)
– ユーザから別のユーザへの支払い(ユーザは一様乱数で選択)
– ACIDを保証して実行
19
© 2017 orb, inc.
トランザクションスループット
20
Orb DLTの高い性能とスケーラビリティを実証
(I/O性能に対してCPU性能が低いため、各ノードのCPUで性能が律速.
CPU資源の増加により数万TPSは容易に実現可能)
0
500
1000
1500
2000
2500
3000
3500
0 12 24 36 48
TPS
#	of	nodes
Multi-DCによる若干
の性能低下を確認
© 2017 orb, inc.
補足:Orb DLT の研究開発における検証方針
• トランザクション整合性検証
– 独自の分散破壊的テストツールにより最悪ケースの検証を長期間
実施
– Jepsen(整合性検証フレームワーク)も活用
• 性能検証
– ハードウェア性能と処理内容から想定される論理限界との比較を
重視
21
© 2017 orb, inc.
まとめ
• Orbでは独自の分散型台帳技術Orb DLTに基づくプラットフォームソ
フトウェアを鋭意研究開発中
• 高い革新性と高い実用性の両立を志向
– Apollo:非中央管理型でデータを統合的に扱うデータOS
– Core:複雑なユースケースを簡潔・柔軟に解決するミドルウェア
– Toolbox:ドメイン特化型のソリューションを提供するツール群
• オラクルクラウドを用いた実験により高いスケーラビリティを実証
22
© 2017 orb, inc.
マイクロベンチマーク
23
CPU Storage
0
500
1000
1500
2000
2500
single	process	 parallel	process
Index	Score	from	UnixBench
Oracle AWS
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
Oracle AWS
IOPS
© 2017 orb, inc.
Amazon EC2との比較
24
Oracle Cloudにおける高いスケーラビリティを確認
0
500
1000
1500
2000
2500
3000
3500
0 12 24 36 48
TPS
#	of	nodes
Oracle AWS

Orb dlt technical_overview(特許情報なし)

  • 1.
    分散型台帳技術Orb DLTの紹介 25 Jul,2017 Hiroyuki Yamada CTO at Orb 1
  • 2.
    © 2017 orb,inc. 自己紹介 • ⼭⽥浩之 (情報理⼯学博⼠ 東京⼤学) • 専⾨:データベースシステム、並列分散システム • 東京⼤学⽣産技術研究所 – ⾼性能・スケーラブルな次世代並列分散データ管理システムの研究開発 • 経産省未踏ソフトウェア クリエータ – 次世代分散データベースシステムの研究開発 – (スーパークリエータに認定) • Yahoo! Japan, IBM Japan – 分散検索エンジン、⾼性能データベースカーネルの研究開発 2
  • 3.
    © 2017 orb,inc. Orbの事業内容の紹介 お客様の通貨や契約アプリケーションにおけるトランザクション処理・管理を担う専門部隊 3
  • 4.
    Orb DLTの技術的な方向性 4 (Distributed) Transaction 19801970 19902000 2010 2020 Blockchain Nakamoto論⽂ Ethereum Sidechain Transaction (Jim Gray – Turing Award Winner) Paxos Consensus (Lamport – Turing Award Winner) Distributed Transaction Spanner (Google) Raft Orb1 Orb DLT Private CP Public A(P) Secure Decentralized Transaction P2P File Sharing PIER, PeerDB (Non-transactional Query Processing) X Decentralization Tamper Evidence Private/Consortium CP No Finality No Scalability No Availability Oracle Performance Scalability Availability
  • 5.
    © 2017 orb,inc. Orb DLT : Orb Distributed Ledger Technology 分散トランザクション技術とブロックチェーン技術の 融合 独自の非中央管理型分散トランザクションシステム 独自の高い耐改ざん機構 通貨、契約のための汎用ミドルウェア コンソーシアム型、プライベート型のユースケースに フォーカス 5 Orb DLT Orb DLT Orb DLT Orb DLT NodeData Center 高い改ざん耐性を有する非中央管理型分散トランザクションシステム
  • 6.
    ユースケース例:カード決済ネットワーク 分散型台帳技術による非中央集権的な決済の実現 会員(カード利用者) 加盟店 イシュア (カード発行会社) アクワイアラ (加盟店契約会社) 利用代金請求 代金支払い 売上データ 支払い 売上データ代金支払い 会員(カード利用者) 加盟店 決済履歴台帳 カード会社の台 帳をもとに伝票 を取り回す 地域通貨発行事業体 (地方銀行、商店街、 商工会議所など) 地域通貨精算業 (地方銀行) Wallet App POS/CCT 台帳台帳 台帳 台帳 決済情報 売上明細 6
  • 7.
    © 2017 orb,inc. Orb DLT アーキテクチャ TOOLBOX for domain-specific solutions : 入金、決済、クリアリング、清算等のライブラ リ/SDK群 CORE for complex use cases : 通貨および契約等におけるトランザクションを 管理するミドルウェア APOLLO for platform innovation : データの管理・処理を特定の計算機に依らずに 実行する非中央管理型のデータオペレーティン グシステム 7 Oracle Cloud, @Customer, On-Premise Apollo : Decentralized Data Operating System CoinCore ContractCore Wallet App Smart Coin Custom App Custom App Storage Transaction Analytics Toolbox OrbDLT QueryCore
  • 8.
    Orb DLTとその他の分散型台帳技術との比較 8 コンソーシアム・プレイベート型トランザクション技術における比較 Blockchain (Ethereum) HyperLedger (Fabric) Orb1 (2015) Orb DLT Enterprise In-memoryDB Decentralized Control ○ ○ (→ ?) △ ○ - Tamper Evidence ○ ○ ○ ○ - Consistency X ○ △ ○ ○ Finality (Atomicity) X ○ ○ ○ ○ Performance X X (→ ?) X ○ ◎ Scalability X X (→ ?) X ○ ○ Availability X ○ △ ○ ○ Integrated Storage and Analytics X X X ○ ○ Ease of Use (for Coin/Contract apps) X X X ○ -
  • 9.
    © 2017 orb,inc. ブロックチェーンの課題とOrb DLTでの解決方法:Finality, Consistency 不特定多数のノードにおける過半数合意 => 合意不可能(No Finality) 特定多数のノードにおける過半数合意 Blockchain Orb DLT 9
  • 10.
    © 2017 orb,inc. FYI : Blockchain is a Probablistic State Machine [ICDCS workshop’16] 10
  • 11.
    © 2017 orb,inc. ブロックチェーンの課題とOrb DLTでの解決方法:Performance TX TX TX TX TX TX TX TX TX TX TX TX TX TX TX TX TX TX TX TX ブロックの単一リスト構造による原理的に低い並列性 (加えて、性能とノード数(計算資源)は直交 : P = c) TXレコードのDAG構造による高い並列性 Blockchain Orb DLT 11 A B C D TX 始点または終点が衝突したときにデータが衝突 t
  • 12.
    © 2017 orb,inc. ブロックチェーンの課題とOrb DLTでの解決方法:Scalability 全データを全ノードに複製 DVi = DV (DV: Total amount of data) データを複数のノードに複製 DVi = DV / N・RF (RF: Replication Factor << N) TX TX TX TXTX TX TX TX TXTX Blockchain Orb DLT 12
  • 13.
    © 2017 orb,inc. ブロックチェーンの課題とOrb DLTでの解決方法:Availability 13 1ノードで検証後にクライアントに応答 伝播する前にノード群に障害が発生した場合は データ消失の危険性あり Quorum(定足数)への書き込み完了後に クライアントに応答 (実際には2では複数回のコンセンサスおよび永続化を実施) TX TX TX TXTX TX TX TX TXTX Blockchain Orb DLT 1 2 3 1 2 3
  • 14.
    © 2017 orb,inc. 統合されたストレージと解析エンジン 14 トランザクションデータとアプリ ケーションデータをApolloで統合的 に管理 トランザクション処理だけでなく、 当該処理において作成されたデータ の柔軟な解析が可能 様々なアプリケーションにおける実 用的なプラットフォームを志向 Analytics QueryCore Application Storage Transaction CoinCore Ledger Application-specific data
  • 15.
    © 2017 orb,inc. Core - 通貨や契約における処理の振る舞いを柔軟に定義可能なミドルウェア群 • アプリケーション共通の機能を汎用化 • Apolloの複雑性を隠蔽 • 複雑なことを簡単に実現 15 Driver Transaction Analytics Coin Account Query Storage Apollo Core Model your client’s organization Design and deploy your client’s economy Aggregate your client’s data as you like
  • 16.
    © 2017 orb,inc. CoinCore - 通貨におけるトランザクションの振る舞いを柔軟に定義可能なミドルウェア 地域通貨の例 • Regularコイン、Bonusコイン、Merchantコ イン • チャージ – A銀行がユーザに指定額のRegularコ インを付与 – チャージしたRegularコインの5%分 のBonusコインをチャージボーナス 消費者に付与 • 支払い – 消費者はRegularコインもしくは Bonusコインから必要な額のコイン を加盟店に支払い – A銀行は手数料として支払額の2% を加盟店から徴収 [ { "ID": "charge", "Modifiers": [ { "Type": "basic", "Order": 0, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "regular" ], "UnavailableCoins": null, "Amount": null, "Percentage": 100 } }, { "Type": "basic", "Order": 1, "Config": { "DecreaseTarget": "issuer", "IncreaseTarget": "consumer", "AvailableCoins": [ "bonus" ], "UnavailableCoins": null, "Amount": null, "Percentage": 5 } } ] }, 16 { "ID": "payment", "Modifiers": [ { "Type": "basic_fee", "Order": 0, "Config": { "DecreaseTarget": "consumer", "IncreaseTarget": "merchant", "AvailableCoins": [ "regular", "bonus" ], "UnavailableCoins": null, "FeeTarget": "issuer", "CoinID": null, "Amount": null, "Percentage": 100, "FeePercentage": 2 } } ] } ] Predefined Modifiers : basic basic_fee max_use dependent tiered tiered_dependent time_tiered
  • 17.
    © 2017 orb,inc. ウェブベースのツールにより開発効率の大幅な向上を実現 17 Web-based Configuration Tool Transaction-behavior Test Tool
  • 18.
    © 2017 orb,inc. Orb DLTの性能評価システム@Oracle Cloud • 48 x Oracle Compute Cloud (OC3 w/ Oracle Linux) – 2 vCPU (H/W thread), 7.5 GB DRAM – 128GB (-1TB) SSD – Cost : 15000 yen/month 18 SSD Storage Orb DLT Orb DLT Orb DLT ・・・ SSD Storage Orb DLT Orb DLT Orb DLT ・・・ SSD Storage Orb DLT Orb DLT Orb DLT ・・・ 16 node 16 node 16 node
  • 19.
    © 2017 orb,inc. 支払いトランザクション処理を用いたベンチマーク • データ – 6千万ユーザレコード / ノード(データ量:約10GB/ノード) – ユーザID、残高等からなるレコード – 事前に十分な残高をチャージ – レプリケーション数:3 • 支払いトランザクション処理(Apolloレベル) – ユーザから別のユーザへの支払い(ユーザは一様乱数で選択) – ACIDを保証して実行 19
  • 20.
    © 2017 orb,inc. トランザクションスループット 20 Orb DLTの高い性能とスケーラビリティを実証 (I/O性能に対してCPU性能が低いため、各ノードのCPUで性能が律速. CPU資源の増加により数万TPSは容易に実現可能) 0 500 1000 1500 2000 2500 3000 3500 0 12 24 36 48 TPS # of nodes Multi-DCによる若干 の性能低下を確認
  • 21.
    © 2017 orb,inc. 補足:Orb DLT の研究開発における検証方針 • トランザクション整合性検証 – 独自の分散破壊的テストツールにより最悪ケースの検証を長期間 実施 – Jepsen(整合性検証フレームワーク)も活用 • 性能検証 – ハードウェア性能と処理内容から想定される論理限界との比較を 重視 21
  • 22.
    © 2017 orb,inc. まとめ • Orbでは独自の分散型台帳技術Orb DLTに基づくプラットフォームソ フトウェアを鋭意研究開発中 • 高い革新性と高い実用性の両立を志向 – Apollo:非中央管理型でデータを統合的に扱うデータOS – Core:複雑なユースケースを簡潔・柔軟に解決するミドルウェア – Toolbox:ドメイン特化型のソリューションを提供するツール群 • オラクルクラウドを用いた実験により高いスケーラビリティを実証 22
  • 23.
    © 2017 orb,inc. マイクロベンチマーク 23 CPU Storage 0 500 1000 1500 2000 2500 single process parallel process Index Score from UnixBench Oracle AWS 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 Oracle AWS IOPS
  • 24.
    © 2017 orb,inc. Amazon EC2との比較 24 Oracle Cloudにおける高いスケーラビリティを確認 0 500 1000 1500 2000 2500 3000 3500 0 12 24 36 48 TPS # of nodes Oracle AWS