Slide 1

Slide 1 text

INTRODUCTION TO LINEAR Network LINE Corporation Blockchain Lab Shiki Takahashi

Slide 2

Slide 2 text

高橋 史季 Shiki Takahashi Software Engineer @LINE Blockchain Lab ・ 現在の業務 - LINK ScanのStorage周りの開発 ・ 個人的に今気になっているBlockchain – Ethereum2.0, Zilliqa, EOS ABOUT ME

Slide 3

Slide 3 text

1. Ethereum周辺の現在 2. LINEAR Networkとは 3. LINEAR Networkにおけるトランザクションの流れ 4. まとめ

Slide 4

Slide 4 text

・ LINK Chainのスケーリング方法(LINEAR Network)について理解する ・ LINEAR Networkのトランザクションフローについて理解する 今回のプレゼンテーションのゴール

Slide 5

Slide 5 text

Ethereum周辺の現在

Slide 6

Slide 6 text

https://www.stateofthedapps.com/stats Ethereum周辺の現在 Current Status ・ 1日当たりのDAU → Total DAU 14,000(Top DAU:3,651) ・ 1日当たりのトランザクション数 → 62290 TX/day ・ DAppsのカテゴリー → ゲームが中心

Slide 7

Slide 7 text

・ DAU、トランザクション数で見ても一般ユーザを取り込んだサービスは まだ登場していないという印象 ・ Ethereum自身はスケーラビリティ問題を抱えている ・ 今後、トランザクション数が増えると2017年の年末に話題になった CryptoKittiesのような「猫詰まり」の再来 Problem Ethereum周辺の現在

Slide 8

Slide 8 text

・ スケーラビリティ問題が解決するまではPrivate Chainでの運用を 行うサービスもある ・ 現在、スケーラビリティ問題を解決するソリューションの 研究・開発が進められている → Raiden Network, Plasma, Sharding Solution Ethereum周辺の現在

Slide 9

Slide 9 text

LINEAR Networkとは

Slide 10

Slide 10 text

LINEのプラットフォームとしての特徴 ・ 高いMAU(日本: 約7,800万人 日本・タイ・台湾・インドネシアの主要4カ国: 1億6,500万人) ・ 1日当たりのトランザクション数(50億メッセージ/day) ・ 様々な分野のサービスを展開 (LINE MUSIC、LINEマンガ、LINEバイト、LINE NEWS、LINEほけん…etc) Current Status

Slide 11

Slide 11 text

・ LINEというプラットフォームを通してすでに日本だけで7,800万人以上のユーザが いるため、dAppを利用するには、1つのChainではTPSが足りない Problem LINEのプラットフォームとしての特徴

Slide 12

Slide 12 text

→ LINEAR Network ・ 各dAppごとにChainを用意して、全体のTPS向上を図る Solution LINEのプラットフォームとしての特徴

Slide 13

Slide 13 text

・ 1つのRoot Chainと複数のLeaf Chainから形成される ・ 各Leaf ChainにdAppをデプロイする ・ Leaf Chain間の取引はKafkaを使ったRelayerを介して行われる ・ Root Chainではユーザ間の取引を行わず、Leaf Chain間の送金の仲介を管理する ・ Root ChainとLeaf Chainの2階層のみで3階層以上のレイヤー構造は作らない LINEAR Networkの概要 Leaf Chain A Root Chain Leaf Chain B Relayer Leaf Chain C

Slide 14

Slide 14 text

・Apache Kafkaを使用したアプリケーション ・ Root Chainで発行したトークンをLeaf Chainに配布 ・ Leaf Chain間のトークンの送金 Relayerとは Relayer Producer Consumer Kafka Cluster Producer Producer Consumer Consumer 役割

Slide 15

Slide 15 text

LINEAR Networkの今後 Relayer (Application) Protocol based Architecture Private Blockchain Public Blockchain NOW FUTURE LINK Chain LINEAR Network

Slide 16

Slide 16 text

Protocolとは Leaf Chain A Root Chain Leaf Chain B Leaf Chain C ・ アプリケーションを介さずにブロックチェーン 同士を接続するための仕組み ・ Public Blockchainとして公開するときにブロックチェーンの機能として追加予定

Slide 17

Slide 17 text

