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
6.1k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Generalized State Channel
Ryuya Nakamura
July 19, 2018
More Decks by Ryuya Nakamura
See All by Ryuya Nakamura
本当に「時間がなかった」のか?
nrryuya
0
450
「弁護士バイアス」とその対処法
nrryuya
2
1.6k
AIオンボーディングとAIプロセスマイニング
nrryuya
5
3.1k
アルファを作る人になる
nrryuya
0
550
学生時代のキャリア探索の心がけ
nrryuya
0
380
フィードバックされやすい人になろう
nrryuya
36
25k
間違いが許されなくてもLLMが使えるユースケースとは @GenAI Playground Meetup #01
nrryuya
13
6.5k
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
4
2.8k
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
9
13k
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
The SEO Collaboration Effect
kristinabergwall1
1
500
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Agile that works and the tools we love
rasmusluckow
331
22k
So, you think you're a good person
axbom
PRO
2
2.1k
Documentation Writing (for coders)
carmenintech
77
5.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
WENDY [Excerpt]
tessaabrams
11
38k
Paper Plane
katiecoart
PRO
1
52k
How to Ace a Technical Interview
jacobian
281
24k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
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までお知らせください