• Создатель форума

    Хочется узнать мнение публики по поводу неизменяемых параметров смарт-контракта.

    Вот нужны какие-то настройки: распределить прибыль между участниками, задать цену токенов, назначить взносы разнообразные. В принципе, особой разницы нет, так например плата за создание рынка может быть 0.01 эфира, может быть 1 эфир, для обоих значений можно найти свои позитивные стороны.

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

    А потом можно и просто новую версию контракта залить с измененными параметрами и на него тихонечко переехать, это неприятно, но не смертельно.

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

    А вы как думаете?

  • Создатель форума

    Забавно голоса распределились.

    Криптопапики, видимо на опыте, голосуют за настраиваемый контракт.
    Криптопопаны топят за фиксированные условия.

    Очень интересно.

  • Создатель форума

    А вот в книжках умных написано, что достоинство смарт-контракта - это его неизменяемость.
    Upgradeability is a bug, вот что пишут.
    Понятно, что будут баги, понятно, что будет необходимость новую версию запилить.
    Но в моей реализации можно просто запилить новую версию, обновить интерфейсы доступа и всё! Со старой спокойно все выводят средства/токены и начинают пользоваться новой. Или продолжают пользоваться старой, пожалуйста.


  • Что в контракте допустимо изменять:

    1. Параметры, не влияющие на безопасность контракта;
    2. Параметры, не угрожающие средствам пользователей.

    Все параметры должны изменяться через контрак-прокладку "timelock-contract" задержкой в изменении параметров в 24+ часа.

  • Создатель форума

    Ну, ваше решение настолько простое, насколько бесполезное.

    Размер комиссии изменять - это угрожает средствам пользователей или нет? А если задрать комиссию 100%, тогда никто не сможет ничего вывести.
    Изменять администратора, который может рассчитывать рынки - это влияет на безопасность конракта? А если это злоумышленники получили доступ к приватным ключам владельца и сейчас заскамят всех?

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

    Поэтому тут либо мы пишем - контракт неизменяемый, не пользуемся прокси, просто загрузили код - он работает, обновили версию - все переехали целиком на новый, для этого продуманы пути миграции пользователей (фактически - возможность полностью выйти из проекта без потерь).
    Или мы пишем контракт с параметрами и контролем, но во-первых очень часто в новой версии понадобятся новые параметры и функционал, всего не учесть, всё равно надо будет переезжать, во-вторых - придется полагаться на добрую волю администратора контракта.

    Я понимаю, что люди - стадо баранов (а ещё ленюсь реализовывать функционал) - поэтому будем контракты неизменяемые делать.


  • Пользователь @dimok написал в Изменяемые и неизменяемые контракты:

    Размер комиссии изменять - это угрожает средствам пользователей или нет? А если задрать комиссию 100%, тогда никто не сможет ничего вывести.

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

    Пользователь @dimok написал в Изменяемые и неизменяемые контракты:

    Изменять администратора, который может рассчитывать рынки - это влияет на безопасность конракта? А если это злоумышленники получили доступ к приватным ключам владельца и сейчас заскамят всех?

    Для этого и нужен таймлок.

    Пользователь @dimok написал в Изменяемые и неизменяемые контракты:

    Любой параметр можно поставить таким, что нормальная работа контракта будет невозможна.

    Ненормальная работа не равно опасность средств пользователей.

    Пользователь @dimok написал в Изменяемые и неизменяемые контракты:

    А смысла в задержке никакого нет, всё равно никто не отслеживает состояние и запросы, а если кто-то и отслеживает, то большинство всё равно просто жмёт кнопки.

    Это вы откуда знаете, что не отслеживают? А что если я вам скажу, что отслеживают и что к вам деньги без таймлока никто не понесет, кроме фанатов с форума?


  • Пользователь @dimok написал в Изменяемые и неизменяемые контракты:

    придется полагаться на добрую волю администратора контракта.

    Если полагаться на добрую волю администратора, то зачем вообще такой контракт и зачем блокчейн?

  • Создатель форума

    Если отслеживают, то увидят, что деньги на контракте полностью в безопасности, сколько положил - столько и снимешь, может быть даже больше. Так что всё в порядке.

    Если полагаться на добрую волю администратора, то зачем вообще такой контракт и зачем блокчейн?

    А я и говорю, не надо так, зальём без возможности обновления и норм.