← PC・IT用語集へ戻る

DAO

Decentralized Autonomous Organization
ブロックチェーン上のルールや投票を利用し、参加者が共同で運営する組織。
DAO (Decentralized Autonomous Organization)

概要(サマリー)

DAO(分散型自律組織)とは、ブロックチェーン上のルールや投票を利用し、参加者が資金や方針を共同で管理する組織である。

一般的な会社のように一人の経営者がすべてを決めるのではなく、提案、投票、委任、複数人による承認などを組み合わせて運営する。ルールの一部をスマートコントラクトで実行できる点が特徴である。

ただし、DAOに人間の管理者や中心人物が一切いないとは限らない。実際の運営方法や分散の程度はDAOごとに大きく異なる。

詳細解説

1. DAOを構成する基本要素

DAOでは、共通の目的、参加条件、提案方法、投票ルール、資金管理方法などを定める。これらの一部をブロックチェーンへ記録すると、参加者が同じ履歴を確認しやすくなる。

スマートコントラクトは、投票結果に応じて資金を移動したり、設定を変更したりする処理に使われる。ただし、議論、調査、文章作成、コミュニティ管理など、すべての仕事が自動化されるわけではない。

DAOの「自律」は、人間が不要という意味ではなく、決められた条件をプログラムで実行できるという意味で使われることが多い。

2. 提案から実行までの流れ

DAOの意思決定では、まず参加者が改善案や資金の使い道を提案する。次に、定められた期間内に投票を行い、賛成票、参加率、承認条件などを確認する。

条件を満たした提案は、スマートコントラクトによって自動実行される場合がある。一方、投票結果を受けて、複数の署名者が手動で取引を実行するDAOもある。

投票前の議論を掲示板で行い、意思確認だけをオフチェーン投票で済ませ、最終的な資金移動だけをブロックチェーン上で行う構成もある。DAOだからすべての処理がオンチェーンとは限らない。

3. 参加権と投票方法

DAOへの参加方法には複数の形がある。代表的なのは、ガバナンストークンの保有量に応じて投票権を与える方法である。

ほかにも、会員証となるNFT、参加者一人につき一票を与える方式、評判や貢献実績を反映する方式、代表者へ投票権を委任する方式などがある。

トークン数に比例する投票は仕組みが明確だが、大口保有者へ影響力が集中しやすい。投票率の低さ、複数アカウントによる不正、委任先への権限集中なども設計時の課題になる。

4. 資金を管理するトレジャリー

DAOが共同管理する資金は、トレジャリーと呼ばれることがある。参加者からの拠出、プロトコルの手数料、暗号資産やトークンなどが保管される。

資金を一人の秘密鍵だけで管理すると、その人の紛失や不正が組織全体の問題になる。そのため、複数人の署名がそろったときだけ取引できるマルチシグを利用するDAOもある。

投票結果の自動実行とマルチシグによる手動実行には、それぞれ利点と弱点がある。自動化の範囲、緊急停止、署名者の交代、監査方法を事前に決める必要がある。

5. DAOの利点

DAOは、国や組織の境界を越えて参加者を集め、共通の資金や目的を管理しやすい。提案や投票、資金移動を公開することで、意思決定の経緯を確認しやすくできる。

主な利点には次のものがある。

  • 離れた地域の参加者が共同で活動できる
  • 提案や投票の履歴を検証しやすい
  • 条件を満たした処理をプログラムで実行できる
  • 参加者へトークンなどで貢献報酬を配布できる

ただし、公開性や透明性の範囲は設計によって異なる。議論や契約が外部サービスで行われる場合、すべての情報がブロックチェーン上に残るわけではない。

6. DAOの課題とリスク

DAOでは、コードの不具合、投票権の集中、低い投票率、秘密鍵の漏えい、詐欺的な提案などが問題になることがある。スマートコントラクトが正しくても、参加者の判断や運営手順に弱点があれば被害は起こり得る。

また、DAOの法的な位置づけ、契約主体、税務、参加者の責任は、国や地域、組織の実態によって異なる。DAOという名称だけで法人格や有限責任が認められるわけではないため、専門家への確認が必要になる場合がある。

緊急時に迅速な対応が必要でも、投票期間や承認条件が障害になることがある。反対に、少人数へ緊急権限を与えすぎると、分散性が弱くなる。安全性と迅速性のバランスが重要である。

7. 投票処理の最小例

次のSolidityコードは、同じアドレスが同じ提案へ二重投票することを防ぎながら、賛成票を数える最小例である。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract SimpleVote {
    mapping(uint256 => mapping(address => bool)) public hasVoted;
    mapping(uint256 => uint256) public votes;

    function vote(uint256 proposalKey) external {
        require(!hasVoted[proposalKey][msg.sender], "Already voted");

        hasVoted[proposalKey][msg.sender] = true;
        votes[proposalKey] += 1;
    }
}

これは学習用の例であり、提案の作成権限、投票期限、定足数、トークン保有量、実行処理などを備えていない。本番のDAOをこのコードだけで構築してはならない。

実際の開発では、監査実績のあるライブラリやOpenZeppelin ContractsのGovernor関連機能などを検討し、テストと外部監査を行う。

AIコーディングとの関係

AIは、DAOの提案・投票画面、スマートコントラクト、テストコード、脅威モデルなどの下書きを作る際に利用できる。

依頼するときは、投票権の条件、定足数、投票期間、委任の有無、実行までの待機時間、緊急停止権限、対象ネットワークを明示する必要がある。「DAOを作って」だけでは、安全性や運営方針が不明なコードになりやすい。

スマートコントラクトはデプロイ後の修正が難しい場合があり、資金を直接扱う。AIが生成したコードを本番へそのまま配置せず、自動テスト、静的解析、複数人のレビュー、テストネットでの検証、専門家による監査を組み合わせる必要がある。

また、AIに秘密鍵や復元用フレーズを入力してはならない。管理者権限やアップグレード権限が誰にあるかも、コードと運用の両面から確認する。

よくある勘違い

DAOにはリーダーや運営担当者がいない?

必ずしもそうではない。開発チーム、提案の管理者、モデレーター、マルチシグ署名者などが存在するDAOも多い。

DAOでは参加者全員がすべての変更へ投票する?

DAOによって異なる。代表者への委任、少人数のマルチシグ、オフチェーン投票などを組み合わせる場合もある。

DAOならすべての活動が透明になる?

ブロックチェーン上の取引や投票は確認しやすいが、外部のチャット、契約、個人情報まで自動的に公開されるわけではない。

DAOは法律上の会社と同じ?

同じとは限らない。法人格や参加者の責任は地域と組織形態によって異なり、DAOという名称だけでは判断できない。

まとめ

  • DAOは、ブロックチェーン上のルールや投票を使って参加者が共同運営する組織である
  • 投票方法にはトークン投票、委任、マルチシグなど複数の形がある
  • すべての処理が自動化されるわけではなく、人による議論や運営も必要である
  • コードの不具合、権限集中、低投票率、法的な不確実性などの課題がある
  • AI生成コードを本番利用する前に、テスト、レビュー、監査を行う必要がある

情報ソース

より詳しくAIに聞いてみよう

  • DAOと従来の会社組織の違いを、初心者向けに説明してください。
  • トークン投票、委任投票、マルチシグの違いを比較してください。
  • DAOで大口保有者へ投票権が集中する問題への対策を整理してください。
  • OpenZeppelin Governorを使うDAOの設計要件とテスト項目を作成してください。
  • DAOのスマートコントラクトをAIにレビューさせるためのプロンプトを作成してください。