Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Generalized State Channel
Search
Ryuya Nakamura
July 19, 2018
5
5.9k
Generalized State Channel
Ryuya Nakamura
July 19, 2018
Tweet
Share
More Decks by Ryuya Nakamura
See All by Ryuya Nakamura
AIオンボーディングとAIプロセスマイニング
nrryuya
5
1.9k
アルファを作る人になる
nrryuya
0
310
学生時代のキャリア探索の心がけ
nrryuya
0
210
フィードバックされやすい人になろう
nrryuya
31
22k
間違いが許されなくてもLLMが使えるユースケースとは @GenAI Playground Meetup #01
nrryuya
13
6.2k
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
4
2.5k
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
9
13k
20240130 エンプラDXにおける2024年の生成AIトレンド予測 @生成AI新年会2024
nrryuya
2
2.3k
20240125 開発側・ビジネス側という壁を作らない LLMアプリ開発 @生成AI Conf
nrryuya
8
4k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Scaling GitHub
holman
460
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
How STYLIGHT went responsive
nonsquared
100
5.6k
BBQ
matthewcrist
89
9.7k
Rails Girls Zürich Keynote
gr2m
95
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Code Review Best Practice
trishagee
69
19k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Transcript
Generalized State Channel @veryNR 2018.7
2 ©Gunosy Inc. 自己紹介 中村龍矢 @veryNR ▪ Gunosy Inc. –
データ分析部 2017年2月~ • 動画配信ロジックの開発など • Python, Go, SQL – 新規事業開発室 2018年6月~ • ブロックチェーンの研究開発 ▪ 経歴 – Coubic株式会社 • 営業をやっていました – 日本ヒューマンビートボックス協会 • お手伝い – 東京大学工学部システム創成学科 • 休学中
3 ©Gunosy Inc. State Channel 概説 – 基本 – 3つのタイプ
– Generalized State Channel Counterfactual – 単語 ”Counterfactual” – Counterfactual Address – マルチシグウォレット – 基本プロトコル – Meta Channel アジェンダ
4 ©Gunosy Inc. State Channel 概説
5 ©Gunosy Inc. State Channel ▪ 基本の流れ 1. チャンネルをオープンし、ステートをマルチシグでロック(デポジット) 2.
オフチェーンで状態遷移(コミットメント) 3. チャンネルのクローズ、オンチェーンでの反映 ▪ Payment Channelが有名 – Lightning Network, Raiden ▪ Ethereumの場合Payment以外のステートにも適用できる オフチェーンで状態遷移をして最終結果だけ書き込む方法
6 ©Gunosy Inc. State Channel の種類 ▪ Payment Channel –
ether、ERC20系トークンの送金 – Lightning Network, Raiden, Liquidity Network, Sprites ▪ Application-specific Sate Channel – 特定のアプリケーションに特化したチャンネル – FunFair, Gnosis ▪ Generalized State Channel – アプリケーションに依存しないチャンネル – 今回はこれについて話します! 3つの種類
7 ©Gunosy Inc. Application-specific State Channel: FunFair https://showcase.funfair.io/
8 ©Gunosy Inc. Application-specific State Channel: FunFair https://showcase.funfair.io/
9 ©Gunosy Inc. Generalized State Channel ▪ 「新しいアプリケーションを導入するとき、オンチェーンの操作が特に必要がない」チャンネル ▪ 既に別の目的で開いてあるチャンネルを他のアプリケーションを利用する時に活用できる
▪ ここ数ヶ月でホワイトペーパーが続々公開 – Perun, Celer Network, Counterfactual ▪ 今回はCounterfactualについて話します – L4 Mediaというチームのプロジェクト – 最も整理された設計 アプリケーションに依存しないチャンネル
10 ©Gunosy Inc. Counterfactual
11 ©Gunosy Inc. Counterfactual ▪ オンチェーンの処理をなるべく少なくする設計思想 – チャンネルを開く際に必要なのはマルチシグウォレットのデプロイだけ – まだオンチェーンに存在しないアプリケーションも利用できる
L4 Mediaの提案するGeneralized State Channelフレームワーク
12 ©Gunosy Inc. 単語 “Counterfactual” ▪ “Counterfactual X”の意味 1. Xがオンチェーンで起きるが、まだ起きていない
2. 参加者の誰でも一方的にXをオンチェーンで起こせる機構がある 3. 参加者がXが実際に起こったかのように振る舞うことができる ▪ 取引情報に全員が署名する(コミットメント)ことでその取引は Counterfactualになる – Lightning Networkはトランザクション自体に署名 – Raidenはjsonデータに署名 & オンチェーンに署名検証のロジック ▪ 古い状態もCounterfactualのまま残ってしまう – 古い状態が提出された場合のChallengeの仕組みが必要 → Counterfactual & Challenge可能 というのがState Channelの状態遷移 State Channelの本質的な概念
13 ©Gunosy Inc. Counterfactualのポイント 任意のアプリケーションの実行をオンチェーンの操作なしに、Counterfactualにできるか 1. Counterfactual addressing 2. マルチシグウォレット
3. デポジットのアサイン
14 ©Gunosy Inc. Counterfactual Address まだデプロイされていないコントラクトを参照する方法 ▪ デプロイされていないコントラクトを参照したい – まだオンチェーンにないアプリケーションやその他プロトコルに必要なもの
▪ 問題: デプロイされないとアドレスはわからない ▪ 解決策: デプロイせずに決定的に決まる値で参照する ▪ RegistryコントラクトがCounterfactual addressの管理を担当 – deploy() : デプロイと同時に実際のアドレスとの mappingを記録 – resolve(): Counterfactual addressから実際のアドレスを取得 • Ethereum Name Serviceと似ている ▪ Counterfactual object – この仕組みで未デプロイのコントラクトを生成してオフチェーンで利用
15 ©Gunosy Inc. マルチシグウォレット チャンネル開設で必要な唯一のコントラクト ▪ 一般的なマルチシグウォレット同様の機能 – マルチシグが保有できる任意のステートをデポジット可能 •
ether, ERC系トークン, non-asset state ▪ executeTransaction関数 – 署名されたコミットメントを受け取り任意の関数を実行する – DELEGATECALL/CALLによりオフチェーンの状態をCounterfactualにする
16 ©Gunosy Inc. デポジットのアサイン アトミックな状態遷移でデポジットを分割
17 ©Gunosy Inc. ▪ Instantiate – Counterfactual objectのRegistry経由でのデプロイにコミット ▪ CommitWithdrawal
– Counterfactual objectのstateを参照した引き出しにコミット ▪ Update – Counterfactual objectのstateの更新にコミット 基本プロトコル
18 ©Gunosy Inc. Meta Channel ▪ 各中継チャンネルでAlice-Bob Payment Objectの残高のProxy Objectへの反映をコミット
▪ HTLC方式との違い – 状態遷移ごとに仲介者に協力してもらう必要がない • 賭けチェスなどでは便利 – 仲介者にデポジットしてもらってその範囲で自由に使うイメージ Counterfactualにおける仲介の仕組み
19 ©Gunosy Inc. 終わりに ▪ PlasmaだけじゃなくてState Channelにも注目してね! ▪ 近日中に記事にします 間違い等あれば是非@veryNRまでお知らせください