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
Plasma Implementation in Vyper
Search
Ryuya Nakamura
August 30, 2018
Programming
450
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Plasma Implementation in Vyper
@blockchain.tokyo #11
Ryuya Nakamura
August 30, 2018
More Decks by Ryuya Nakamura
See All by Ryuya Nakamura
本当に「時間がなかった」のか?
nrryuya
0
480
「弁護士バイアス」とその対処法
nrryuya
2
1.7k
AIオンボーディングとAIプロセスマイニング
nrryuya
6
3.4k
アルファを作る人になる
nrryuya
0
570
学生時代のキャリア探索の心がけ
nrryuya
0
400
フィードバックされやすい人になろう
nrryuya
37
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
Other Decks in Programming
See All in Programming
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
120
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
120
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
AIの中の人になってみる
htkym
0
160
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
350
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
2
300
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
100
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
1
470
ALB ログから Trace を気合で繋げる技術
fohte
7
860
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
53
35k
新卒PdEのリアル
ryu1013
1
360
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Facilitating Awesome Meetings
lara
57
7.1k
Abbi's Birthday
coloredviolet
3
9.7k
Docker and Python
trallard
47
4.2k
Google's AI Overviews - The New Search
badams
0
1.6k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Chasing Engaging Ingredients in Design
codingconduct
0
300
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
KATA
mclloyd
PRO
35
15k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
510
Transcript
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 1 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Plasma Implementation in Vyper Aug-2018 @veryNR
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 2 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. 自己紹介 • LayerX Inc. ◦ Engineer/Researcher • Interests ◦ Plasma ◦ State Channel ◦ Vyper Twitter: @veryNR GitHub: nrryuya Ryuya Nakamura
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 3 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Plasma implementation in Vyper! https://github.com/LayerXcom/plasma-mvp-vyper Issues & pull requests are welcome!
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 4 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. 1:About LayerX R&D Team 2:Vyper Agenda 3:Plasma MVP in Vyper
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 5 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. 1. About LayerX R&D Team
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 6 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. About LayerX R&D Team • Ryuya Nakamura • Ex data engineer @Gunosy • Twitter: veryNR • GitHub: nrryuya • Osuke Sudo • Owner of the blog “Zoom” • Twitter: zoom_zoomzo • GitHub: osuketh
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 7 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. About LayerX R&D Team ポリシー • 新技術にコミット • キャッチアップで終わらない • 全てオープンにやる リサーチテーマ • Plasma • State Channel • Vyper • Automatic code audit • BLS signature • DEX, Protocols for financial derivatives • 研究開発を通したコミュニティへの貢献
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 8 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. 2. Vyper
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 9 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. • PythonライクなEVM向けスマートコントラクト言語 • 元々はVitalikが開発した言語 ◦ Casper FFGのコントラクトをVyperで書いたりしてた • Ethereum Foundationのgrant programにある • ベータ版なので本番ではまだ使われていない はず • 公開されている実装例 ◦ ◦ ◦ ◦ ▪ っぽい で、 もらってた Vyper
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 10 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Vyper Community • 氏 の人 が開 発の中心 • のレスは早い • 隔週でオンライン
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 11 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Vyper デザイン原則(公式ドキュメントより) • Security: ◦ 安全なスマートコントラクトを自然に開発できるように • Language and compiler simplicity: ◦ 言語とコンパイラの実装をシンプルに • Auditablity: ◦ コードは最大限human-readableに ◦ 読み手のシンプルさ > 書き手のシンプルさ →Pythonと近い
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 12 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. example: ERC20 in Vyper ↓ ↓ ↓
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 13 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Vyper features デザイン原則に基づいた、 と異なる特徴 • コンパイル時の決定性 ◦ なし ▪ ループはあるが には整数リテラルしか渡せない ◦ 配列のインデックスもリテラルのみ • オーバーフロー防止 ◦ 普通の演算子がオーバーフローを対策しているので、 不要 ◦ の指数に変数は渡せない • コンパクトなコンパイラ ◦ 実装のコンパイラ ◦ を中間言語に利用
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 14 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. What Vyper DOES NOT provide... デザイン原則から意図的に持たない機能 • の定義 ◦ 関数実行の前後に任意の処理を入れられて複雑、大抵は関数実行前に何か を確認する処理→シンプルに で代用 • コントラクトの継承 ◦ プログラムを読むのに複数ファイルを行き来しなくてはならない • インラインアセンブリ ◦ スタックマシンを意識して するのは本当に大変。。。 基本は改「善」と思うが、継承・無限ループが無いのはどうなんだ。。。
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 15 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Vyper tools • は の • 様々なエディタプラグイン ◦ • というツールが 互換の を作ってくれる • は開発中 • 的な はない ◦ というシンプルなコンパイラ アプリはある
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 16 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. 3. Plasma MVP in Vyper
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 17 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Plasma MVP in Vyper 目的 ①自分たちで を知るため 実際に使ってみて良し悪しを理解する 開発状況やコミュニティについて知る ② コミュニティのため まだ色々な仕様が議論中→実装例が求められている コントラクトは様々なロジックが必要 マークルプルーフ、署名検証、優先度つきキュー →ちょうど良いのでは?
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 18 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Plasma MVP in Vyper 実装したコントラクトは二つだけ • コントラクト ◦ チェーンとのやりとり ◦ ライブラリ呼び出しが まだ 無いので 関数としてここに実装 ▪ 署名検証 • コントラクト ◦ 優先度つきキュー
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 19 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Plasma MVP in Vyper • 仕様に関してSolidity実装と違いはほぼ生まれなかった ◦ priority queueのサイズに制約を加える必要はあった ◦ finalizeExit関数で無限ループが使えなかったため • 実装の違いは生まれた→主に「現状の」 の制約によるもの ◦ 元々 コントラクトでは継承が無く、 も だけ → のデザイン原則による 実装に悪影響はなさそう • 各種ビルトイン関数で実装が減った ▪ 不要 ▪ デコード、バイト列のスライスの関数も実装不要 ※詳しい実装の違いは の記事をご覧ください で を実装しました
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 20 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Hard things ①デバッグ • デバッガがない • そもそもコントラクトは デバッグができない ◦ も したら発行されない • でひたすらビルド デプロイ • コードをコメントアウトしながら の位置を探す
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 21 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Hard things ② デコーダーのデプロイ • の 関数はオンチェーンのコントラクトを する仕組み ◦ や の みたいな • など 環境で使うは事前にデプロイが必要 • を実装しました ※ ドキュメントに書いてあるアドレス・ データは使えない(?)
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 22 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Contribution • 開発がてら少しだけコントリビュート ◦ ドキュメント修正プルリク バグの報告 ◦ ▪ 定数の導入 ▪ 型のみを論理値として使う ▪ 時間に関するビルトイン定数 • の反響 ◦ 界ではそこそこ? ▪ リポジトリに入ることに ◦ 署名からアドレスを取得する関数の導入が決定
CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights
reserved. 23 CONFIDENTIAL : copyright © by 2018 LayerX Inc. all rights reserved. Summary • は書き 読みやすくて素敵! • 新しい言語を作っていくのは楽しい • 今後も やっていきたい ◦ の 対応 間違いのご指摘やご意見は までお願いします