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
DAICOを実装してみた
Search
syrohei
February 02, 2018
Research
0
11k
DAICOを実装してみた
communityはこちら =>
http://community.dri.network
syrohei
February 02, 2018
Tweet
Share
More Decks by syrohei
See All by syrohei
しっかり学ぶICOのベストプラックティス
syrohei
5
2.9k
Other Decks in Research
See All in Research
リモートワークにおけるパッシブ疲労
matsumoto_r
PRO
4
3.2k
湯村研究室の紹介2024 / yumulab2024
yumulab
0
350
機械学習でヒトの行動を変える
hiromu1996
1
390
論文読み会 KDD2024 | Relevance meets Diversity: A User-Centric Framework for Knowledge Exploration through Recommendations
cocomoff
0
110
Embers of Autoregression: Understanding Large Language Models Through the Problem They are Trained to Solve
eumesy
PRO
7
1.2k
ミニ四駆AI用制御装置の事例紹介
aks3g
0
180
チュートリアル:Mamba, Vision Mamba (Vim)
hf149
5
1.7k
精度を無視しない推薦多様化の評価指標
kuri8ive
1
290
[2024.08.30] Gemma-Ko, 오픈 언어모델에 한국어 입히기 @ 머신러닝부트캠프2024
beomi
0
810
Large Vision Language Model (LVLM) に関する最新知見まとめ (Part 1)
onely7
22
4.9k
非ガウス性と非線形性に基づく統計的因果探索
sshimizu2006
0
440
PostgreSQLにおける分散トレーシングの現在 - 第50回PostgreSQLアンカンファレンス
seinoyu
0
120
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Become a Pro
speakerdeck
PRO
26
5k
Git: the NoSQL Database
bkeepers
PRO
427
64k
BBQ
matthewcrist
85
9.4k
RailsConf 2023
tenderlove
29
940
Gamification - CAS2011
davidbonilla
80
5.1k
Producing Creativity
orderedlist
PRO
341
39k
Making Projects Easy
brettharned
116
5.9k
Thoughts on Productivity
jonyablonski
67
4.4k
Done Done
chrislema
181
16k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Transcript
DAICOを実装してみた 2018/2/2 千賀 優作 Yusaku Senga DRI代表
[email protected]
@syrohei
自己紹介・DRI (分散技術総合研究所) について 2 ミッション ブロックチェーンを始めとする 分散技術によって、あらゆる取引と 価値保存をスマートにする RICO オープンソースとして開発している
Decentralized ICOフレームワーク DRIは、トークンエコノミーの基盤となる技術を作る、DAO志向のエンジニア集団です
DAICOってなに? 参考: https://ethresear.ch/t/explanation-of-daicos/465 DAICO(本人曰く ディ・エィ・アイシーオー)は、1月6日にVitalikが提案した、分散型自立 組織(DAO) と Initial Coin Offering
(ICO)の両方の機能を持つICO手法 - Ethereum Research forumで発表された - forumの中でダントツでView数が多く、 コメントも活発にやり取りされている - “Better ICOs” がホットトピックに 3
投資家・開発チーム双方に、プロジェクトを前進させる責任を持たせる 開発チームが毎月利用できる資金量を、投票でコントロールする - 結果を出している良いチームなら、支援者は毎月利用できる資金量を増や して応援する - 開発をバックれたチームからは、資金を返金させる 結果的に、詐欺的なICOを実施できない環境を作り出す DAICOの目的 4
DAICOは主に2つのことができる - チームが毎月引き出せる資金量をコントロール - 調達したETHは、トークホールダーの投票で引き出し可能量 tap(wei/sec)を上げることが可能 - プロジェクトオーナーはtapを自主的に下げることが可能 - 投票により、プロジェクトの解散・残った資金の回収が可能
(withdraw modeに移行) DAICOの提案仕様 参考: https://gist.github.com/takashi/738779681e31c92cabbcd3c6ba87a7aa 5
あらゆる投票には、様々な攻撃が予想される。 - もし攻撃によってtapが上昇したら? - 良識あるチームなら、tapを下げて元に戻すはずだし、必要な分しか引 き出さないはず。 - 開発者が開発を停止・資金を濫用しだしたら? - 投票者はtapを上昇させない、もしくは投票によってプロジェクトを解散
させる - 51%攻撃によってプロジェクトが解散されたら? - もう一度DAICOコントラクトを作り直せばいい DAICOはセキュリティリスクを最小化するアイデア 参考: https://gist.github.com/takashi/738779681e31c92cabbcd3c6ba87a7aa 6
コンセプトは非常に面白い! しかし懸念も... - トークンホールダー達が結託すると意味がないのでは? - The DAOの時のように、期待するほど投票するインセンティブが ないのでは? → (有権者の無関心問題)
議論だけではどうにもならないし、僕たちはプログラマーなので、 まずは実装してみよう! 見た時の感想・・・ 7
2日後・・・・ 8
DAICOを実装! (たぶん世界初) RICOの機能として 利用できるようにしました! (英語と日本語で解説記事を 出しました) 参考: https://blog.dri.network/the-first-implementation-of-daico-4b90d9668471 9
資金を集めるコントラクトは、RICOそのままの機能 DAICOはまず、寄付を募るContribution modeからスタートする - 資金を集めるための方法一覧として説明されているもの - キャップ付きセール - キャップ無しセール -
ダッチオークション - KYC付きセール - etc... RICOはこれらをモジュールとして選択・カスタマイズして組み込める 10
RICOを使っているからこそ簡単にできること RICOは Proof of Donation (PoD)という設計を提案・採用 寄付をトリガーとし、複数のコントラクトを数珠つなぎに利用できる。モジュール はPoD Moduleと呼ばれ、柔軟にカスタマイズ可能。 例)
11 ETH SimpleICO DAICO MultisigWallet ETH DutchAuction DAICO MultisigWallet ETH [Pre-Sale] SimpleICO [Public-Sale] DutchAuction DAICO MultisigWallet
- 投票モデルは全て独自実装 - 投票のための最低保持トークン量を規定 複数アドレスによる投票には、大量のトークンロックが必要 - Proof of Stakeに近い意思決定モデル
ロックしたトークンの量によって実行権利が与えられる DAICOの投票機能 実装で意識したこと 12 プロポーザルの送信 Tokenを一定量ロックして投票 投票の方法 ↑ と同等の方法 議決権の数 格差是正のため、1アドレス当たり1票 可決票数の閾値 計算式: 賛成票 - 反対票 - 不投票/6 > 0
実装して見えた現状のDAICOの問題点 - ICOのトークン市場価格がICO時の取得価格を割ると、コミュニティは解散 するインセンティブが大きくなる (ETHを取得価格でコントラクトから引き出す) - tapを引き上げるコミュニティ投票のインセンティブがあまりない。 - Proposalを出し続けて他の人が提出できないように妨害できる (DDoSアタック)
- アドレスを増やして攻撃しようとする行為(シビルアタック) - 今回の実装では投票のための最低保持トークン量を規定 13
実装した結論 DAICOはまだ議論され始めたばかりなので、今のタイミングでの実戦投入はお 勧めできない。 とはいえ、改良を続ければ、間違いなくこれまでよりもフェアなICOが実現でき る。 また、DAICOを採用したICOプロジェクトはコミュニティーと密接に 関わり合うことができ、良い影響を受けるようになる 14
本日の会で共有したい、DAICOの改良アイデア - トークンのロック期間を投票時だけでなく、一定期間強制する (TendermintやCasper-FFGに近いアプローチ) - Proposalを出すアドレスに手数料を支払わせる (DDoS攻撃の防衛) - Slasherなどの懲罰モデルを作る 同一経路からのデポジットアドレスに対し、複数投票を禁止する。違反する
と没収する。 (投票インセンティブの強化とシビルアタックの防衛) - AddressにKYCを設ける(Fungibilityが損なわれる?) 15
まとめ DAICOは、コミュニティドリブンによる健全なICOの第一歩 - 業界からこういったものが提案され続けることで、ICOをバブルで 終わらせるのでなく、本当に世界を変える仕組みにするのだと思う - とは言え、まだまだ改善が必要で、今すぐ役立つものではない - 今回実装した“トークンによる投票モデル”はシビルアタックに弱く、具体的 な対策方法はまだ検討が必要
- RICOを使えば、DAICOやその他のICO手法を簡単に実装でき、 組み合わせることができる! 16
17 スマートコントラクトに興味がある方、 RICOやDAICOのコードで勉強しながら この熱いトピックとOSSにコミットしませんか? 一緒にICOの未来を作りましょう!
18 community.dri.network github.com/DRI-network/RICO DRI.network Come hang out :) Branch: daico-pod
Channel: #rico_ja
参考文献 - Solidityの仕様など - https://solidity.readthedocs.io/en/latest/ - Designing the “Fair ICO”
- https://docs.google.com/document/d/1hnMjwaaYUZGch-rprvAtqay9e_ivePCpezBY5ywrrK E/edit?usp=sharing - ERC-642 Fairer token crowdsale with proportional token allocation - https://github.com/ethereum/EIPs/issues/642 - RICOのgithub (DAICO branch) - https://github.com/DRI-network/RICO/tree/daico-pod - DAICOの最初の実装を公開しました - https://blog.dri.network/the-first-implementation-of-daico-ja-8c91918f167 19