過去 6 日間にわたり、Slock.it チームのメンバーは、他のイーサリアム開発者数名とともに、DAO ハッキングに対処するためにイーサリアムのハードフォークに協力してきました。 次のハードフォーク計画はまだテストが必要であり、コミュニティのレビューも必要です。これはオープンソース プロジェクトなので、多くのソースからの貴重な入力に依存しています。もちろん変更も可能です。この投稿では、ハードフォーク開発の進捗状況に関する最新情報のみを提供します。お役に立てれば幸いです。 提案されたハードフォーク 0xbb9bc244d798123fde783fcc1c72d3bb8c189413からのトランザクションの元となるすべてのアカウント、それらの extraBalance アカウント[1]、および DAO のメイン アカウント ( 0xbb9bc244d798123fde783fcc1c72d3bb8c189413 ) とその extraBalance アカウント ( 0x807640A13483f8AC783c557fcDF27Be11ea4AC7A ) が /* このファイルは 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() 現在のコード(ラフバージョン、未テスト): 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」トークンの保有者が払い戻しを受けることができないことを意味します。 ただし、ソリューションの複雑さにより、新たなエラーや損失が発生する可能性があります。私たちは過去の失敗から学び、スマートコントラクトをシンプルに保つことの重要性を覚えているので、このハードフォーク計画は達成可能であり、短期間でテストでき、現時点で最適なハードフォーク戦略であると信じています。 重要な日付
つまり、7 月 16 日に終了するこのクリーン ハード フォークには追加のルールは追加されません。これは、分割提案 #8 の所有者が子 DAO から合法的に Ether を引き出すことができるときです。分割された DAO がすべて無視された場合、攻撃者の DAO のイーサを処理するだけで済み、7 月 21 日がハードフォークの期限になります。この後、イーサは攻撃者によって作成された複数の分割DAOに転送される可能性があり、ハードフォーク計画は大幅に複雑になります。 結論は この記事では、このハードフォークに関する提案を紹介します。これは、geth、parity、cpp-ethereum、pyeth を含むさまざまなバージョンのクライアントの開発者に転送されています。また、このシンプルなハードフォーク計画の背後にある理論的根拠と、予想されるこのハードフォークに関するいくつかの重要なタイミングポイントについても説明します。 私たちは、このハードフォーク提案、特にハードコードされた数字、リスト L 内のアカウント、そしてもちろんスマート コントラクト自体をテストしてレビューするよう皆様にお願いしています。 |
<<: 資本市場におけるブロックチェーンと分散型台帳の可能性
>>: コインゾーントレンド: 今週のビッグデータに基づくビットコインの価格動向 (2016-07-07)
MovieTicketsのCEO、ジョエル・コーエン氏にとって、同社のビジネスにおける支払いオプショ...
2018年は暗号通貨投資家にとって悲惨な年でした。 2017 年の狂乱の強気相場の後、人々は至る所で...
PPS、PPLNS、PPS+... 各種マイニングプールの収益モデルは多種多様で圧倒されます。これ...
2020年末以来、暗号デジタル資産市場は強気相場に突入しました。まず、ビットコインやイーサリアムに...
Hyperledger は、ブロックチェーン技術の研究に特化したオープンソースの業界横断プロジェク...
ETH ウィークリーレポート |イーサリアムが急騰、初めて1,000元の水準を突破1. 市場のハイ...
広告なしの体験と引き換えにビットコインによるマイクロペイメントをユーザーに提供する広告ブロックブラウ...
ブロックチェーン技術は最近注目を集めていますが、ブロックチェーン技術をベースにしたビットコインは、市...
著者 |ハシピ分析チーム...
著者: Huobi.com Huobi Blockchain Research Centerによると...
まとめ特集:鉱業王たちの「鐘を鳴らす夢」、易邦IPO。 3回目のBTCブロック報酬の半減後、BTC価...
ビットコインの主要プロトコルの基本的な運用面の変更をめぐる数か月にわたる激しい議論の末、ついに合意に...
中国証券ネットワークニュース(記者 王周傑)日本の内閣が署名した資金決済法改正案が4月1日に正式に施...
台湾のビットコイン採掘コストは世界で3番目に低い。楊金龍氏は、自身の理解によれば、台湾のビットコイン...
(写真:容疑者追跡)欧州連合(EU)の最高法執行機関であるユーロポールは、ビットコイン取引を追跡でき...