Я думал, что одобрить доступ — это нормально, но потом выяснилось, что я фактически отдал то, что не должен был.
Я считал, что торговля через бота Telegram — это лишь «немного рискованно», пока однажды не присмотрелся внимательно к тому, какие именно права я выдал. Тогда стало немного страшно.
Дело было так. Недавно я использовал ончейн-бот для автоматического стоп-лосса. В туториале говорилось, что нужно одобрить «ключ сессии», чтобы бот мог автоматически продать, когда цена опустится ниже определённой отметки. Я не особенно задумывался и нажал «одобрить».
Потом, из любопытства, я решил проверить, какие права на самом деле включает это одобрение. После этого мне стало очень не по себе — по сути, оно позволяет в любой момент переводить активы с моего аккаунта, без каких-либо ограничений по времени или сумме. То условие «сработает только если цена опустится ниже определённого уровня» — всего лишь объяснение, написанное на интерфейсе бота. В смарт-контракте на блокчейне нет соответствующей обязательной логики. Следует ли боту выполнять это правило, полностью зависит от него самого.
Вот в чём проблема. Я думал, что дал ему «ключ, который можно использовать только в конкретных ситуациях», а на деле — дал универсальный ключ, которым он может в любой момент управлять всем, что у меня есть.
Узнав, что делает
@NewtonProtocol , я понял, что эту ситуацию можно решить.
Подход Newton такой: ваши условия — это не просто фраза в коде Agent’а, а правило, «запертое» криптографически. Например: «Agent может двигать мои активы только когда некоторые данные соответствуют условиям». Эти условия принудительно исполняются на блокчейне с помощью ZKP (доказательств с нулевым разглашением). Agent должен приложить доказательство, чтобы выполнить действие. Без валидного доказательства контракт просто отказывает — на техническом уровне обойти это невозможно.
Плюс к этому, с ERC-4337 смарт-аккаунтами вы можете даже открыть Agent только часть прав — например, разрешить ему работать лишь с конкретным протоколом, определённым классом активов и максимум на некоторую сумму, а остальные права полностью закрыть. Это совсем другая логика безопасности по сравнению с прежним вариантом «или даём всё, или не даём ничего».
Теперь оглядываясь назад, понимаю: операции того бота раньше были действительно довольно неразумными. Тогда я совершенно не осознавал, насколько большой риск на себя взял.
$NEWT — это gas-токен протокола Newton, который используется для оплаты этих автоматизированных операций.
#Newt