Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DAICOを実装してみた

syrohei
February 02, 2018

 DAICOを実装してみた

communityはこちら => http://community.dri.network

syrohei

February 02, 2018
Tweet

More Decks by syrohei

Other Decks in Research

Transcript

  1. DAICOを実装してみた
    2018/2/2
    千賀 優作 Yusaku Senga
    DRI代表
    [email protected]
      @syrohei

    View Slide

  2. 自己紹介・DRI (分散技術総合研究所) について
    2
    ミッション
    ブロックチェーンを始めとする
    分散技術によって、あらゆる取引と
    価値保存をスマートにする
    RICO
    オープンソースとして開発している
    Decentralized ICOフレームワーク
    DRIは、トークンエコノミーの基盤となる技術を作る、DAO志向のエンジニア集団です

    View Slide

  3. 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

    View Slide

  4. 投資家・開発チーム双方に、プロジェクトを前進させる責任を持たせる
    開発チームが毎月利用できる資金量を、投票でコントロールする
    - 結果を出している良いチームなら、支援者は毎月利用できる資金量を増や
    して応援する
    - 開発をバックれたチームからは、資金を返金させる
    結果的に、詐欺的なICOを実施できない環境を作り出す
    DAICOの目的
    4

    View Slide

  5. DAICOは主に2つのことができる
    - チームが毎月引き出せる資金量をコントロール
    - 調達したETHは、トークホールダーの投票で引き出し可能量
    tap(wei/sec)を上げることが可能
    - プロジェクトオーナーはtapを自主的に下げることが可能
    - 投票により、プロジェクトの解散・残った資金の回収が可能
      (withdraw modeに移行)
    DAICOの提案仕様
    参考: https://gist.github.com/takashi/738779681e31c92cabbcd3c6ba87a7aa
    5

    View Slide

  6. あらゆる投票には、様々な攻撃が予想される。
    - もし攻撃によってtapが上昇したら?
    - 良識あるチームなら、tapを下げて元に戻すはずだし、必要な分しか引
    き出さないはず。
    - 開発者が開発を停止・資金を濫用しだしたら?
    - 投票者はtapを上昇させない、もしくは投票によってプロジェクトを解散
    させる
    - 51%攻撃によってプロジェクトが解散されたら?
    - もう一度DAICOコントラクトを作り直せばいい
    DAICOはセキュリティリスクを最小化するアイデア
    参考: https://gist.github.com/takashi/738779681e31c92cabbcd3c6ba87a7aa
    6

    View Slide

  7. コンセプトは非常に面白い! しかし懸念も...
    - トークンホールダー達が結託すると意味がないのでは?
    - The DAOの時のように、期待するほど投票するインセンティブが
    ないのでは? → (有権者の無関心問題)
    議論だけではどうにもならないし、僕たちはプログラマーなので、
    まずは実装してみよう!
    見た時の感想・・・
    7

    View Slide

  8. 2日後・・・・
    8

    View Slide

  9. DAICOを実装!
    (たぶん世界初)
    RICOの機能として
    利用できるようにしました!
    (英語と日本語で解説記事を
    出しました)
    参考: https://blog.dri.network/the-first-implementation-of-daico-4b90d9668471
    9

    View Slide

  10. 資金を集めるコントラクトは、RICOそのままの機能
    DAICOはまず、寄付を募るContribution modeからスタートする
    - 資金を集めるための方法一覧として説明されているもの
    - キャップ付きセール
    - キャップ無しセール
    - ダッチオークション
    - KYC付きセール
    - etc...
    RICOはこれらをモジュールとして選択・カスタマイズして組み込める
    10

    View Slide

  11. 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

    View Slide

  12. - 投票モデルは全て独自実装
     
    - 投票のための最低保持トークン量を規定
    複数アドレスによる投票には、大量のトークンロックが必要
    - Proof of Stakeに近い意思決定モデル
    ロックしたトークンの量によって実行権利が与えられる
    DAICOの投票機能 実装で意識したこと
    12
    プロポーザルの送信 Tokenを一定量ロックして投票
    投票の方法 ↑ と同等の方法
    議決権の数 格差是正のため、1アドレス当たり1票
    可決票数の閾値 計算式: 賛成票 - 反対票 - 不投票/6 > 0

    View Slide

  13. 実装して見えた現状のDAICOの問題点
    - ICOのトークン市場価格がICO時の取得価格を割ると、コミュニティは解散
    するインセンティブが大きくなる
      (ETHを取得価格でコントラクトから引き出す)
    - tapを引き上げるコミュニティ投票のインセンティブがあまりない。
    - Proposalを出し続けて他の人が提出できないように妨害できる
      (DDoSアタック)
    - アドレスを増やして攻撃しようとする行為(シビルアタック)
    - 今回の実装では投票のための最低保持トークン量を規定
    13

    View Slide

  14. 実装した結論
    DAICOはまだ議論され始めたばかりなので、今のタイミングでの実戦投入はお
    勧めできない。
    とはいえ、改良を続ければ、間違いなくこれまでよりもフェアなICOが実現でき
    る。
    また、DAICOを採用したICOプロジェクトはコミュニティーと密接に
    関わり合うことができ、良い影響を受けるようになる
    14

    View Slide

  15. 本日の会で共有したい、DAICOの改良アイデア
    - トークンのロック期間を投票時だけでなく、一定期間強制する
     (TendermintやCasper-FFGに近いアプローチ)
    - Proposalを出すアドレスに手数料を支払わせる
     (DDoS攻撃の防衛)
    - Slasherなどの懲罰モデルを作る
    同一経路からのデポジットアドレスに対し、複数投票を禁止する。違反する
    と没収する。
     (投票インセンティブの強化とシビルアタックの防衛)
    - AddressにKYCを設ける(Fungibilityが損なわれる?)
    15

    View Slide

  16. まとめ
    DAICOは、コミュニティドリブンによる健全なICOの第一歩
    - 業界からこういったものが提案され続けることで、ICOをバブルで
    終わらせるのでなく、本当に世界を変える仕組みにするのだと思う
    - とは言え、まだまだ改善が必要で、今すぐ役立つものではない
    - 今回実装した“トークンによる投票モデル”はシビルアタックに弱く、具体的
    な対策方法はまだ検討が必要
    - RICOを使えば、DAICOやその他のICO手法を簡単に実装でき、
    組み合わせることができる!
    16

    View Slide

  17. 17
    スマートコントラクトに興味がある方、
    RICOやDAICOのコードで勉強しながら
    この熱いトピックとOSSにコミットしませんか?
    一緒にICOの未来を作りましょう!

    View Slide

  18. 18
    community.dri.network
    github.com/DRI-network/RICO
    DRI.network
    Come hang out :)
    Branch: daico-pod
    Channel: #rico_ja

    View Slide

  19. 参考文献
    - 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

    View Slide