LINEAR Networkにおけるトランザクションの流れ 1. Chainの追加 2. dAppのDeploy 3. Tokenの発行 4. Chain間の送金

Slide 18

Slide 18 text

1. Chainの追加 ① Leaf Chainを構築する。 Leaf Chain A Leaf Chain Manger Contract Root Chain Root Chain Manger Contract Relayer Kafka Cluster Producer Consumer

Slide 19

Slide 19 text

1. Chainの追加 ② Root ChainにLeaf Chain AのためのRelayer Contractを配置する。 Leaf Chain A Root Chain Leaf Chain A Relayer Contract Leaf Chain Manger Contract Root Chain Manger Contract Relayer Kafka Cluster Producer Consumer

Slide 20

Slide 20 text

1. Chainの追加 ③ Root ChainのLeaf Chain Relayer Contract と Leaf Chain Manager Contractにアクセスできるユーザを追加する。 Leaf Chain A Root Chain user address user address Leaf Chain Manger Contract Root Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain A Relayer Contract

Slide 21

Slide 21 text

Leaf Chain A dApp Contract Root Chain 2. dAppのDeploy ① Smart ContractをDeployする。 Leaf Chain A Relayer Contract SO Address SO Address(Service Operator Address): dAppの管理者権限を持つAddress Leaf Chain Manger Contract Root Chain Manger Contract Relayer Kafka Cluster Producer Consumer

Slide 22

Slide 22 text

3. Tokenの発行 ① Root Chainのadmin userがLeaf ChainのためにTokenを発行する。 Leaf Chain A Root Chain Leaf Chain A Relayer Contract Leaf Chain Manger Contract Root Chain Manger Contract Relayer Kafka Cluster Producer Consumer dApp Contract SO Address T

Slide 23

Slide 23 text

② RelayerはToken発行イベントを検知して、Leaf Chainの Leaf Chain Manager ContractにToken発行をリクエストする。 Leaf Chain A Root Chain 3. Tokenの発行 Leaf Chain A Relayer Contract Leaf Chain Manger Contract Root Chain Manger Contract Relayer Kafka Cluster Producer Consumer dApp Contract SO Address T

Slide 24

Slide 24 text

③ Leaf Chain Manager Contractは発行対象のContractを探してTokenを 発行する。 Leaf Chain A Root Chain 3. Tokenの発行 Leaf Chain A Relayer Contract Leaf Chain Manger Contract Root Chain Manger Contract Relayer Kafka Cluster Producer Consumer dApp Contract SO Address T T

Slide 25

Slide 25 text

4. Chain間の送金 ① Leaf Chain AのユーザがLeaf Chain Bのユーザへ送金リクエストを 発行する。 Leaf Chain B dApp Contract Leaf Chain A Root Chain Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract T Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer dApp Contract SO Address SO Address

Slide 26

Slide 26 text

② 正常なリクエストの場合、送金する分のTokenをロックし、ブロックに記録する。 Leaf Chain B Leaf Chain A Root Chain OK 4. Chain間の送金 T Success! Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract dApp Contract SO Address SO Address

Slide 27

Slide 27 text

② 正常なリクエストでなければ、失敗の内容をブロックに記録する。 この場合Relayerには記録されない。 Leaf Chain B Leaf Chain A Root Chain 4. Chain間の送金 T NG Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address dApp Contract Failure…

Slide 28

Slide 28 text

③ RelayerはLeaf Chain Aの送金リクエストを検知して、Root Chainに伝える。 Leaf Chain B Leaf Chain A Root Chain 4. Chain間の送金 T OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address dApp Contract

Slide 29

Slide 29 text

④ Root ChainでLeaf Chain Aに発行したTotal Supplyを確認して、正常な リクエストであれば、Root Chainのブロックにトランザクションを 書き込む Leaf Chain B Leaf Chain A Root Chain OK 4. Chain間の送金 T OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address Success! dApp Contract

Slide 30

Slide 30 text

④ トランザクションが正常に処理されず失敗するとそれをブロックに 記録し、その結果が Leaf Chain Aに伝わり、ロックが解除される。 Leaf Chain B Leaf Chain A Root Chain NG 4. Chain間の送金 T OK NG Failure… Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address dApp Contract

