Изменяемые и неизменяемые контракты
-
Хочется узнать мнение публики по поводу неизменяемых параметров смарт-контракта.
Вот нужны какие-то настройки: распределить прибыль между участниками, задать цену токенов, назначить взносы разнообразные. В принципе, особой разницы нет, так например плата за создание рынка может быть 0.01 эфира, может быть 1 эфир, для обоих значений можно найти свои позитивные стороны.
Но в будущем, возможно, станут более понятны разные моменты и захочется поменять эти параметры. Но смена параметров автоматически означает наличие "владельца" контракта, автоматически означает возможность управления экосистемой, в том числе и в интересах этого самого владельца, а не системы. Наличие же фиксированных неизменных правил, пусть и неоптимальных, помогает всем участникам подстроиться под эти правила и уже думать об эффективности взаимодействия.
А потом можно и просто новую версию контракта залить с измененными параметрами и на него тихонечко переехать, это неприятно, но не смертельно.
В общем, я думаю, что у контракта не должно быть администратора, это в духе децентрализации, но за это надо платить гибкостью и шансами на фатальные недочеты в дизайне.
А вы как думаете?
-
Забавно голоса распределились.
Криптопапики, видимо на опыте, голосуют за настраиваемый контракт.
Криптопопаны топят за фиксированные условия.Очень интересно.
-
А вот в книжках умных написано, что достоинство смарт-контракта - это его неизменяемость.
Upgradeability is a bug, вот что пишут.
Понятно, что будут баги, понятно, что будет необходимость новую версию запилить.
Но в моей реализации можно просто запилить новую версию, обновить интерфейсы доступа и всё! Со старой спокойно все выводят средства/токены и начинают пользоваться новой. Или продолжают пользоваться старой, пожалуйста. -
Что в контракте допустимо изменять:
- Параметры, не влияющие на безопасность контракта;
- Параметры, не угрожающие средствам пользователей.
Все параметры должны изменяться через контрак-прокладку "timelock-contract" задержкой в изменении параметров в 24+ часа.
-
Ну, ваше решение настолько простое, насколько бесполезное.
Размер комиссии изменять - это угрожает средствам пользователей или нет? А если задрать комиссию 100%, тогда никто не сможет ничего вывести.
Изменять администратора, который может рассчитывать рынки - это влияет на безопасность конракта? А если это злоумышленники получили доступ к приватным ключам владельца и сейчас заскамят всех?Любой параметр можно поставить таким, что нормальная работа контракта будет невозможна. А смысла в задержке никакого нет, всё равно никто не отслеживает состояние и запросы, а если кто-то и отслеживает, то большинство всё равно просто жмёт кнопки.
Поэтому тут либо мы пишем - контракт неизменяемый, не пользуемся прокси, просто загрузили код - он работает, обновили версию - все переехали целиком на новый, для этого продуманы пути миграции пользователей (фактически - возможность полностью выйти из проекта без потерь).
Или мы пишем контракт с параметрами и контролем, но во-первых очень часто в новой версии понадобятся новые параметры и функционал, всего не учесть, всё равно надо будет переезжать, во-вторых - придется полагаться на добрую волю администратора контракта.Я понимаю, что люди - стадо баранов (а ещё ленюсь реализовывать функционал) - поэтому будем контракты неизменяемые делать.
-
Пользователь @dimok написал в Изменяемые и неизменяемые контракты:
Размер комиссии изменять - это угрожает средствам пользователей или нет? А если задрать комиссию 100%, тогда никто не сможет ничего вывести.
Параметры размера устанавливаемой комиссии должны быть ограничены, очевидно.
Пользователь @dimok написал в Изменяемые и неизменяемые контракты:
Изменять администратора, который может рассчитывать рынки - это влияет на безопасность конракта? А если это злоумышленники получили доступ к приватным ключам владельца и сейчас заскамят всех?
Для этого и нужен таймлок.
Пользователь @dimok написал в Изменяемые и неизменяемые контракты:
Любой параметр можно поставить таким, что нормальная работа контракта будет невозможна.
Ненормальная работа не равно опасность средств пользователей.
Пользователь @dimok написал в Изменяемые и неизменяемые контракты:
А смысла в задержке никакого нет, всё равно никто не отслеживает состояние и запросы, а если кто-то и отслеживает, то большинство всё равно просто жмёт кнопки.
Это вы откуда знаете, что не отслеживают? А что если я вам скажу, что отслеживают и что к вам деньги без таймлока никто не понесет, кроме фанатов с форума?
-
Пользователь @dimok написал в Изменяемые и неизменяемые контракты:
придется полагаться на добрую волю администратора контракта.
Если полагаться на добрую волю администратора, то зачем вообще такой контракт и зачем блокчейн?
-
Если отслеживают, то увидят, что деньги на контракте полностью в безопасности, сколько положил - столько и снимешь, может быть даже больше. Так что всё в порядке.
Если полагаться на добрую волю администратора, то зачем вообще такой контракт и зачем блокчейн?
А я и говорю, не надо так, зальём без возможности обновления и норм.