Почти перед каждым программистом, который пишет смарт-контракты Ethereum встают вопросы: «Что делать, если нужно будет расширить функционал контрактов? Как быть, если в контракте найдется баг, который повлечет за собой потерю средств? Что делать, если обнаружится уязвимость в компиляторе solidity (что бывало уже не раз)?» Ведь, контракты, которые мы загружаем в сеть, не могут быть изменены. Поначалу довольно сложно осознать: как это код нельзя обновить? Почему? Но в этом отчасти и сила смарт-контрактов Ethereum — пользователи, возможно, меньше бы стали доверять контрактам, которые можно менять.
Постараемся разобрать несколько подходов, которые все же позволяют менять смарт-контракты.
Читать полностью »
Рубрика «solidity» - 5
Обновляемые смарт-контракты Ethereum
2017-11-12 в 13:26, admin, рубрики: blockchain, Ethereum, open source, solidity, децентрализация, криптовалюта, ПрограммированиеТехнические особенности проведения ICO. Начало
2017-11-10 в 10:27, admin, рубрики: bitcoin, blockchain, crowdsale, Ethereum, ico, open source, solidity, Алгоритмы, децентрализация, информационная безопасность, Криптовалюты, криптография
Привет! Сегодня мой рассказ пойдёт о техническом опыте проведения ICO на платформе Ethereum перед и во время ICO. Я поучаствовал пока в небольшом количестве проектов, но уже успел собрать некоторый технический бэкграунд. Могу поспорить, технический roadmap по проведению ICO аудитории Хабра будет интересен. Прошу под кат всех заинтересованных.
Универсальный cмарт-контракт мультиподписи в Ethereum
2017-11-10 в 9:41, admin, рубрики: Ethereum, multisig, smart contracts, solid, solidity, криптография, ПрограммированиеНесколько дней назад мы в компании BitClave прочли о недавнем инциденте с мультиподписными кошельками компании Parity Technologies, решили пригляделся к коду их смарт-контракта. Свежий пост в блоге компании Zeppelin Solutions детально описывает произошедший инцидент с технической стороны, поэтому мы хотели бы в нашей статье больше сфокусироваться на принципах проектирования смарт-контрактов.
Смарт-контракт Ethereum для расчета бонусов используя дробные степени
2017-10-26 в 3:17, admin, рубрики: Ethereum, smart-contract, solidity, Программирование, Учебный процесс в IT, финансы в IT
Начну с того, что всем известно. ICO повсюду, все предлагают разные проекты, все продают токены. И у всех есть какая-то модель продаж со скидками, бонусами, сроками и т.п.
Как ни странно хоть область и достаточно экспериментальная, модель бонусов достаточно примитивна. Просто есть разные объемы или временные интервалы и проценты в них. Да и зачем усложнять? А я все таки попробую. Эксперимента ради. Новое всегда привлекает.
Читать полностью »
Под капотом Ethereum Virtual Machine. Часть 1 — Solidity basics
2017-10-25 в 11:35, admin, рубрики: blockchain, Ethereum, solidity, ПрограммированиеВ последнее время все чаще в новостях можно услышать слова "криптовалюта" и "блокчейн" и, как следствие, наблюдается приток большого количества заинтересованных этими технологиями людей, а вместе с этим и огромное количество новых продуктов. Зачастую, для реализации какой-то внутренней логики проекта или же для сбора средств используются "умные контракты" — особые программы, созданные на платформе Ethereum и живущие внутри его блокчейна. В сети уже существует достаточно материала, посвященного созданию простых смарт-контрактов и базовым принципам, однако практически нету описания работы виртуальной машины Ethereum (далее EVM) на более низком уровне, поэтому в этой серии статей я бы хотел разобрать работу EVM более детально.
Solidity — язык, созданный для разработки умных контрактов, существует относительно недавно — его разработка началась только в 2014 году и, как следствие, местами он ''сыроват''. В этой статье я начну с более общего описания работы EVM и некоторых отличительных особенностей solidity, которые нужны для понимая более низко-уровневой работы.
P.s Статья предпологает наличие некоторых базовых знаний о написании смарт-контрактов, а также о блокчейне Ethereum'a в целом, так что если вы слышите об этом в первый раз, то рекомендую сначала ознакомиться с основами, например, здесь:
- Hello world на solidity и деплой контракта в сеть
- Подборка инструментов для разработки
- Описание работы Ethereum и его блокчейна
Table of contents
- Memory
- Storage
- Memory
- Stack
- Data location of complex types
- Transactions and message calls
- Visibility
- LinksЧитать полностью »
Blockchain глазами разработчика
2017-10-25 в 9:24, admin, рубрики: bitcoin, blockchain, Ethereum, ico, open source, solidity, Алгоритмы, децентрализация, Криптовалюты, криптография, Программирование
Зачем этот рассказ? Когда я изучал blockchain по открытым источникам, например по Википедии, информация казалась отрывочной и бессвязной. Прошло время, прежде чем она сложилась в целостную картину. Кажется, я знаю, в каком порядке и какими словами описать введение в blockchain, чтобы любой профессиональный разработчик смог понять общую картину за 1—1,5 часа. В тексте будут некоторые упрощения. Понятно, что в любой теме есть много деталей, куда можно при желании погрузиться.
Смарт контракты Ethereum: что делать при ошибке в смартконтракте или техники миграции
2017-10-01 в 23:02, admin, рубрики: Ethereum, solidity, блокчейн, миграция, смартконтрактПри написании смартконтрактов важно помнить, что после загрузки в блокчейн, они уже не могут быть изменены, а следовательно, не могут быть внесены какие-либо улучшения или исправлены какие-то найденные ошибки! Все мы знаем, что ошибки есть в любой программе, а вернувшись к написанному пару месяцев назад коду мы всегда найдем, что там можно улучшить. Как же быть? Единственно возможный вариант – это загрузить новый контракт с исправленным кодом. Но как же быть, если на базе имеющегося контракта уже выпущены токены? На помощь нам приходит миграция! За последний год я попробовал много разных техник ее реализации, проанализировал применяемые в других крупных блокчейн проектах и что-то поизобретал сам. Подробности под катом.

Читать полностью »
Как я искал (и нашел!) баги в смартконтракте проекта kickico
2017-09-29 в 4:51, admin, рубрики: Ethereum, kickico, solidity, информационная безопасностьВ августе я, неожиданно для себя, поучаствовал в bugbounty проекта Kickico. Я уже рассказал об этом на митапе Atlas Blockchain в прошлую пятницу. Статья — текстовая версия этого доклада с дополнением и небольшим пятничным конкурсом :)
Работа со смарт-контрактами через Ethereum RPC API
2017-09-21 в 6:56, admin, рубрики: blockchain, Ethereum, solidity, Блог компании Райффайзенбанк, платежные системы, Программирование
Всем привет. В этой статье мы рассмотрим основные приемы по публикации смарт-контрактов и взаимодействию с ними с использованием Ethereum RPC API. Обсуждаемые методы API позволяют решать такие задачи:
- Создание счёта.
- Создание корректного смарт-контракта.
- Получение информации со смарт-контракта.
- Изменение состояния смарт-контракта.