Slide 31

Slide 31 text

⑤ RelayerはRoot ChainのLeaf Chain Bへの送金リクエストを 検知してLeaf Chain Bにリクエストを伝える。 Leaf Chain B Leaf Chain A Root Chain OK 4. Chain間の送金 T OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address dApp Contract

Slide 32

Slide 32 text

Leaf Chain B Leaf Chain A Root Chain OK NG ⑤ Leaf Chain Bが正常に動作しておらず、invokeが失敗する場合、 再度Root Chainを経由してLeaf Chain Aにトランザクションの失敗が 伝えられ、ロックが解除される。 4. Chain間の送金 T OK NG Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address dApp Contract Failure…

Slide 33

Slide 33 text

⑥ Leaf Chain Bは正常なリクエストであることを確認して、ユーザBに Tokenを送金して自身のChainで発行されているTokenのTotal Supplyを 増加させる。 Leaf Chain B Leaf Chain A Root Chain OK 4. Chain間の送金 T T OK OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address Success! dApp Contract

Slide 34

Slide 34 text

⑦ トランザクションの結果が、Relayerに伝わる。 Leaf Chain B Leaf Chain A Root Chain OK 4. Chain間の送金 T T OK OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address Success! dApp Contract

Slide 35

Slide 35 text

⑧ RelayerはLeaf Chain Bの送金が完了したことを検知してトランザクションの 結果をRoot Chainに伝える。 Leaf Chain B Leaf Chain A Root Chain OK 4. Chain間の送金 T T OK OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address dApp Contract

Slide 36

Slide 36 text

Leaf Chain B Leaf Chain A Root Chain OK OK ⑨ Root Chainは送金の結果を受け取り、ブロックに書き込む。 4. Chain間の送金 T T OK OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address Success! dApp Contract

Slide 37

Slide 37 text

⑩ RelayerはRoot Chainの送金リクエストの結果を検知して、 Leaf Chain Aにその結果を伝える。 Leaf Chain B Leaf Chain A Root Chain OK OK 4. Chain間の送金 T T OK OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address dApp Contract

Slide 38

Slide 38 text

Leaf Chain B Leaf Chain Manger Contract Dapp Contract OK Leaf Chain B Leaf Chain A Root Chain OK OK ⑪ Leaf Chain Aは送金の結果を受け取り、ロックを解除して全体のTotal Supplyを 差し引く。 4. Chain間の送金 T OK OK OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Relayer Kafka Cluster Producer Consumer Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address Success! dApp Contract

Slide 39

Slide 39 text

Relayer Kafka Cluster Producer Consumer ⑫ Leaf Chain Aのトランザクション結果はRoot Chainに送られ、ブロックに 記録される。 Leaf Chain B Leaf Chain A Root Chain OK OK OK 4. Chain間の送金 T OK OK OK Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract SO Address SO Address Success! dApp Contract

Slide 40

Slide 40 text

Relayer Kafka Cluster Producer Consumer Leaf Chain B Leaf Chain A Root Chain T Leaf Chain Manger Contract Root Chain Manger Contract Leaf Chain Manger Contract Leaf Chain B Relayer Contract Leaf Chain A Relayer Contract dApp Contract ※ SO Address ※ SO Address ① Request Transaction ② ③ ④ Send to Leaf Chain B ⑥ Receive a token ⑦ ⑧ ⑧ Send the response to Root Chain ⑨ ⑪ ③ Send to Root Chain Send request result from Root Chain ⑩ ⑫ Send the transaction result ⑤ Leaf Chain間の送金のまとめ ※ SO Address(Service Operator Address): dAppの管理者権限を持つAddress dApp Contract

Slide 41

Slide 41 text

まとめ

Slide 42

Slide 42 text

Ethereum LINE Current Status ・DAU:全体で約14,000 ・ゲームが中心 ・MAU: 日本だけで7,800万 ・ゲーム、ソーシャルから Financialと多岐に渡る 共通の課題 On Chainのスケーラビリティ問題に対応する 必要がある Raiden Network Plasma Sharding Private Chain Solution Relayer (Private Blockchain) Protocol (Public Blockchain) On Chain Now Future LINEAR Network

Slide 43

Slide 43 text

THANK YOU