Контракты сети Ethereum иммутабельны – единожды загруженные в сети (блокчейн), они не могут быть изменены. Специфика бизнеса или разработки могут потребовать обновить код, но при традиционном подходе это становится проблемой.
**Популярные причины необходимости обновления**
* Ошибки в коде
* Изменение бизнес требований
* Принятие предложений сообщества об изменении работы контракта
Реализация требуемого функционала — обновление кода, планируется через разделение кода на составляющие:
1. **Данные** — смарт-контракты без логики и предоставляющие исключительно пространство для хранения данных;
2. **Бизнес-логика** — смарт-контракты описывающие логику извлечения данных из хранилища и их изменения;
3. **Входные точки** — иммутабельные контракты ведут учет обновления бизнес-логики и предоставляют конечному пользователю ссылку на актуальный контракт бизнес-логики[Читать дальше →][1]
[1]:
https://habrahabr.ru/post/345606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=345606#habracut