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
DAppのデプロイ戦略 / DApp Deployment Strategy
Search
wshino
July 13, 2018
Technology
3
1.8k
DAppのデプロイ戦略 / DApp Deployment Strategy
7/13のDApps Meetup Tokyo #1の発表資料です
wshino
July 13, 2018
Tweet
Share
More Decks by wshino
See All by wshino
Past, Present and Future
wshino
1
450
libp2p
wshino
7
1.3k
Superiority of Rust
wshino
3
370
Try Cross Compile Then Fail
wshino
0
150
GORMOS - A high performance and scalable design for decentralized applications -
wshino
4
1.8k
Sharding
wshino
4
1.1k
Plasma Debit
wshino
2
2k
ブロックチェーン技術の登場とスマートコントラクト化する社会
wshino
5
5.3k
Truffle + Drizzle と、Ethereumの概況について
wshino
2
1.2k
Other Decks in Technology
See All in Technology
マルチドライブアーキテクチャ: 複数の駆動力でプロダクトを前進させる
knih
0
370
AIと共に開発する時代の組織、プロセス設計 freeeでの実践から見えてきたこと
freee
4
730
Lazy Constant - finalフィールドの遅延初期化
skrb
0
220
米軍Platform One / Black Pearlに学ぶ極限環境DevSecOps
jyoshise
2
470
Flutterにしてよかった?出前館アプリを2年運用して気づいたことを全部話します
demaecan
0
220
はじめての OSS コントリビューション 〜小さな PR が世界を変える〜
chiroito
4
340
個人から巡るAI疲れと組織としてできること - AI疲れをふっとばせ。エンジニアのAI疲れ治療法 ショートセッション -
kikuchikakeru
4
1.3k
Dart and Flutter MCP serverで実現する AI駆動E2Eテスト整備と自動操作
yukisakai1225
0
560
AIと自動化がもたらす業務効率化の実例: 反社チェック等の調査・業務プロセス自動化
enpipi
0
640
仕様駆動 x Codex で 超効率開発
ismk
2
1.5k
What's the recommended Flutter architecture
aakira
3
2k
ユーザーストーリー x AI / User Stories x AI
oomatomo
0
210
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
960
Fireside Chat
paigeccino
41
3.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Designing for humans not robots
tammielis
254
26k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
It's Worth the Effort
3n
187
28k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Become a Pro
speakerdeck
PRO
29
5.6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
DAppのデプロイ戦略 DApps Meetup Tokyo #1 2018.7 DMM.comラボ スマートコントラクト事業部 篠原航
本日のアジェンダ • Smart ContractのUpgrade課題 • Upgradeable Contract • Function Callの問題
自己紹介 篠原航 DMMスマートコントラクト事業 部テックリード。計算リソース の効率化、継続的デリバリや デプロイの開発を支える仕組 み作り、ウォレットの実装を担 当。最近ヨーヨーにはまってい たが上達しないのですでに飽 きた。
https://www.amazon.co.jp/dp/4839965137/
Smart ContractのUpgrade課題 Upgradeable Contract Function Callの問題 Section01 Section02 Section03
Smart Contractは更新ができない • Webサービスのメリットは更新できること • 継続的デリバリ、インテグレーションができないとどうなるのか
更新ができないとこうなる • 新しい機能が実装できない • バグに対処できない • MVP(Minimum Viable Product)に使えない •
パッケージ製品の負の属性を帯びる 誤植発見 新しいの 送ります
Smart ContractのUpgrade課題 Upgradeable Contract Function Callの問題 Section01 Section02 Section03
Upgradeabilityの提案と実装 • ERC897, ERC820, ERC165 ◦ なかじょーさんの資料が詳しい • ZeppelinOS •
AragonOS https://speakerdeck.com/nakajo2011/upgradablity-smartcontract
ZeppelinOS • OpenZeppelinを作成しているZeppelinが開発 • 更新できるコントラクトを実現 • 標準ライブラリの提供 • Function Callを使ったProxy
Pattern
ZeppelinOS 制限事項 • 変数を消すことはできない ◦ 継ぎ足ししかできない • コンストラクタは使えない ◦ コンストラクタはブロックチェーンに残らない
◦ なのでProxyからは絶対に呼べない
AragonOS • Upgradeability • Modular • Proxy Pattern ◦ Base
Contractにビジネスロジックを記述 ◦ Proxyにコントラクトへのアドレスを記述
AragonOSの投票制度 • AragonはDAOを実現するためのプロジェクト • 投票によりコントラクト実行を行う手法 ◦ コントラクトへの実行は一旦プールされる(Forwarder Contract) ◦ 組織の参加者で一定期間投票する
◦ 投票により可決されたらコントラクトが実行される ◦ upgradeも投票制度に
Smart ContractのUpgrade課題 Upgradeable Contract Function Callの問題 Section01 Section02 Section03
FunctionのMethod ID • FunctionはMethod IDを持つ • Method IDはFunction Nameをハッシュ化して最初の4バイト •
get()の場合 1. bytes4("sha3(get()")) 2. bytes4(6d4ce63caa65600744ac797760560da39ebd16e8240936b51f53 368ef9e0e01f) 3. 0x6d4ce63c
Function Call • function.call((bytes4(sha3("get()")))) • 最初の4バイトが重複し意図しない動作をする可能性 • ZeppelinOSはNomic labsによってこの脆弱性が指摘されている
他の手法の提案 • Main ChainとSide Chainで構成する • 利用者が所持するステートコントラクトをMain Chainに • 更新が頻繁に行われるロジックコントラクトはSide
Chainに Main Chain Side Chain Side Chainの参照先を Main Chainに記述。 Side Chainは交換可能に する。
他の手法の提案 • Loom Networkが提供しているDApp Chain, Zombie Chain
• DMMでは様々な人材を募集しています ◦ https://dmm-corp.com/recruit/top • 遊びに来てね 最後に