イーサリアムのハードフォーク提案が発表され、コミュニティに残された時間はわずか15日

イーサリアムのハードフォーク提案が発表され、コミュニティに残された時間はわずか15日

過去 6 日間にわたり、Slock.it チームのメンバーは、他のイーサリアム開発者数名とともに、DAO ハッキングに対処するためにイーサリアムのハードフォークに協力してきました。

次のハードフォーク計画はまだテストが必要であり、コミュニティのレビューも必要です。これはオープンソース プロジェクトなので、多くのソースからの貴重な入力に依存しています。もちろん変更も可能です。この投稿では、ハードフォーク開発の進捗状況に関する最新情報のみを提供します。お役に立てれば幸いです。

提案されたハードフォーク

0xbb9bc244d798123fde783fcc1c72d3bb8c189413からのトランザクションの元となるすべてのアカウント、それらの extraBalance アカウント[1]、および DAO のメイン アカウント ( 0xbb9bc244d798123fde783fcc1c72d3bb8c189413 ) とその extraBalance アカウント ( 0x807640A13483f8AC783c557fcDF27Be11ea4AC7A ) が列表L含まれます。このリスト L はブロック X (ブロック番号は未定) で決定されます。リストの現在の内容はここで見ることができます[2]:ブロックY(ブロック番号は未定)の開始時に、Lリストのアカウント内のすべてのイーサが払い戻し契約アカウントに転送されます。コードは次のとおりです。

 /*
このファイルは DAO の一部です。

DAOはフリーソフトウェアです。再配布や改変が可能です。
これはGNU Lesser General Public Licenseの条件に基づいて公開されています。
フリーソフトウェア財団、ライセンスのバージョン3、または
(オプション) それ以降のバージョン。

DAOは有用であることを期待して配布されています。
ただし、いかなる保証もありません。暗黙の保証さえなく
商品性または特定目的への適合性。を参照してください
詳細については、GNU Lesser General Public License を参照してください。

GNU Lesser General Public Licenseのコピーを受け取っているはずです
DAO とともに。そうでない場合は、<http://www.gnu.org/licenses/> を参照してください。
*/

// TODO: すべての定数を二重チェックする必要がある
「github.com/slockit/DAO/DAO.sol」をインポートします。

