Как стать автором
Обновить
5.33

Solidity *

Язык программирования контрактов для Ethereum

Сначала показывать
Порог рейтинга
Уровень сложности

Uniswap v3 → v4: Эволюция DEX или фундамент для DeFi будущего?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.5K

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

Читать далее

Новости

ERC721C против несправедливости: как Limit Break решает проблему роялти

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров269

Создатели NFT всё чаще теряют доходы: маркетплейсы не платят роялти, пользователи ищут обходы, а стандарты вроде ERC-2981 ничего не гарантируют. ERC-721-C пытается это изменить. Новый набор контрактов от Limit Break предлагает механизмы жёсткого контроля за передачей токенов, валидаторы, whitelist’ы и маршрутизацию через Trusted Forwarder. Но вместе с защитой приходит и риск централизации. В этой статье — полный разбор архитектуры ERC721C, её плюсов, минусов и сценариев использования.

Читать далее

Что скрывается за EIP-712: подробный разбор стандарта

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров608

EIP-712 — это стандарт, который делает подписи в Ethereum не только безопасными, но и человекочитаемыми. Он позволяет кошелькам показывать пользователю, что скрывается под подписью, состоящей из набора байт.

В этой статье разбираем, как устроен EIP-712: от домена и хеширования до тонкостей кодирования различных типов данных. Посмотрим, как правильно реализовать проверку подписи на смарт-контракте, какие ошибки чаще всего допускают солидити разработчики — ведь даже у OpenZeppelin находили баги.

Читать далее

Формальная верификация смарт-контрактов Solidity: SMTChecker

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров200

В данной статье мы делаем поверхностный обзор подходов, обеспечивающих безопасность смарт-контрактов. Разбираем устройство и принцип работы инструмента формальной верификации SMTChecker (встроен в компилятор solc), а также верифицируем с его помощью учебные контракты: находим баги и уязвимости, и доказываем их отсутствие.

Читать далее

Как сделать свое первое омничейн приложение на базе LayerZero v2? Часть 3. Параметры (options), особенности, PreCrime

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров290

Это третья, финальная часть моего цикла про LayerZero v2. В первой части я разобрал, как развернуть простой OApp в Remix, во второй — показал, как сделать оминчейн приложение на примере OFT-токена. Теперь пришло время докрутить детали.

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

Читать далее

ERC-2981 под капотом: зачем он нужен и его ограничения

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров434

ERC-2981 стал важным шагом к тому, чтобы NFT-авторы действительно получали справедливые роялти с перепродаж. Но работает ли это в реальности? В статье разбираемся, как устроен этот стандарт, какие задачи он решает, как его поддерживают маркетплейсы — и почему даже с его появлением вопрос с роялти остаётся открытым.

Читать далее

Магия Curve: обзор протокола и война за ликвидность

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров932

Сегодня, на фоне крупных DEX протоколов, таких как Uniswap и Radium, в тени остается Curve. Я считаю, что это незаслуженно. 

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

Читать далее

Надежное программирование в Solidity

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров491

Привет всем из мира авось-программирования Solidity.

Как я уже писал раньше, при неограниченном использовании маппингов и динамических массивов в Solidity, есть весьма малая, но ненулевая вероятность того, что адреса данных, сохраненных в массивах и маппингах, пересекутся. При этом очевидно, логика контракта будет непредсказуемо нарушена.

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

Читать далее

Как сделать свое первое омничейн приложение на базе LayerZero v2? Часть 2. OFT-токен

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров513

В первой части мы разобрали, как развернуть простой OApp в Remix IDE. Пора переходить ко второй. Здесь познакомимся с ключевыми смарт-контрактами и напишем свой OFT (Omnichain Fungible Token). Это поможет на практике разобраться, как работает LayerZero, и понять, на что стоит обращать внимание при разработке омничейн-приложений.

Читать далее

Bittensor: обзор протокола для децентрализованного машинного обучения

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров1.9K

Привет, Хабр! В этой статье расскажу про Bittensor — децентрализованный блокчейн-протокол для распределенного обмена вычислительными мощностями и интеллектуальными ресурсами. Разберёмся, как устроен сам протокол, зачем ему собственный блокчейн и токен TAO, как взаимодействуют майнеры и валидаторы. Поговорим о сильных сторонах системы, но не обойдём стороной и её ограничения.

Читать далее

Как сделать свое первое омничейн приложение на базе LayerZero v2? Часть 1. Простой OApp в Remix

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров670

