В продолжение моей предыдущей статьи о «краже» денег из контракта The DAO сети Ethereum (которую также можно считать и легитимным изъятием средств в рамках установленных контрактом правил), даю обновление по статусу: разработчики клиентских программ блокчейна выпустили новые версии с возможностью проголосовать за путь soft-fork'а.
Напомню, что под soft-fork'ом подразумевается блокировка всех средств в дочерних аккаунтах The DAO, причём она касается не только средств, которые считаются принадлежащими «атакующему» (как он себя сам называет), но и всех других суб-аккаунтов The DAO. При этом, в случае успешного принятия soft-fork'а сообществом — доступ к средствам останется у узкого круга лиц, которые впоследствии, в случае положительного решения о принятии hard-fork'а, смогут вернуть их владельцам.
На данный момент обновления представлены для клиентов GETH (имплементация на языке Go от Ethereum Foundation) и Parity (клиент, напрямую не связанный с Ethereum Foundation). Любопытно, что клиент Parity по умолчанию при обновлении на новую версию голосует «за» принятие soft-fork'а, при этом чтобы проголосовать против — необходимо поставить флаг "-dont-help-rescue-dao" (в переводе: "не-помогать-спасению-dao", изначально предлагался вариант "--assist-dao-attack": "помочь-в-атаке-на-dao"), в то время как в клиенте GETH — по умолчанию голосование идёт против форка, чтобы проголосовать за его принятие — необходимо поставить флаг "--dao-soft-fork". Видно, что разделение мнений коснулось не только пользователей и майнеров Ethereum, но и сообщества разработчиков, которые прямо показывают своё отношение в подходе к голосованию и косвенно влияют на его исход.
Мы узнаем о результатах решения по данному вопросу с записью блока номер 1800000 в блокчейн, что ориентировочно должно произойти 30 июня. Голосование идёт путём подсчёт суммарных вычислительных мощностей проголосовавших за принятие форка. При голосовании «за» для этого конкретного блока — уменьшается так называемый "gas limit". В сети Ethereum «gas» — это внутренняя «валюта», производная эфира, которой люди платят за запись своей транзакции в блок; чтобы исключить возможные атаки на сеть — за каждую операцию приходится платить какое-то количество gas'а. Под «gas limit» для конкретного блока — понимается максимально возможный размер gas'а, который может принять этот блок, и в данном случае этот лимит выступает в качестве инструмента для принятия решения о дальнейшем поведении системы.
Изначальный gas limit для этого блока составляет 4.7 миллиона gas, при голосовании «за» форк — он уменьшается, и в случае, если этот предел достигнет 4 миллионов (что, примерно, и означает голосование половины сети в пользу изменений) — софт-форк вступит в силу. Это будет означать, что все люди, обновившие клиент, вне зависимости от их голоса — «за» или «против» — закроют возможность для операций с дочерними аккаунтами The DAO. Стоит отметить, что отсутствие обновления клиента по умолчанию означает голосование против форка, так как старые клиенты никаким образом не влияют на gas limit интересующего нас блока. Однако, в случае принятия soft-fork'а — они обязаны будут обновить клиент чтобы соответствовать консенсусу большинства, или же произойдёт разделение сети — меньшая часть не обновившихся будет принимать транзакции с «украденными» деньгами, большая — нет, такой раскол может негативно сказаться на будущем сети в целом.
Таким образом, инструмент голосования запущен, и меньше, чем через неделю, мы должны узнать решение сообщества майнеров по поводу судьбы «украденных средств». В случае принятия soft-forka нас, скорее всего, ожидает такое же голосование по принятию hard-fork'а и возврату средств владельцам токенов The DAO.
Автор: drinkius