契約の払い戻し
    DAO 定数パブリック マザー = 0xbb9bc244d798123fde783fcc1c72d3bb8c189413;
    マッピング (アドレス => bool) パブリックホワイトリスト;
    uint 定数 public totalSupply = 11712722930974665882186911;
    uint 定数 public totalWeiSupply = 12072858342395652843028271;
    uint 定数 public fixChildDAOsListTime = 1468057560; // 2016年7月9日 - 11:46:00 CEST

    関数払い戻し(){
        // 攻撃者 DAO を除くすべての childDAO をホワイトリストに登録 (コメントアウト)
        ホワイトリスト[0xd4fe7bc31cedb7bfb8a345f31e668033056b2728] = 真;
        ホワイトリスト[0x2c19c7f9ae8b751e37aeb2d93a699722395ae18f] = 真;
        ホワイトリスト[0x1975bd06d486162d5dc297798dfc41edd5d160a7] = 真;
        ホワイトリスト[0x319f70bab6845585f412ec7724b744fec6095c85] = 真;
        ホワイトリスト[0x5c8536898fbb74fc7445814902fd08422eac56d0] = 真;
        ホワイトリスト[0x779543a0491a837ca36ce8c635d6154e3c4911a6] = 真;
        ホワイトリスト[0x5c6e67ccd5849c0d29219c4f95f1a7a93b3f5dc5] = 真;
        ホワイトリスト[0x200450f06520bdd6c527622a273333384d870efb] = 真;
        ホワイトリスト[0x6b0c4d41ba9ab8d8cfb5d379c69a612f2ced8ecb] = 真;
        ホワイトリスト[0xd1ac8b1ef1b69ff51d1d401a476e7e612414f091] = 真;

        ホワイトリスト[0x51e0ddd9998364a2eb38588679f0d2c42653e4a6] = 真;
        ホワイトリスト[0xf0b1aa0eb660754448a7937c022e30aa692fe0c5] = 真;
        ホワイトリスト[0x9f27daea7aca0aa0446220b98d028715e3bc803d] = 真;
        ホワイトリスト[0xd9aef3a1e38a39c16b31d1ace71bca8ef58d315b] = 真;
        ホワイトリスト[0x6f6704e5a10332af6672e50b3d9754dc460dfa4d] = 真;
        ホワイトリスト[0x492ea3bb0f3315521c31f273e565b868fc090f17] = 真;
        ホワイトリスト[0x9ea779f907f0b315b364b0cfc39a0fde5b02a416] = 真;
        ホワイトリスト[0xcc34673c6c40e791051898567a1222daf90be287] = 真;
        ホワイトリスト[0xe308bd1ac5fda103967359b2712dd89deffb7973] = 真;
        ホワイトリスト[0xac1ecab32727358dba8962a0f3b261731aad9723] = 真;

        ホワイトリスト[0x440c59b325d2997a134c2c7c60a8c61611212bad] = 真;
        ホワイトリスト[0x9c15b54878ba618f494b38f0ae7443db6af648ba] = 真;
        ホワイトリスト[0x21c7fdb9ed8d291d79ffd82eb2c4356ec0d81241] = 真;
        ホワイトリスト[0x1ca6abd14d30affe533b24d7a21bff4c2d5e1f3b] = 真;
        ホワイトリスト[0x6131c42fa982e56929107413a9d526fd99405560] = 真;
        ホワイトリスト[0x542a9515200d14b68e934e9830d91645a980dd7a] = 真;
        ホワイトリスト[0x782495b7b3355efb2833d56ecb34dc22ad7dfcc4] = 真;
        ホワイトリスト[0x3ba4d81db016dc2890c81f3acec2454bff5aada5] = 真;
        ホワイトリスト[0xe4ae1efdfc53b73893af49113d8694a057b9c0d1] = 真;
        ホワイトリスト[0x0737a6b837f97f46ebade41b9bc3e1c509c85c53] = 真;

        ホワイトリスト[0x52c5317c848ba20c7504cb2c8052abd1fde29d03] = 真;
        ホワイトリスト[0x5d2b2e6fcbe3b11d26b525e085ff818dae332479] = 真;
        ホワイトリスト[0x057b56736d32b86616a10f619859c6cd6f59092a] = 真;
    // ホワイトリスト[0x304a554a310c7e546dfe434669c62820b7d83490] = true;
        ホワイトリスト[0x4deb0033bb26bc534b197e61d19e0733e5679784] = 真;
        ホワイトリスト[0x35a051a0010aba705c9008d7a7eff6fb88f6ea7b] = 真;
        ホワイトリスト[0x9da397b9e80755301a3b32173283a91c0ef6c87e] = 真;
        ホワイトリスト[0x0101f3be8ebb4bbd39a2e3b9a3639d4259832fd9] = 真;
        ホワイトリスト[0xbcf899e6c7d9d5a215ab1e3444c86806fa854c76] = 真;
        ホワイトリスト[0xa2f1ccba9395d7fcb155bba8bc92db9bafaeade7] = 真;

        ホワイトリスト[0xd164b088bd9108b60d0ca3751da4bceb207b0782] = 真;
        ホワイトリスト[0x1cba23d343a983e9b5cfd19496b9a9701ada385f] = 真;
        ホワイトリスト[0x9fcd2deaff372a39cc679d5c5e4de7bafb0b1339] = 真;
        ホワイトリスト[0x0e0da70933f4c7849fc0d203f5d1d43b9ae4532d] = 真;
        ホワイトリスト[0xbc07118b9ac290e4622f5e77a0853539789effbe] = 真;
        ホワイトリスト[0xacd87e28b0c9d1254e868b81cba4cc20d9a32225] = 真;
        ホワイトリスト[0x5524c55fb03cf21f549444ccbecb664d0acad706] = 真;
    // ホワイトリスト[0xfe24cdd8648121a43a7c86d289be4dd2951ed49f] = true;
        ホワイトリスト[0x253488078a4edf4d6f42f113d1e62836a942cf1a] = 真;
    // ホワイトリスト[0xb136707642a4ea12fb4bae820f03d2562ebff487] = true;

        ホワイトリスト[0xf14c14075d6c4ed84b86798af0956deef67365b5] = 真;
    // ホワイトリスト[0xaeeb8ff27288bdabc0fa5ebb731b6f409507516c] = true;
        ホワイトリスト[0x6d87578288b6cb5549d5076a207456a1f6a63dc0] = 真;
        ホワイトリスト[0xaccc230e8a6e5be9160b8cdf2864dd2a001c28b6] = 真;
    // ホワイトリスト[0x4613f3bca5c44ea06337a9e439fbc6d42e501d0a] = true;
    // ホワイトリスト[0x84ef4b2357079cd7a7c69fd7a37cd0609a679106] = true;
    // ホワイトリスト[0xf4c64518ea10f995918a454158c6b61407ea345c] = true;
    }

    関数withdrawFromChildDAO(DAO _child) {
        // 子DAOの引き出しが開始される前に直接引き出しが完了する時間に置き換えられます
        (現在 < fixChildDAOsListTime + 4 週間) の場合は throw; if (!whiteList[_child] || _child.lastTimeMinQuorumMet() > fixChildDAOsListTime
            || _child.privateCreation() != 母)
            投げる;

        撤回(_child);
    }

    関数withdraw(){
        撤退する(母親)
    }

    関数withdraw(DAO _dao)内部{
        uint バランス = _dao.balanceOf(msg.sender);

        if (!_dao.transferFrom(msg.sender, this, balance) || !msg.sender.send(balance * totalWeiSupply / totalSupply))
            投げる;
    }
}

