Pull to refresh
8
0
Ilya Druzhinin @ilyadruzh

Engineer, researcher, entrepreneur

Send message

Формальная верификация смарт-контрактов во фреймворке ConCert

Level of difficultyMedium
Reading time12 min
Views1.1K

Добрый день! Меня зовут Кирилл Зиборов, я представляю отдел безопасности распределенных систем Positive Technologies. В этой статье мы продолжим обсуждать методы и инструменты формальной верификации смарт-контрактов и их практическое применение для предотвращения уязвимостей. Мы подробно поговорим о методе дедуктивной верификации, а точнее, о фреймворке для тестирования и верификации смарт-контрактов — ConCert.

Под кат
Total votes 8: ↑8 and ↓0+8
Comments0

Инструмент статического анализа Slither

Reading time6 min
Views2.5K

Всем привет! Я из команды по анализу уязвимостей распределенных систем Positive Technologies. Мы занимаемся исследованием безопасности в области блокчейн-технологий и хотим поделиться обзором фреймворка для статического анализа кода, написанного на Solidity, — Slither. Он разработан компанией Trail of Bits, релиз состоялся в 2018 году. Slither написан на Python 3.

Подробнее
Total votes 7: ↑7 and ↓0+7
Comments2

Создаем конечный автомат в Elixir и Ecto

Reading time6 min
Views2.7K
Существует много полезных шаблонов проектирования и концепция конечного автомата входит в число полезных шаблонов проектирования.

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

В этой публикации вы узнаете, как реализовать этот шаблон с помощью Elixir и Ecto.
Читать дальше →
Total votes 2: ↑1 and ↓1+2
Comments3

Создаём иной смарт-контракт по старому адресу

Level of difficultyMedium
Reading time6 min
Views3K

«Можно ли изменить код смарт‑контракта и разместить по его по старому адресу?» — такой вопрос мне задали на собеседовании Solidity разработчика.

Точный ответ требует разбора вопроса и определения требований к задаче. Требование — «изменить контракт без изменения адреса». Для этого есть подходы с обновляемым смарт‑контрактом… Но оказалось, что нет. Это вопрос на знание опкодов EVM.

Сейчас расскажу как создатьуничтожитьразместить_иной_контракт по старому адресу смарт‑контракта (далее — СмК) без использования паттерна Transparent Proxy и UUPS.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments1

Программирование DeFi: Uniswap. Часть 3

Reading time6 min
Views6.5K

Мы продолжаем создавать клон Uniswap V1!

Наша реализация почти готова: мы реализовали все основные механики смарт-контракта Биржи, включая функции ценообразования, обмена, выпуска LP-токенов и сбора комиссии. Похоже, что наш клон завершен, однако нам не хватает смарт-контракта Фабрики.

Сегодня мы реализуем его и наш клон Uniswap V1 будет завершен.

Читать далее
Total votes 3: ↑2 and ↓1+3
Comments3

Учебник по Solidity. Всё про библиотеки

Reading time11 min
Views18K

“Библиотеки можно рассматривать, как неявные базовые смарт-контракты для смарт-контрактов, которые их используют” из документации языка Solidity

Библиотека в Solidity - это тип смарт-контракта, содержащий многократно используемый код. После развертывания в блокчейне (развёртывается только один раз) ему присваивается определённый адрес, а его свойства / методы могут многократно использоваться другими смарт-контрактами в сети Ethereum.

Они позволяют вести разработку более модульным способом. Иногда полезно думать о библиотеке как о куске кода, который можно вызвать из любого смарт-контракта без необходимости его повторного развертывания.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Учебник по Solidity. Все об адресах

Reading time15 min
Views24K

Продолжаем серию статей про язык Solidity и платформу Ethereum. В этой статье будет рассказываться про адреса в Ethereum. Статья была написана в августе 2019 года, с той порой язык изменился, поэтому несоответствия в описании автора были исправлены.

Во введении проведено сравнение Ethereum адресов с почтовыми адресами в реальном мире.

Техническая часть начинается с раздела "Что такое (технически) адрес в Ethereum?"

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Способы снизить потребление газа смарт-контрактами

Reading time7 min
Views5K

Комментарий от переводчика: статья по меркам Ethereum и языка Solidity относительно старая, аж 2018 года, но ряд идей и подходов будут полезны начинающим.

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

Читать далее
Total votes 7: ↑4 and ↓3+5
Comments0

Учебник по Solidity: Все о модификаторах

Reading time7 min
Views11K