Если вы уже читали мою статью про архитектуру LayerZero v2, то следующий логичный шаг — попробовать протокол в деле. В этой статье расскажу, как развернуть простой OApp в Remix IDE: настроим контракты, отправим сообщение между двумя сетями и разберёмся, как это работает на практике.

Читать далее

Как я нашел уязвимость в онлайн казино и получил $20 000 в качестве награды

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров10K

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

Читать далее

Атаки реентерабельности в смарт-контрактах: Разбираемся, что это и как с этим бороться

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров1.3K

Атаки реентерабельности — одна из самых известных уязвимостей в Web3-пространстве, часто приводящая к катастрофическим потерям средств в смарт-контрактах. Эти атаки используют уязвимости в логике контракта, рекурсивно вызывая функции до завершения предыдущих операций, манипулируя таким образом балансом и похищая эфир (Ether). Эта глава посвящена пониманию, тестированию и автоматизации обнаружения таких уязвимостей с помощью Foundry, мощного Solidity-фреймворка.

Читать далее

Ближайшие события

История о том, как мы разработали благотворительный web3 сервис для крупнейшей DeFi платформы Lido

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров705

Всем привет! Меня зовут Саша Аксёнов, я — CEO питерской студии разработки. Сегодня расскажу вам о разработке благотворительного сервиса на блокчейне, где можно отчислять процент заработка в НКО. Проект со сложной математикой транзакций, который можно использовать в некоторых странах, чтобы платить меньше налогов. 

Читать далее

ERC-7579: Эволюция абстрактных аккаунтов или как правильно сделать модульную архитектуру

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров930

Привет, Хабр. В этой статье поговорим о новом стандарте для абстракции аккаунтов – ERC-7579, а именно, как он позволяет разработчикам внедрять расширенный функционал и давать пользователю возможность самому изменять настройки аккаунта с помощью модулей. А еще подробнее расскажу, что вообще такое MSA (Modular Smart Accounts), как разрабатывать, устанавливать и регистрировать модули плюс разберем небольшой пример написания и тестирования модуля. 

Читать далее

Современные протоколы кредитования в DeFi: как это работает— Curve LlamaLend

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.8K

В этой статье мы рассмотрим протокол кредитования — Curve LlamaLend. Это уникальный проект, основанный на стейблкоине CrvUSD и использующий автоматизированного маркет-мейкера (AMM) в своей основе. У CrvUSD есть несколько интересных особенностей, таких как математическая модель для управления стабильностью курса и механизмы стабилизации, которые работают с ценовыми диапазонами. Эти диапазоны чем-то напоминают «тики» из Uniswap V3, но функционируют иначе. Ещё одна необычная деталь — так называемые «мягкие ликвидации». Они работают совершенно не так, как стандартные ликвидации в других протоколах.

Разработка Curve LlamaLend ведётся в основном на языке программирования Vyper (похож на Python), что делает его ещё более интересным для технических специалистов.

Читать далее

Изучаем Ethereum через практику: моя история деплоя смарт-контракта в Sepolia

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.7K

Изучаем Ethereum через практику: моя история развертывания смарт-контрактов

Сегодня я с удовольствием поделюсь своим уникальным опытом, полученным при развертывании смарт-контрактов двумя разными методами в тестовой сети Sepolia.

Читать далее

Circom и SnarkJS: Практическое руководство по созданию схем и Zero-Knowledge Proofs

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров1.3K

Привет! В этой статье я расскажу про язык программирования Circom, созданный для разработки арифметических схем, которые лежат в основе доказательств с нулевым разглашением (Zero-Knowledge Proofs, ZKPs). Почему он так удобен для разработчиков и какие инструменты предлагает – читайте в этом практическом руководстве.

Читать далее

Как мы форкнули Uniswap v2: гайд, как сделать это быстро и просто

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

Привет, Хабр! Что если мы скажем, что сделать форк смарт-контрактов известного протокола не такая сложная задача, как может показаться? В этой статье я расскажу, как мы форкнули смарт-контракты Uniswap v2 и задеплоили их в Polygon zkEVM.  

Читать далее

HTLC смарт-контракты: как применять в Ethereum

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1K

В то время, как наши космические корабли бороздят просторы Вселенной, 1inch и UniswapX (подробно изучали в прошлой статье) изобретают intent-based cross chain swap. 

После разбора UniswapX мне стало интересно, а как реализовать старый, добрый Hashed Time Locked Contract (HTLC) для Ethereum? Этот механизм позволяет блокировать активы на определенный срок, требуя от получателя знания ключа для их разблокировки. Вдохновленный работой Joseph Poon и Thaddeus Dryja, HTLC стал основой для создания платежных каналов в Bitcoin Lightning Network.

Читать далее
1
23 ...