述べる:

子 DAO におけるイーサの実際の分配は、実際のハードフォークが発生する前に決定することは困難であり、特定の時点 (ブロック X) で完了します。ブロックチェーン分析の結果はこのハードフォークの一部となり、後の時点(ブロック Y)で有効になります。これは、ブロックの高さ X 以降、トークン保有者はメイン DAO または子 DAO イーサを削除する分割または提案を実行すべきではないことを意味します。そうしないと、この払い戻し契約を利用できなくなります。そうした場合、払い戻しは受けられなくなります。 DAO トークンの転送と取引は、このハードフォーク計画の影響を受けません。

リンク:

[1] web3.eth.contract(abi).at(newDAO).extraBalance()
[2] https://gist.github.com/CJentzsch/856b7d4b3010bf9a10ff7cbbea1876a9 (最終版ではないので確認が必要です)
[3] 契約の準備ができているかどうかに応じて、単純なゼロコードハッシュ契約(後で別のハードフォークが必要になることを意味します)または確定された契約が使用されます。最終的な契約には 2 つの機能 (「引き出し」と「子 DAO からの引き出し」) が含まれます。

現在のコード(ラフバージョン、未テスト):

https://gist.github.com/CJentzsch/038b86ae1658c680cee3bfb1499c1297

または https://gist.github.com/CJentzsch/bc01bfe17d850331eadf0c33041071a8

口論

実行中のエラーのリスクを軽減するために、シンプルなハードフォーク計画を設計しました。これにより、DAO トークン保有者の大多数が損失を回復できましたが、欠点もありました。一部のグループは 100% の払い戻しを受けることができませんでした。

1. 過去 2 週間以内にトークンを作成したトークン保有者。

DAO トークンは取引可能かつ代替可能であるため、特定の時間に作成されたトークンを区別することは非常に困難です。その結果、すべての DAO トークン保有者に対して、1 イーサ: 100 DAO トークンをわずかに上回る比率の非固定払い戻しモデルが実現しました。

2. 攻撃開始後に分割操作を実行したトークン保有者。

子 DAO に作成されるトークンの数は、最初の「DAO の分割」コマンド実行時のメイン DAO の残高によって決まります。このため、攻撃開始後に分割したトークン保有者は、メイン DAO で以前に所有していたトークンよりも子 DAO トークンが少なくなります。

このグループが追加の払い戻しを受けられない主な理由は、彼らがイーサをメイン DAO に送信し、その後出口を分割したためです。これにより、1 イーサ: 100 子 DAO トークンの比率で子 DAO トークンを作成できるようになります。このグループが追加の払い戻しを受ける場合、攻撃者はこれを利用して意図したよりも多くの払い戻しを受ける可能性があります。

3. 子 DAO はトークン保有者に対する再帰分割攻撃に使用されます。

攻撃者の DAO (ハッカーとホワイトハットの両方) は返金契約のホワイトリストに登録されていませんでした。そうでなければ、攻撃者はより大きな返金を要求することができたでしょう。残念ながら、これは「darkDAO」トークンの保有者が払い戻しを受けることができないことを意味します。

ただし、ソリューションの複雑さにより、新たなエラーや損失が発生する可能性があります。私たちは過去の失敗から学び、スマートコントラクトをシンプルに保つことの重要性を覚えているので、このハードフォーク計画は達成可能であり、短期間でテストでき、現時点で最適なハードフォーク戦略であると信じています。