В документации Solidity модификаторы определяются следующим образом:

Модификаторы можно использовать для изменения поведения функций декларативным способом.

Из этого определения можно понять, что модификатор направлен на изменение поведения функции, к которой он присоединен.

Например, автоматическая проверка условий перед выполнением функции (для этого модификаторы в основном и используются).

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments0

Программирование DeFi: Uniswap. Часть 1

Reading time14 min
Views25K

Лучший способ научиться чему-то - научить других. Второй лучший способ научиться чему-то - сделать это самому. Я решил объединить эти два способа и научить себя и вас программировать DeFi сервисы на Ethereum (и любых других блокчейнах, основанных на EVM - Ethereum Virtual Machine).

Мы сосредоточимся на том, как работают эти сервисы, попытаемся понять экономическую механику, которая делает их такими, какие они есть (а все они основаны на экономической механике). Мы будем выяснять, разбирать, изучать и создавать основные механизмы DeFi.

Давайте начнем наше путешествие с Uniswap!

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments6

Программирование DeFi: Uniswap. Часть 2

Reading time10 min
Views7.9K

Это вторая часть серии статей о программировании DeFi смарт-контрактов. В предыдущей части мы впервые соприкоснулись с Uniswap, его основной механикой и начали создавать контракт Биржи. Контракт Биржи может принимать ликвидность от пользователей, рассчитывать суммы вывода и выполнять обмены.

Сегодня мы собираемся закончить реализацию Uniswap V1. Хотя это не будет полная копия Uniswap V1, но она будет иметь все основные функции.

Эта часть наполнена новым кодом, поэтому давайте перейдем непосредственно к нему.

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments2

Тернистый путь стандартизации блокчейн технологий в России

Reading time10 min
Views3K

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

Что может объединить эти два мира? Ответ: диалог экспертов этих двух миров (криптоэкономического и корпоративного) по вопросам стандартизации технологический и лучших практик, а также принятие общих технологических подходов. Такой диалог потенциально сможет упростить последующие интеграционные процессы и ускорить принятие блокчейн-технологий широкими массами.

Но как этого достичь? В коммерческой среде, когда нужно наладить взаимодействие участников какого-либо сектора экономики, создаются ассоциации и консорциумы. В чисто технологических вопросах такими площадками выступают центры стандартизации, например МСЭ-Т(ITU-T), ИСО (Международная организация по стандартизации). В России такой независимой площадкой объединения экспертов блокчейн-технологий выступает Технический Комитет по стандартизации "Программно-аппаратные средства технологий распределённого реестра и блокчейн" (http://bccmt.ru).

Как руководитель одной из рабочих групп (с декабря 2019 года) и эксперт ISO TC 307 DLT (TC 307 - Blockchain and distributed ledger technologies) я хочу поделиться информацией по стандартизации блокчейн технологий в России и мире. А также привлечь внимание экспертов блокчейн рынка к работе ТК 159, как площадке взаимодействия, которая может многое дать своим участникам.

Узнать больше
Total votes 2: ↑1 and ↓1+2
Comments0

Блокчейн-платформа R-chain: общая архитектура и эволюция

Reading time25 min
Views5K

Привет тем, кто следит за развитием применения децентрализованных платформ в корпоративных и межкорпоративных процессах. Наши публикации на эту тему прервались в начале 2018 года. Нет, Райффайзенбанк не прекратил работать в данном направлении: настало время переходить от методологических выкладок и ознакомления с возможностями отдельных технологий к реализации конкретных бизнес-кейсов в промышленной или максимально близкой к ней постановке.



Данная статья довольно объемная и вместе с этим информативная. Поэтому надеемся на вашу вовлеченность и предупреждаем о формате tutorial.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments11

Теория категорий позволяет математике отказаться от равенств

Reading time14 min
Views29K

Две монументальных работы убедили многих математиков отказаться от знака равенства. Их цель – реконструировать основы дисциплины при помощи более слабого взаимоотношения – «эквивалентности». И этот процесс не всегда идёт гладко.




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

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

«Мы породили эту идею равенства, — сказал Джонатан Кэмпбелл из Университета Дьюка. – А на её месте должна была быть эквивалентность».
Читать дальше →
Total votes 41: ↑35 and ↓6+29
Comments134

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Software Architect
Middle
From 300,000 ₽
Solidity
Rust
Ethereum
BlockChain
Designing application architecture
Distributed calculations
Cryptography
Software development
TypeScript
React