MMS

Наденьте ночные очки, потому что у меня есть история из нашего киберпанк-будущего или настоящего, каким оно может быть.

Как плохо написанный смарт-контракт подорвал работу интернет-провайдера в Орегоне.

Около 15:00 в это воскресенье мы начали сталкиваться со снижением качества обслуживания всей тестовой сети Clatskine. Автоматическое оповещение уведомило дежурного оператора сети, и расследование началось.

Через несколько минут усердного поиска в журнале обнаружилась закономерность. транзакции были успешно опубликованы на полных узлах Ethereum, но ни одна транзакция Althea не попала в блокчейн за последние 5 часов.

Хотя система выставления счетов за пропускную способность очень устойчива к временным сбоям в оплате, ей приходится отключать пользователей, которые в конечном итоге не платят. В нашем случае шлюз определил, что ему недоплачивают на выходе, и начал ограничивать скорость соединения на выходе в качестве предупреждения о недоплате.

Главный вопрос, конечно, заключался в том, почему платежи за выезд не прошли?

Ответ на этот вопрос состоит из двух частей. Плохо закодированный сценарий раздачи и кто-то, кто его использовал.

Вы видите, что этот сценарий airdrop пострадал от уязвимости, которую мы называем «атакой Сивиллы». Она позволяла любому, у кого на счету было небольшое количество Ethereum, бесплатно чеканить небольшое количество этого нового токена.

Предприимчивый хакер просто написал скрипт, который брал большое количество Ethereum, разбивал его на множество новых адресов с меньшим балансом, а затем вызывал контракт. Позволяя им собирать во много сотен или тысяч раз больше отчеканенных токенов, чем они должны были быть ограничены.

Этот скрипт мешал работе Алтеи именно потому, что и Алтея, и хакер выбрали один и тот же метод для определения цены газа в наших транзакциях.

Скрипт производил тысячи транзакций с комиссией за газ в 1Gwei, взятой из конечной точки gas_price() полного узла Ethereum. Это значение вычисляется как медиана комиссий, выплаченных за последние несколько блоков.

Алтея использует ту же конечную точку, и в ней есть недостаток, который мы искали. Поскольку мы выбрали ту же плату за газ, что и злоумышленник, наши транзакции имели тот же приоритет, но в сотни раз менее распространены. В результате почти никто из них не прошел.

Если бы мы увеличили комиссию за транзакцию хотя бы на 10 %, транзакции Althea попали бы в блокчейн менее чем за 3 минуты. Но поскольку мы доверяли конечной точке средней цены на газ, наши транзакции напрямую конкурировали с злоумышленником, и потребовалось бы более двух часов, чтобы попасть в блок, если они вообще попадут.

Мы исправили наши узлы, чтобы платить за газ на 50 % больше, и сеть была восстановлена ​​и полностью работоспособна в течение 15 минут после первого снижения качества обслуживания.

Усовершенствованное формирование трафика маршрутизаторов Althea сохраняло скорость сети, но пригодную для использования в течение всего времени. На самом деле мы получили гораздо больше жалоб на сбой Google Cloud в эти выходные.

Но проблема здесь не исчерпана. Исправление потребовало вмешательства человека и уровня «мета» мышления, чтобы определить, каким будет решение.

Althea необычен тем, что автономные микроплатежи за пропускную способность предъявляют более высокие требования к уровню автоматизации. Люди запихивают сетевое оборудование в шкаф и оставляют его там годами без присмотра. Никто не собирается обновлять страницу или перезагружать устройство.

Чтобы достичь такой надежности, мы постепенно встраивали все больше и больше информации обо всех режимах сбоев платежей через блокчейн в наше собственное программное обеспечение. Современные блокчейны просто недостаточно надежны, чтобы их можно было рассматривать как абстрактную платежную систему, в которой транзакция действительна, отправлена ​​и выполнена.

Надеемся, что системы, основанные на подтверждении доли, могут уменьшить изменчивость процесса транзакции, а также помочь уменьшить проблемы масштабирования. Тем временем нам нужно обновить Алтею, чтобы проверять транзакции в мемпуле и автоматически корректировать цену на газ, необходимую для победы в следующей дуэли.

Бета 5 выпущена!

Выпущен выпуск Beta 5 с некоторыми новыми функциями, настоящим хедлайнером является то, что маршрутизаторы теперь оценивают, как долго будет действовать ваш существующий баланс, на основе предыдущего использования.

  • Клиентские устройства больше не поставляются с портами WAN по умолчанию.
  • еще больше исправлений для стабильности платежей
  • история пропускной способности и история платежей теперь хранятся и отображаются на панели инструментов
  • изменения в биллинге клиентов, которые делают его устойчивым к потере пакетов
  • исправить проблему с привязкой к портам не на встроенных коммутаторах
  • больше исправлений в выборе порта для обнаружения одноранговых узлов
  • защита от атак с повтором платежей
  • исправление проблемы с разбором babel, которая могла вызвать странное поведение при выставлении счетов

Как видите, мне нужно пополнить свой личный роутер.

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *