Механизм слэшинга в Babylon: баг кода может навсегда сжечь твои BTC
Самое главное нововведение Babylon — механизм slashing. В биткоине реализовать slashing раньше никто не пытался. Технически это действительно шаг вперед, но проблема тоже в технике. В отчёте Hindenrank по риск-оценке есть фраза, которую я перечитывал несколько раз: «Slashing is enforced cryptographically — an honest software bug can burn your BTC irreversibly.» Честный программный баг — и твои BTC будут навсегда сожжены. Это не хакерская атака и не злонамеренные действия. Это баг в коде выбранного тобой валидатора: он случайно срабатывает условия slashing — и твои BTC исчезают. Ещё страшнее другое: если несколько валидаторов запускают один и тот же клиент с багом, один баг может одновременно сжечь BTC всех участников. В этой системе slashing — это не «наказание за плохие поступки», это «наказание за ошибки». @BabylonLabs_io
Babylon использует EOTS (однократно извлекаемые подписи) как криптографическую основу slashing. Если валидатор подпишет дважды, его приватный ключ окажется раскрыт, и атакующий сможет напрямую забрать соответствующие BTC. В статье этот механизм выглядит красиво: сделал зло — получи наказание, логический контур замкнут. Но в реальном мире баги в коде, условия гонки при перезапуске узлов и задержки в сети могут привести к тому, что честный валидатор непреднамеренно сработает по условиям двойной подписи. И в тот самый момент BTC на десятки миллионов долларов будут безвозвратно уничтожены. Биткоин — не Ethereum: здесь нет отката и нет механизма голосования по управлению, чтобы вернуть активы после slashing. Ошибся — значит ошибся. Сжёг — значит сжёг. После этого никто не сможет помочь тебе вернуть потерянное.
На данный момент у механизма slashing нет вообще никаких прецедентов, подтверждённых практикой. Первая система slashing, развернутая в биткоине, впервые работает с активами на десятки миллиардов долларов. Впервые столкнётся с реальными атакующими. И эти три «впервые» накладываются друг на друга — мне это не очень доверительно. В статье механизм slashing Babylon описан очень убедительно, но между бумагой и запуском на основной сети — целая производственная линия. Пока код не проверят, пока не прояснят граничные случаи, я не стану вкладывать туда BTC. Дело не в недоверии к технологии — дело в том, что это новый вид оружия, который ещё не имел никаких испытаний в реальном бою. Пусть сначала действительно начнёт работать как надо. Когда ещё не было ни одного события slashing, именно это и делает ситуацию самой опасной.
#baby $BABY
Самое главное нововведение Babylon — механизм slashing. В биткоине реализовать slashing раньше никто не пытался. Технически это действительно шаг вперед, но проблема тоже в технике. В отчёте Hindenrank по риск-оценке есть фраза, которую я перечитывал несколько раз: «Slashing is enforced cryptographically — an honest software bug can burn your BTC irreversibly.» Честный программный баг — и твои BTC будут навсегда сожжены. Это не хакерская атака и не злонамеренные действия. Это баг в коде выбранного тобой валидатора: он случайно срабатывает условия slashing — и твои BTC исчезают. Ещё страшнее другое: если несколько валидаторов запускают один и тот же клиент с багом, один баг может одновременно сжечь BTC всех участников. В этой системе slashing — это не «наказание за плохие поступки», это «наказание за ошибки». @BabylonLabs_io
Babylon использует EOTS (однократно извлекаемые подписи) как криптографическую основу slashing. Если валидатор подпишет дважды, его приватный ключ окажется раскрыт, и атакующий сможет напрямую забрать соответствующие BTC. В статье этот механизм выглядит красиво: сделал зло — получи наказание, логический контур замкнут. Но в реальном мире баги в коде, условия гонки при перезапуске узлов и задержки в сети могут привести к тому, что честный валидатор непреднамеренно сработает по условиям двойной подписи. И в тот самый момент BTC на десятки миллионов долларов будут безвозвратно уничтожены. Биткоин — не Ethereum: здесь нет отката и нет механизма голосования по управлению, чтобы вернуть активы после slashing. Ошибся — значит ошибся. Сжёг — значит сжёг. После этого никто не сможет помочь тебе вернуть потерянное.
На данный момент у механизма slashing нет вообще никаких прецедентов, подтверждённых практикой. Первая система slashing, развернутая в биткоине, впервые работает с активами на десятки миллиардов долларов. Впервые столкнётся с реальными атакующими. И эти три «впервые» накладываются друг на друга — мне это не очень доверительно. В статье механизм slashing Babylon описан очень убедительно, но между бумагой и запуском на основной сети — целая производственная линия. Пока код не проверят, пока не прояснят граничные случаи, я не стану вкладывать туда BTC. Дело не в недоверии к технологии — дело в том, что это новый вид оружия, который ещё не имел никаких испытаний в реальном бою. Пусть сначала действительно начнёт работать как надо. Когда ещё не было ни одного события slashing, именно это и делает ситуацию самой опасной.
#baby $BABY