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.8k
Generalized State Channel
Ryuya Nakamura
July 19, 2018
Tweet
Share
More Decks by Ryuya Nakamura
See All by Ryuya Nakamura
アルファを作る人になる
nrryuya
0
280
学生時代のキャリア探索の心がけ
nrryuya
0
190
フィードバックされやすい人になろう
nrryuya
31
21k
間違いが許されなくてもLLMが使えるユースケースとは @GenAI Playground Meetup #01
nrryuya
13
6.1k
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
4
2.5k
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
9
12k
20240130 エンプラDXにおける2024年の生成AIトレンド予測 @生成AI新年会2024
nrryuya
2
2.3k
20240125 開発側・ビジネス側という壁を作らない LLMアプリ開発 @生成AI Conf
nrryuya
8
3.9k
抜擢されるには
nrryuya
19
14k
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
120
52k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
620
Building an army of robots
kneath
305
45k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.3k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
Agile that works and the tools we love
rasmusluckow
329
21k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
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までお知らせください