重要な日付

  1. 最初の子DAOの作成期間は、2016年7月1日16:25:02 CESTに終了します。

  2. 最初の 2000 イーサは、2016 年 7 月 16 日 17:04:37 CET に DAO システムから送信されました (分割提案 #8)

  3. DarkDAO 作成終了時間: 2016 年 7 月 14 日 05:34:48 CEST

  4. 攻撃者のDAOが最初の分割操作を実行できた時間: 2016年7月21日 05:34:48 CEST

  5. 攻撃者のDAOからの最初の引き出しは、2016年7月28日午前5時34分48秒(中央ヨーロッパ時間)に行われました。

  6. 分割提案を通じて攻撃者のDAOが利用できる最初の引き出し: 2106年8月31日 05:34:48 CEST

つまり、7 月 16 日に終了するこのクリーン ハード フォークには追加のルールは追加されません。これは、分割提案 #8 の所有者が子 DAO から合法的に Ether を引き出すことができるときです。分割された DAO がすべて無視された場合、攻撃者の DAO のイーサを処理するだけで済み、7 月 21 日がハードフォークの期限になります。この後、イーサは攻撃者によって作成された複数の分割DAOに転送される可能性があり、ハードフォーク計画は大幅に複雑になります。

結論は

この記事では、このハードフォークに関する提案を紹介します。これは、geth、parity、cpp-ethereum、pyeth を含むさまざまなバージョンのクライアントの開発者に転送されています。また、このシンプルなハードフォーク計画の背後にある理論的根拠と、予想されるこのハードフォークに関するいくつかの重要なタイミングポイントについても説明します。

私たちは、このハードフォーク提案、特にハードコードされた数字、リスト L 内のアカウント、そしてもちろんスマート コントラクト自体をテストしてレビューするよう皆様にお願いしています。


<<:  資本市場におけるブロックチェーンと分散型台帳の可能性

>>:  コインゾーントレンド: 今週のビッグデータに基づくビットコインの価格動向 (2016-07-07)

推薦する

個人のデジタル通貨取引において詐欺行為が発生した場合、プラットフォームは情報ネットワーク犯罪行為幇助罪に該当するのでしょうか?

著者: 曽傑、金融犯罪弁護士、光強法律事務所シニアパートナー、違法資金調達事件弁護研究センター所長広...

米国の暗号通貨規制の進捗状況のレビューと予測:議会は今後数か月で大きな動きを見せる可能性がある

ホワイトハウスが議会による立法措置に関するいくつかの勧告を示した「デジタル資産の責任ある開発のための...

グラスノードレポート:機関投資家はビットコインへの関心を失っている

ブロックチェーン分析会社グラスノードの新たな調査結果によると、暗号通貨に対する機関投資家の需要が鈍化...

メキシコの小売業者ファムサがビットコイン決済の受け入れを発表

Bitcoin House News、 10月24日、ラテンアメリカの電子商取引ウェブサイトFam...

イーサリアムは爆発的な勢いを増しているのでしょうか?取引所に預けられたイーサリアムが3年ぶりの安値に

投資家が急いでイーサリアムトークンをETH 2.0預託契約に預け入れているため、取引所のトークン数は...

米財務長官候補:仮想通貨犯罪は憂慮すべき事態であり、合法的な活動での使用を促進する方法を検討すべき

BlockBeatsによると、1月22日、バイデン大統領が財務長官に指名したジャネット・イエレン氏は...

Xero CEO: 銀行が不変のブロックチェーンネットワークを実装することは不可能

ニュージーランドを拠点とする数十億ドル規模のソフトウェアおよび監査サービスプロバイダーXeroのCE...

米国のテクノロジー企業SolidXがビットコインETF上場を申請

アメリカのテクノロジー企業ソリッドXパートナーズは、独自のビットコイン上場投資信託(ETF)をニュー...

ギャラクシーデジタルCEO:ビットコインの採用増加が成長の重要な要因

金融サービス会社ギャラクシーデジタルのCEO、マイク・ノボグラッツ氏は最近、CNBCの朝の番組「スク...

ウクライナの治安当局、ビットコインを盗むマルウェアを販売する犯罪組織を摘発

ウクライナの法執行当局は、暗号通貨のハッキングと盗難、違法資金の洗浄を専門とする犯罪組織を摘発した。...

STEPNは中国本土の口座の整理を発表し、STEPNトークンの価格は最高値の4分の1に下落した。

Move to EarnアプリSTEPNの公式Twitterアカウントが「中国本土のアカウント調査...

OP評価: OPエアドロップの価値を確認する

この記事では、個人のソーシャルメディア プラットフォーム上で自己暗号化された KOL olimpio...

OKCoinが米ドルの入金の受け入れを停止したという海外メディアの報道は誤りだった。実際、清明節の間は銀行は閉まっていました。

ゴールデンファイナンスニュース - 4月20日の海外メディアの報道によると、中国のビットコイン取引プ...