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.7k
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
430
libp2p
wshino
7
1.3k
Superiority of Rust
wshino
3
360
Try Cross Compile Then Fail
wshino
0
140
GORMOS - A high performance and scalable design for decentralized applications -
wshino
4
1.8k
Sharding
wshino
4
1.1k
Plasma Debit
wshino
2
1.9k
ブロックチェーン技術の登場とスマートコントラクト化する社会
wshino
5
5.3k
Truffle + Drizzle と、Ethereumの概況について
wshino
2
1.2k
Other Decks in Technology
See All in Technology
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
4
3.8k
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
3
7.5k
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
300
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
250
Delegating the chores of authenticating users to Keycloak
ahus1
0
140
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
170
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
2
21k
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
130
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
2
7.6k
OPENLOGI Company Profile for engineer
hr01
1
34k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
47
19k
Backlog ユーザー棚卸しRTA、多分これが一番早いと思います
__allllllllez__
1
150
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Agile that works and the tools we love
rasmusluckow
329
21k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Unsuck your backbone
ammeep
671
58k
Scaling GitHub
holman
460
140k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Making Projects Easy
brettharned
116
6.3k
Code Review Best Practice
trishagee
69
18k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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 • 遊びに来てね 最後に