Arcプラットフォーム

Original article in English here.

2017年の初めにDAOstackを設立した時点で、DAOに関する2つの主なインサイトがありました。ひとつは、分散型自治組織(DAO)が通貨の次に、ブロックチェーンの最も重要なユースケースであること、もうひとつは、これらのDAOがどうなるかは予測不可能だが、急速に進化するだろうということでした。そのため、イーサリアムネットワーク上の、DAO汎用プラットフォームであるArcを構築することにしました。

Arcの概念は、ガバナンスシステムの迅速な自然選択を可能にする、容易にアップグレード可能なモジュール式プラットフォームであることです。私たちは、新しい組織を迅速かつ容易に構築するための、相互運用可能なコンポーネントのオープンライブラリを作成しています。これは、ウェブサイトのWordPressモデルに多少似ています。ギリシャ語archeにちなみ、Arcという名前をつけました。

アーキテクチャ

インフラを構築する際、最大の課題はアーキテクチャです。私たちは、柔軟性があり、ガバナンスに関するさまざまな種類の組織やアイディアに合ったプラットフォームを構築する必要がありました。キーワードは、やはり、モジュール性です。長いイテレーションプロセスの後、現在のバージョンのシステムは以下の形式をとります:

まず、図のすべてのボックスが契約です。(正確には、プロキシ+ロジック契約でもあります。)左の3つの契約はトークン、レピュテーション、アバターであ​​り、これらをアクター(またはオーガン)と呼びます。トークンは、イーサリアムのもっとも人気なユースケースなので、おそらく説明が不要でしょう。レピュテーションとアバターについては、以下に説明します。

アバターは、ブロックチェーン上の組織の顔です。例えば、組織が契約や資産の所有権などの所有権を保持する場合、アドレスはアバターのものになります。

レピュテーションには、もっとも説明が必要でしょう。Arcでは、レピュテーションは、指定されたDAOでの決定力を表します。それは1次元であり、アドレスと数字の間にシンプルなマップがあります。これはトークンに非常によく似ていますが、大きな違いが2つあります。1つは譲渡不可能であり、2つはDAOによって許可または奪回が可能なことです。

図の右側にスキームがあります。スキームは、DAO内で実行できるさまざまなアクションを構成する単純なロジックです。スキームの一例はICOスキームであり、ETHをDAOに送信するエージェントは、その組織のトークンを受け取ります。もう1つの例は、プロポーザルに資金を提供するスキームです。プロポーザルの提出や、プロポーザルへの投票ができ、プロポーザルが承認されると自動的に資金が提供されます。

根底にはグローバルな制約があります。グローバルな制約の概念は、モジュールが包括的なルールを破るのを防ぐために、モジュラーロジックをについてはほぼ必ず強制されます。例えば、組織の総合的なレピュテーション、または組織の資金の最大燃焼率に関する上限です。

次に、アクセス制御モジュールであるコントローラがあります。これは、DAOに登録されているすべてのスキームと各スキームの権限の記録を保持します。さらに、すべてのグローバル制約の記録を保持し、それらのいずれかに違反するトランザクションを元に戻して強制します。

最後のタイプのコンポーネントは、ガバナンスモジュールとも呼ばれる投票モジュールです。これらのコンポーネントは、意思決定プロセスのモジュール化を可能にし、そのようなモジュールの迅速なイテレーションおよび開発を可能にします。今日実装されている主要な投票モジュールは、DAOstackの分散型ガバナンスのコアモデルであるホログラフィックコンセンサスプロトコルに基づいています。

コードリサイクルとガス効率

スマートコントラクトプラットフォームを構築する際は、コードリサイクルが課題となります。共有コンポーネントの構築には多くのメリットがありますが、複雑さ、セキュリティ、効率性、使いやすさの面でも課題が生じます。主な解決方法は二つあります。

1つは、サービスとしての契約(CaaS:Contract as a Service)アプローチです。このコンセプトでは、多くの組織/代理店に単一の契約が使用されます。CaaSの例として、各グループが独自の契約をデプロイするのではなく、それを使用したいグループのバランスを保つマルチシグ契約のようなものです。これにより、契約は一度だけ誰もが使用できるようにデプロイされるため、デプロイ時に多くのガスが節約されます。それぞれの取引に追加されたパラメータで、どのウォレットが参照されているかを示すだけで、非常に低いガスコストで実行できます。CaaSアプローチの主な欠点は、契約が少し複雑になり、セキュリティコストがかかることです。ブロックチェーンの標準はアドレスがいくつかの「アイデンティティ」を表すことから、契約間の相互運用性を構築する際に課題を生み出す可能性があります。ここでは複数のアイデンティティを表す単一のアドレスがあります。

コードリサイクルの第2の解決方法はプロキシアプローチです。このアプローチでは、論理契約にdelegateCallsを作成するだけのプロキシ契約と論理契約を一緒にデプロイします。このアプローチでは、デプロイ時のガスコストが各インスタンスごとに別々の契約を保持するよりも少なくなりますが、delegateCallの追加により、各トランザクションで少しずつコストがかかります。デリゲートコールのガスコストは、2300ガス(最近Githubで修正案を提出した問題)に限られている「転送」コールで最も問題になります。プロキシアプローチのもう一つの欠点は、契約のコーディング、特に契約のイニシャライズの複雑さです。

現在のArcリリースでは、CaaSアプローチが使用されています。私たちはプロキシアプローチの研究も行っています。理由は、アップグレード可用性を高めるからです。しかし、アップグレード可用性にもデメリットはあります。

セキュリティ

モジュラーシステムの主な利点は、パーツ毎に徹底的に調べてテストできるため、監査と安全性において優れていることです。これは、もちろん安全性を確証するものではありませんが、非常に優れたアプローチです。このアプローチは、ChainSecurityの専門家による集中的な監査でテストされ、合格しました。

いずれにせよ、DAOstackのセキュリティに対する主なアプローチは、実世界にコードを置き、実際の資金で使い、善良なハッカーによって、バグを見つけてもらうことです。私たちは、契約上の資金の額をゆっくりと増やし、安全であるという保証を得ようとしています。

ロードマップ

Arcはまだアルファ版であり、Genomicsというコードネームの下にあります。次の大きなリリースでは、コードネーム「Genuine」の下で、モジュール性とアップグレード可能性が大幅に改善されます。現在のペースなら、おそらく早めにリリースされるでしょうが、2019年第二四半期を目指しています。