Содержание

Что такое Etherscan и как он работает?

Осторожно! Много текста.

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

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

Чтобы начать использовать Etherscan, введите адрес кошелька, идентификатор транзакции (TXID), адрес контракта или другой идентификатор в строку поиска. На экране вы увидите большой объем информации, в основном включающий в себя данные о соответствующих транзакциях, адресах, штампах времени и суммах.

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

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

  

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

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

Etherscan не предоставляет пользователям кошелек Ethereum для использования или хранения приватных ключей. Кроме того, его нельзя использовать для торговли. Сервис действует только в качестве источника информации о блокчейне и базы данных для смарт-контрактов. Для совершения транзакций или хранения криптовалюты вам понадобится криптовалютный кошелек, например, Trust Wallet, MetaMask, Math Wallet или Binance Chain Wallet.Etherscan – один из самых надежных и популярных обозревателей блоков для Ethereum. Для начала необходимо понять, зачем нужно использовать Etherscan и следить за происходящим в блокчейне. Получение данных о способах взаимодействия с блокчейном помогает лучше понять процессы, связанные с DApps и транзакциями, а также обезопасить себя и выявить подозрительную активность.К примеру, с помощью оповещений о китах можно узнавать о перемещении крупных сумм криптовалюты на биржу, что в некоторых случаях может свидетельствовать о большой продаже. Кроме того, вы можете отслеживать транзакции, совершаемые основателями внутри своих проектов. Это позволяет выявить потенциальных мошенников или так называемые rug pulls – схемы, когда разработчики забрасывают свои проекты и распродают монеты .

Основной функцией Etherscan является отслеживание транзакций. Чтобы получить доступ к данным об операциях других пользователей, достаточно научиться отслеживать свои собственные транзакции. Представьте, что вы отправили 0,025 эфира (ETH) из своего кошелька на следующий публичный адрес: 0x480bbcb368197d44c6f54a738e59c33eff004b6a.

Вам также придется оплатить комиссию за транзакцию в размере 0,001559212674537 ETH. После совершения транзакции в вашем кошельке будет отображен следующий TXID:

0x80a3cc0f344651b3de745b2f1efbe8d35d4f348e95b345c8a840ebf955414fa5

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

1. Перейдите на домашнюю страницу Etherscan и найдите строку поиска вверху страницы.

2. Затем скопируйте и вставьте идентификатор транзакции (TXID) в строку и нажмите значок поиска.

3. На экране появится информация обо всех деталях совершенной транзакции:

4. Вы также можете нажать кнопку [Подробнее] для получения большего количества информации, но сейчас нам достаточно данных, отображаемых по умолчанию:

Хеш транзакции

Последовательность чисел и букв (TXID) для конкретной транзакции.

Статус

Информация об ошибке, успешном выполнении или о том, что транзакция не завершена.

Блок

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

Штамп времени

Штамп времени блока, в который была добавлена транзакция.

Отправитель

Адрес кошелька, из которого была совершена транзакция.

Получатель

Адрес получателя или смарт-контракт.

Стоимость

Сумма, отправленная в транзакции.

Комиссия за транзакцию

Комиссия за совершение транзакции.

Цена газа

Тип TXN

Информация о том, проводилась транзакция в рамках прошлой системы газа (1) или в рамках новой системы комиссий за блок в EIP-1559 (2).

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

Для этого нужно вернуться к строке поиска и вставить адрес кошелька получателя:

0x480bbcb368197d44c6f54a738e59c33eff004b6a

Внизу страницы появится список всех транзакций, связанных с этим адресом:

Транзакция, выделенная красным, – это 0,025 ETH, отправленных первоначально. Она имеет отметку In (Поступление), указывая, что адрес, введенный в строке поиска, принадлежит получателю. Вверху страницы вы также можете увидеть баланс кошелька.

Пользователям, регулярно взаимодействующим со смарт-контрактами в DApps, будет полезно знать, как их найти в Etherscan. Это поможет удостовериться в том, что средства были переведены на нужный контракт.

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

Узнать адрес токена можно на CoinMarketCap, CoinGecko, официальном сайте проекта или перейдя по ссылке https://etherscan.io/tokens.Всегда внимательно проверяйте адрес токена на указанных выше сайтах. Возьмем, например, токен Uniswap ERC-20 на Ethereum:

0x1f9840a85d5af5bf1d1762f925bdaddc4201f984

1. Скопируйте и вставьте адрес смарт-контракта в строку поиска.

2. На экране появятся данные о балансе и другая общая информация о контракте токена Uniswap (UNI).

3. Ниже расположен ряд вкладок, таких как транзакции, комментарии и сам смарт-контракт. Нажмите [Contract] (Контракт), чтобы увидеть опции, доступные для взаимодействия с правилами Uniswap и их чтения.

4. Во вкладке [Read Contract] (Читать контракт) отображается общая информация о контракте. Кроме того, вы можете запрашивать баланс конкретных адресов или кошельков, обладающих доступом к средствам на вашем кошельке.

Опция [Write Contract] (Написать контракт) позволяет взаимодействовать с контрактом напрямую. Это может оказаться полезным в случае отсутствия доступа к платформам DeFi и DApps, например, по техническим причинам или из-за сбоя в работе сайта. В некоторых случаях можно попробовать взаимодействовать со смарт-контрактом без использования API проекта.

Нажмите [Connect to Web3] (Подключиться к Web3), чтобы подключиться к криптовалютному кошельку, такому как MetaMask или Binance Chain Wallet, и начать взаимодействовать с контрактом.

Проще всего в этом случае будет перевести монеты с адреса, имеющего доступ к другим адресам, используя опцию [transferFrom] (Перевод от).

Функция [Перевод] позволяет перевести привязанные к контракту токены из подключенного кошелька. Приведенная ниже транзакция отправляет 1 UNI из подключенного кошелька на адрес кошелька получателя, скопированный в строку. Проверяйте количество знаков после запятой, чтобы убедиться в правильности введенной суммы.

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

Цена газа составляет часть комиссии за транзакцию в сети Ethereum. Сумма комиссии зависит от блока, в который была включена конкретная транзакция, поскольку каждый блок имеет фиксированную комиссию, сумма которой меняется в зависимости от трафика сети. Трекер газа в Etherscan показывает разницу в цене и время, когда та или иная цена была действительна, позволяя предположить, насколько загружена сеть и сколько придется заплатить, чтобы отправить простой перевод или взаимодействовать с более сложным смарт-контрактом.Etherscan представляет собой базу данных для текущих аирдропов в сети Ethereum. У каждого аирдропа есть свои правила участия, описанные в столбце [Details] (Детали). Список аирдропов можно найти, перейдя по ссылке https://etherscan.io/airdrops.

Etherscan – это бесплатный и удобный сервис, способный предоставить большее количество информации, чем кошелек или биржа. Любой пользователь может быстро овладеть большинством базовых функций, предлагаемых сервисом. Кроме того, Etherscan является основой для других обозревателей, таких как BscScan, что позволит вам использовать полученные навыки для работы с другими сервисами. Независимо от того, хотите ли вы подтвердить статус транзакции или просмотреть ваш любимый смарт-контракт DApp, Etherscan станет отличным решением.

Смотрим в будущее с Optimism: как Rollups решают проблему масштабирования Ethereum

Решения масштабирования второго уровня (L2) стремительно развиваются, а конкуренция между проектами растет.

L2-технологии значительно ускоряют и удешевляют транзакции, не принося в жертву децентрализацию. Это актуально в условиях высоких комиссий Ethereum, из-за которых все больше пользователей переходят на альтернативные DeFi-платформы вроде Fantom, Avalanche и Binance Smart Chain.

ForkLog разобрался в особенностях L2-решения Optimistic rollups, сопоставил преимущества и недостатки технологии, а также оценил перспективы масштабирования Ethereum.

  • Проекты на базе Optimistic rollups удерживают прочные позиции в сегменте L2-решений, однако конкуренция растет.
  • Платформы Metis Andromeda и Boba Network за короткое время продемонстрировали впечатляющий рост TVL.
  • С запуском Ethereum 2.0 решения второго уровня не утратят актуальность, а лишь в разы повысят эффективность новой блокчейн-системы.

Положение дел в L2-сегменте

Согласно данным L2BEAT, совокупный объем ликвидности в L2-протоколах превышает $5 млрд. Это не так уж много в сравнении с общим TVL сектора DeFi (~$190 млрд). Однако прослеживается тенденция к росту показателя на фоне развития решений второго уровня и не теряющей актуальности проблемы масштабирования Ethereum.

Данные L2BEAT по состоянию на 21.01.2022.

В сегменте L2 с большим отрывом лидирует Arbitrum, однако набирают популярность технологически схожие платформы — Metis Andromeda, Optimism и Boba Network. 

Устойчивое положение также занимают решения на базе ZK-Rollups — технологии, на которую возлагает надежды Виталик Бутерин. 

На скриншоте ниже видна разница в стоимости транзакции для Ethereum и различных решений второго уровня.

Данные L2 Fees по состоянию на 21.01.2022.

Polygon Hermez, Loopring и ZKSync на базе ZK-Rollups предлагают пользователям самую низкую стоимость транзакций. 

Пионеры L2 сегмента — Optimistic Ethereum и Arbitrum One — не самые дешевые альтернативы, несмотря на больший TVL. Существенно ниже комиссии у Boba Network.

Ранее мы рассказали об особенностях Arbitrum и описали два основных пути решения проблемы масштабирования Ethereum. В этой статье мы подробнее рассмотрим другие проекты на базе Optimistic rollups и попытаемся выяснить секрет их популярности.

Optimism

Команда Optimism первой начала разрабатывать EVM-совместимое решение на базе технологии масштабирования Optimistic rollups. Система работает поверх Ethereum и способна эффективно обрабатывать транзакции, наследуя высокую степень безопасности и децентрализации второй по капитализации криптовалюты.

Rollups снижают нагрузку на сеть, группируя транзакции и вынося часть вычислений за пределы Ethereum. Есть два основных типа Rollups: ZK-Rollups и Optimistic rollups (OR). В первом случае генерируются криптографические доказательства (SNARKs), используемые для включения транзакций в блокчейн и согласования состояний базовой сети и цепи второго уровня. 

Optimistic rollups опираются на «доказательства мошенничества» (fraud proofs). Не выполняя никаких вычислений по умолчанию, они «оптимистически» предполагают, что опубликованные в сети данные действительны, если не доказано обратное.

«Поскольку вычисления — медленная и затратная часть использования Ethereum, Optimistic rollups могут предложить улучшение масштабируемости в диапазоне 10-100х в зависимости от типов транзакций. Это число может еще больше увеличиться с введением шардов, поскольку в случае оспаривания транзакции будет доступно больше данных», — поясняется на сайте Ethereum.org.

В Optimism задействованы два типа нод — секвенсоры и верификаторы.Транзакции, отправляемые пользователями в сеть второго уровня, забираются секвенсорами. Последние криптографически подписывают обязательство в точности исполнить полученную транзакцию.  

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

Если выяснится, что предложение мошенническое, верификатор получает вознаграждение, а секвенсор подвергается наказанию — слешингу.

«Любой, кто может предпринять действия, которые понадобится доказывать, чтобы защитить свои средства, должен внести залог. Вы, по сути, берете немного ETH, блокируете их и говорите: “Эй, я обещаю говорить правду… Если я не скажу правду и мошенничество будет доказано, эти деньги подвергнутся слешингу», — пояснил сооснователь Optimism Бен Джонс.

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

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

Для оптимизации работы системы и еще большего сокращения расходов газа транзакционные данные записываются в основную сеть Ethereum как calldata.

В 2021 году команда Optimism пожертвовала $1 млн для поддержки опенсорсных проектов на базе Ethereum.

Преимущества и недостатки Optimism

Из основных преимуществ Optimism можно выделить:

  • EVM-совместимость;
  • высокую степень безопасности данных;
  • быстрые и недорогие транзакции.

EVM-совместимость означает беспрепятственную интеграцию — разработчики могут развернуть в Optimism любой dapp на базе Ethereum, не внося существенных изменений в его архитектуру.
 
В октябре команда Optimism анонсировала переход к концепции «EVM-эквивалентности».

«EVM-эквивалентность — полное соответствие спецификациям виртуальной машины Ethereum — станет новым универсальным стандартом в сфере L2», — подчеркнули разработчики.

В отличие от сайдчейнов вроде Ronin, работающих независимо и полагающихся на свои подходы к обеспечению безопасности, Optimism и другие подобные решения опираются на Ethereum. Транзакции хоть и обрабатываются в L2, но данные о них записываются и хранятся в основной сети. 

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

Основной недостаток Optimism: из-за особенностей работы «доказательств мошенничества» вывод средств через официальный мост Optimism bridge занимает неделю. 

После отправки соответствующей транзакции вывод отменить нельзя — пользователю придется ждать свои ETH семь дней. Кроме того, стоимость вывода может достигать $100 и более, в зависимости от стоимости газа в сети Ethereum.

К счастью, есть кроссчейн-мосты от сторонних проектов вроде Hop Exchange и cBridge, позволяющие быстро перевести средства из одной сети в другую за небольшую комиссию.

Сеть Optimism полагается на заинтересованность верификаторов в том, чтобы оспаривать мошеннические предложения, а также на корректную и добросовестную работу секвенсоров.

«Если количество мошеннических предложений невелико или их нет вовсе, верификаторы получают меньше, либо вообще не получают награды за поддержание ноды», — пояснили аналитики Nansen.

По их словам, такая ситуация лишает верификаторов мотивации к активному участию в экосистеме. 

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

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

«Такая ситуация может привести к полной утрате доверия к сети и к отказу последней», — подчеркнули в аналитической фирме.

Отличия Optimism от Arbitrum

Команда Optimism первой создала EVM-совместимый протокол на базе Optimistic Rollup, однако запуск основной сети несколько раз откладывался. Этим воспользовался проект Arbitrum, получив преимущество первопроходца.

Например, команда Uniswap планировала запустить платформу на базе Optimism вскоре после запуска третьей версии DEX. 

Пока ожидался запуск Uniswap на базе Optimism, сообщество биржи одобрило интеграцию Arbitrum. 

Системы Optimism и Arbitrum во многом схожи. Их ключевое отличие заключается в логике «доказательств мошенничества». 

Optimism использует неинтерактивный подход в отношении fraud proofs, при котором для установления истины повторно выполняется вся транзакция и соответствующие вычисления в сети первого уровня. Arbitrum же использует интерактивный подход в контексте «доказательств мошенничества», где для установления корректного состояния сети проверка производится лишь для конкретного шага.

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

При разрешении спорных моментов Optimism больше полагается на EVM, чем Arbitrum. В первом случае, когда участник экосистемы предлагает fraud proof, вся транзакция проходит через виртуальную машину Ethereum. В случае с Arbitrum процесс разрешения спора проходит офчейн. Затем протокол отправляет «одношаговое утверждение» в EVM для финальной верификации. 

В рамках взятого курса на EVM-эквивалентность разработчики Optimism намерены перейти к интерактивной модели «доказательств мошенничества», а также достичь большей децентрализации.

«Разница между EVM-эквивалентностью и EVM-совместимостью в том, что в первом случае обработка выполняется на EVM, а во втором — на совместимой виртуальной машине вроде Arbitrum Virtual Machine, подобно тому, как это происходит сейчас у Arbitrum», — поясняется в блоге Nansen.

Не исключено, что в будущем появится поддержка Optimism на централизованных биржах вроде Binance и Huobi. Возможность переноса средств из CEX напрямую в экосистему, без мостов, может способствовать росту ее TVL. 

Согласно DeFi Llama, Arbitrum поддерживают 53 dapps (по состоянию на 23.01.2022), а Optimism — только 19 приложений. При этом более 40% от общего TVL экосистемы приходится на проект Synthetics, который одним из первых интегрировал Optimistic Ethereum.

Существенная разница между проектами не только в TVL и числе поддерживаемых платформ — суточное число транзакций в сети Arbitrum превышает показатель Optimism примерно в 17 раз.

Данные: Nansen.

В будущем можно ожидать сокращения разрыва в показателях, поскольку все больше протоколов намерены реализовать поддержку Optimism. Кроме того, недавно команда проекта отказалась от концепции «белого списка» и открыла доступ всем разработчикам. 

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

Как и в случае с Arbitrum, команда Optimism пока не сообщала о планах по выпуску нативного токена.

Metis Andromeda

Долгое время Arbitrum и Optimism конкурировали лишь друг с другом за лидерство среди проектов на базе Optimistic rollups. На них приходилась значительная доля в совокупном TVL протоколов на базе L2. Однако вскоре на горизонте появился новый игрок — Metis Andromeda. 

TVL этого проекта менее чем за месяц вырос более чем в 200 раз — с $1,6 млн (28.12.2021) до $335,6 млн (21.01.2022).

Данные: DeFi Llama.

Этому способствовали рост нативного токена METIS и многочисленные интеграции. Недавно поддержку новой сети добавили платформы Beefy Finance и Pickle. 

На скриншоте выше видно, что львиная доля TVL экосистемы приходится на биржу NetSwap, представляющую собой форк Uniswap. Можно предположить, что популярности этой DEX во многом способствовал аирдроп ее нативного токена NETT для ранних последователей.

Запущенный в 2018 году проект Metis позиционируется как более быстрая и эффективная версия Optimism. Его основатели: Елена Синельникова, также известная по проекту CryptoChicks, Кевин Лю и Юань Су. Релиз токена METIS состоялся в 2020 году.

Metis Andromeda — EVM-совместимая платформа. В ее основе лежит форк Optimism Virtual Machine под названием Metis Virtual Machine (MVM).

Как и другие решения на базе Optimistic rollups, в экосистеме Metis задействованы секвенсоры, которые упорядочивают и «упаковывают» транзакции перед отправкой финальных состояний в основную сеть Ethereum. 

Особенность Metis Andromeda в том, что множество секвенсоров объединяются в ончейн-структуры, именуемые «децентрализованными автономными компаниями» (Decentralized Autonomous Companies, DACs). На каждом блоке протокол случайным образом выбирает новый секвенсор из DAC, чтобы потом отправить изменение состояния в мейннет. 

DAC по своей сути схожи с ДАО. Проект Metis позиционирует их как ончейн-организации, предоставляющие возможность пользователям сотрудничать и совершать определенные действия в экосистеме (например, запускать пул секвенсоров или новое приложение на MVM). Чтобы подтверждать пакеты транзакций, секвенсорам нужно стейкировать METIS. 

Пользователи также могут выступать в качестве «рейнджеров» (Rangers), контролируя активность секвенсоров. Если подтверждается fraud proof, «рейнджеры» получают вознаграждение в METIS, а секвенсоры подвергаются слешингу.

Из особенностей Metis:

  • интеграция IPFS для дешевого и конфиденциального хранения данных;
  • быстрая проверка в процессе отправки изменений состояния в Ethereum благодаря использованию «рейнджеров»;
  • наличие Polis Middleware — программного обеспечения для упрощения запуска и переноса приложений с Web 2.0 на Web 3.0;
  • возможность запуска новых слоев исполнения для DAC, что должно способствовать масштабированию;
  • настраиваемые уровни доступа к MVM.

Помимо свойственным OR-решениям почти мгновенным и недорогим транзакциям, Metis Andromeda предлагает более быстрый вывод средств в основную сеть Ethereum. Это достигается благодаря переработанной системе обнаружения мошенничества с  использованием «рейнджеров», которая позволяет сократить время подтверждения изменения состояния с нескольких дней до нескольких часов.

TVL протокола Metis Andromeda сопоставим с Optimism — $411 млн и $485 млн соответственно (данные L2Beat по состоянию на 24.01.2022).

Boba Network

Это еще один протокол на базе Optimistic rollups, популярность которого во многом обусловлена аирдропом токена BOBA для держателей OMG Network.

Запуск основной сети Boba Network состоялся 20 сентября 2021 года. Над платформой работает команда проекта Enya, являющаяся участником OMG Foundation.

Протокол работает на базе Optimism. Однако, как отметил основатель проекта Алан Чиу, вывод средств в Ethereum происходит в течение считанных минут.

«У нас есть функция под названием Hybrid Compute, позволяющая разработчикам создавать продвинутые алгоритмы, которые слишком дороги для работы ончейн», — подчеркнул Чиу.

По его словам, нативный для Ethereum язык Solidity сильно ограничивает возможности DeFi-разработчиков, многим из которых «пришлось упростить свои алгоритмы».

Чиу добавил, что протокол также ориентирован на юзкейсы с NFT.

TVL платформы Boba Network составляет $245 млн (по состоянию на 24.01.2022).

Данные: L2BEAT.

Преимущества модульных архитектур

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

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

Аналитики Nansen убеждены, что запуск ETH 2.0 и переход с Proof-of-Work на Proof-of-Stake — лишь «верхушка айсберга» в процессе разрешения вышеупомянутой трилеммы.

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

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

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

Solana being down for 48 hours multiple times now makes me question the viability of a monolithic structure.

It’s clear the winning blockchain of the future will likely be one with a modular architecture.

Bullish $ETH 2.0 🚀 & Cosmos Ecosystem.

— Daniel Cheung (@HighCoinviction) January 22, 2022

«Лидирующий блокчейн будущего, вероятно, будет с модульной архитектурой. Бычий настрой в отношении ETH 2.0 и экосистемы Cosmos», — написал инвестор Даниэль Чун.

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

В случае с Ethereum уровень L1 отвечает за безопасность и доступность данных, а построенный поверх него L2 — за исполнение транзакций.

Примеры монолитных и модульных систем.

Базовый уровень Ethereum в настоящее время способен обрабатывать лишь около 15 TPS. L2 могут значительно повысить этот показатель — до 2000-4000 TPS.

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

«Как только наступит Фаза 1 и Rollups переместятся в экосистему Eth3 с использованием шардинга для хранения данных, мы поднимемся до теоретического максимума в ~100 000 TPS», — говорится в статье Виталика Бутерина «Rollup-ориентированная дорожная карта Ethereum».

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

Выводы

Решения на базе Optimistic rollups динамично развиваются, предлагая обычным пользователям быстрые и недорогие транзакции, а разработчикам — простоту интеграции и множество юзкейсов благодаря EVM-совместимости.

Среди таких решений прочные позиции удерживают Arbitrum и Optimism. Оба проекта не прекращают разработки, стремясь к повышению производительности систем и децентрализации.

Набирают популярность новые протоколы — Metis Andromeda и Boba Network, предлагающие быстрый вывод средств благодаря пересмотренному подходу к fraud proofs. У обоих проектов есть собственные токены, цены которых продемонстрировали тесную корреляцию с растущим TVL.

С запуском Ethereum 2.0 проекты на базе Rollups не утратят актуальность, а, наоборот, значительно расширят возможности благодаря шардингу. Учитывая темпы развития сегмента DeFi и связанных с ним NFT, ДАО, GameFi и метавселенных, L2-решения будут играть важную роль для множества проектов и криптоиндустрии в целом. 

С уверенностью можно сказать, что участники рынка только выиграют от конкуренции между монолитными и модульными системами.

Подписывайтесь на канал ForkLog в YouTube!

Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

Количество транзакций Эфира всего 20/сек. Масштабирование

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

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

Все сводится к общей проблеме «масштабируемости». Как низкая пропускная способность, так и стоимость транзакций являются серьезными препятствиями для любой значимой разработки.

Сколько транзакций Ethereum

Сегодня Ethereum обрабатывает около 500 000 транзакций в день и на полную мощность может обрабатывать около 20 транзакций в секунду.

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

Например, платежная сеть Visa обрабатывает 150 миллионов транзакций в день или около 24 000 транзакций в секунду — на порядок больше, чем могла бы достичь любая децентрализованная блокчейн сеть.

Сравнение масштабирования транзакций криптовалют против VISA

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

Помните, что узлы выполняют работу по проверке того, что работа майнеров является действительной. Именно узлы играют неотъемлемую роль в сети, поскольку они являются основной проверкой майнеров, на случай, если они решат действовать злоумышленно.

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

Ноды (узлы) сети Ethereum – принцип работы

Когда дело доходит до масштабирования Ethereum, самый важный вопрос…

Вопросы масштабирования

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

Меньшее количество узлов в сети означает меньше проверок майнеров и большую централизацию в сети в целом.

Решения масштабирования в сети и вне сети

Как правило, существует два подхода к масштабированию общедоступных блокчейнов: масштабирование в блокчейне (on-chain) и масштабирование вне блокчейна (off-chain).

Транзакция в цепочке (on-chain) — это транзакция, которая происходит в блокчейне.

Транзакции вне цепочки (off-chain) относятся к транзакциям, которые происходят в криптовалютной сети без выполнения транзакций в блокчейне.

On-chain масштабирование

Масштабирование в блокчейне относится к любому увеличению пропускной способности на уровне основного блокчейна.

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

Повышая лимит данных, вы можете разместить больше транзакций в каждом интервале нахождения (майнинга) блока в 13 секунд.

Самый простой способ повысить количество транзакций — это увеличить размер блока с транзакциями

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

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

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

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

Хардфорк – часто разделяет блокчейн на два разных. Так появился Ethereum Classic

Off-chain масштабирование

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

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

Основная идея масштабирования в блоковой цепи (sidechain) заключается в том, что основной блокчейн должен использоваться только в качестве уровня доверия и арбитража.

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

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

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

Масштабирование вне цепочки часто называют масштабированием «Второго уровня» (layer 2), потому что оно включает перемещение транзакций в слои, которые располагаются поверх базового блокчейна Ethereum.

Принцип работы слоев верхнего уровня, взаимодействующих с основным слоем Эфириума

Теоретически это может распространяться и на 4-й и 5-й слои, но пока развитие сосредоточено на слое, находящемся непосредственно над Ethereum.

Для масштабирования 2-го уровня требуется дополнительное оборудование и сложное программное обеспечение, поэтому сети часто требуется больше времени, чтобы ощутить его влияние.

Также важно отметить, что масштабирование в основной цепи не было полностью исключено так же, как в Биткоине.

Ethereum 2.0 для решения проблемы масштабирования

Одним из долгожданных решений по масштабированию в дорожной карте Ethereum, является Sharding, — оптимизация основного блокчейна Эфириума.

Проблема с Sharding и масштабированием в блокчейне в целом заключается в том, что изменение основного протокола (с Proof-of-Work на Proof-of-Stake) технически сложно.

Таким образом, сообщество не желает полагаться исключительно на масштабирование в базовом блокчейне Ethereum.

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

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

В основе Ethereum 2.0 лежат три решения по масштабируемости, призванные сделать Ethereum более широко используемым.

Каналы состояния (state channels)

Каналы состояния (state channels) позволяют пользователям осуществлять одноранговые операции «вне блокчейна», отправляя сообщения в основную цепочку только тогда, когда они хотят выйти из канала.

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

Каналы состояний в Ethereum

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

Пример:

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

Чтобы открыть канал, Алиса и Петр отправили бы ETH на Мульти-кошелек (коллективный кошелек). Затем они могут отправлять друг другу столько транзакций, сколько захотят, пока хранят каждую подпись транзакции в автономном режиме. Когда они захотят закрыть канал, они заплатят только одну комиссию за транзакцию и получают свои средства.

Есть много интересных команд, продвигающих технологию каналов состояния.

  1. Counterfactual облегчает разработчикам интеграцию каналов состояния в их dApps,
  2. Spankchain упрощает доступ их пользователей к масштабируемым средам,
  3. а Connext позволяет каждому приложению блокчейна устанавливать и использовать концентратор каналов состояний.

Plasma

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

Плазма в Эфириума — это технология «второго уровня», так как она позволяет блокчейнам работать поверх главной цепи.

Дочерние цепочки привязываются к основной цепочке через корневой смарт-контракт. Этот контракт создает постоянную запись состояния и устанавливает правила для дочерней цепочки. Пользователи должны следовать правилам, изложенным в корневом контракте, если они хотят вернуть свои активы после возвращения в основную цепочку.

объяснение сути Plasma

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

Хотя может показаться, что существует множество угроз безопасности, использование Ethereum в качестве арбитражного слоя (только в случае возникновения спора) заставляет экономически рациональных игроков вести себя честно.

Сообщество Ethereum очень взволновано Plasma, и есть несколько известных команд, создающих основную инфраструктуру.

  1. OmiseGo уже давно работает над внедрением Plasma, чтобы лучше масштабировать свою платежную сеть,
  2. Loom Network создает сайдчейны цепочки Plasma для улучшения пользовательского опыта их коллекционной игры,
  3. а Карл Флёрш из Ethereum Foundation недавно выпустил простую спецификацию Plasma Cash.

Sharding

Шардинг является одним из последних и одним из самых амбициозных компонентов масштабной дорожной карты Эфириума.

Шардинг отличается от Каналов состояния и Плазмы тем, что он повышает производительность самого базового блокчейна Ethereum. Sharding (Осколок с анг.) означает разделение всей сети Эфириума на несколько частей, называемых «осколками». Каждый осколок — это, по сути, отдельный блокчейн со своим собственным состоянием.

Упрощенное объяснение Шардинга

Шардинг также определенно является одним из самых сложных решений в дорожной карте Ethereum, для его реализации еще предстоит провести много исследований и испытаний.

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

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

Выводы

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

В нынешнем виде Ethereum не сможет масштабироваться до миллионов пользователей.

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

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

Независимо от каких-либо сомнений, сообщество Эфириум продвигается вперед и имеет тысячи самых умных людей, работающих над масштабированием.

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

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

Сможет ли Ethereum занять место Bitcoin? — Business FM Kazakhstan

Вот уже 12 лет биткоин — главная криптовалюта крипторынка. У него самая большая капитализация, объемы торгов, количество инвесторов и размер доли на рынке. Сразу за ним идет сеть Виталика Бутерина Ethereum, которая продолжает переход на алгоритм консенсуса Proof-of-Stake (PoS)

Фото: Pexels

Запуск Ethereum 2.0 может кардинально изменить баланс сил и наконец вывести эфир в лидеры. Причем в этом году взрывной рост децентрализованных финансов (DeFi), приложений (dApps) и рынка NFT лишь разогнали цену эфира до рекордных показателей. Вместе с экспертами из media.sigen разобрались, каковы шансы на то, что Ethereum обгонит Bitcoin и станет главной криптовалютой рынка. 

По каким показателям Ethereum догоняет Bitcoin 

Сеть Bitcoin обгоняет Ethereum по большинству основных показателей: капитализации, объемам торгов, доходности майнинга, количеству активных кошельков, транзакций, хешрейту сети. Но это отставание постепенно сокращается, а иногда Ethereum даже вырывается вперед. Например, весной ЕТН-майнеры зарабатывали больше ВТС-майнеров, а блокчейн Ethereum периодически вырывается вперед по количеству обработанных транзакций. 

В день выхода статьи 1 ВТС стоит $47 059, его капитализация — $873 млрд. Цена 1 ЕТН — $3 108, капитализация — $359 млрд. Разница в капитализации — в 2.4 раза. Однако она уменьшается со временем. Например, в начале 2017 года разница была в 23 раза, в январе 2018 года — 2.7, в январе 2020 — 9.36, в начале этого года — 6.75. 

Объем ежедневных торгов с ВТС составляет $35.7 млрд, а с ЕТН — $18.8 млрд. Но при этом количество ЕТН-транзакций с начала года выросло более чем на 50%, а в сети Bitcoin, наоборот, снизилось. 

Сейчас доля ВТС на рынке — 44%, ЕТН — 18.1%. С начала года доминирование биткоина снизилось на 32%, а доля ЕТН выросла лишь на 5.5%. 

Графики долей ВТС и ЕТН на рынке. Большую часть времени ВТС — явный лидер. Лишь в июне 2017 года доля ВТС опустилась до 37.9%, а доля ЕТН поднялась до 33.2%. Источник 

Преимущества Ethereum перед Bitcoin 

Bitcoin и Ethereum — два очень разных проекта. Рассмотрим их ключевые различия.

Биткоин — это в первую очередь криптовалюта. У него ограниченный диапазон вариантов использования — это цифровой актив для тех, кто ищет альтернативный инвестиционный инструмент. Блокчейн Bitcoin работает на устаревшем алгоритме консенсуса Proof-of-Work (PoW), в котором успешность майнера зависит от мощности его оборудования. Ранее мы подробно рассказали о майнинге биткоина.

Сейчас PoW считается устаревшей технологией, которая плохо подходит для денежных переводов — новые проекты, как правило, не используют его. Ведь у PoW масса недостатков:

— низкая скорость и плохая масштабируемость — максимальная скорость транзакций в сети Bitcoin 7–10 операций в секунду;

— высокие комиссии майнеров;

— высокие расходы энергии, в основном полученной от сжигания ископаемого топлива. 

Уже сейчас технически Ethereum превосходит Bitcoin. Скорость этой сети — 30 транзакций в секунду, а благодаря решениям второго уровня пропускная способность может достигать 2 000 – 4 000 операций в секунду. Проверка блоков занимает 12 секунд, против 10 минут у ВТС. 

Ethereum 1.0 также работает на PoW. Но в сети уже идет активный переход к состоянию 2.0, когда сеть будет работать на базе PoS, в ней не будет майнинга, консенсус будет достигаться валидаторами, а новые монеты будут добываться за счет стейкинга. Обновление повысит скорость, эффективность и масштабируемость сети Ethereum, а также сделает добычу эфира более экологичной. Ранее мы подробно рассказали о том, как будет работать Ethereum 2.0 и через какие этапы пройдет сеть на пути к обновлению. 

Вместе с тем Ethereum гораздо больше чем криптовалюта. Это огромная децентрализованная вычислительная сеть, в которой можно запускать смарт-контракты, децентрализованные приложения, DeFi-протоколы, токены и NFT. Получается, что ЕТН — это лишь единица стоимости, существующая в блокчейне Ethereum. 

У Ethereum множество вариантов использования, на его основе построены десятки крупных и популярных экосистем: финансовые и кредитные протоколы, игры, соцсети, системы учета и многие другие проекты крипторынка. 

Почему цена и использование ETH будут лишь возрастать

Думаем, отставание ЕТН от ВТС со временем будет сокращаться. У такой точки зрения есть несколько основных причин. 

Постоянное развитие. У Ethereum мощная и опытная команда разработчиков, которая много лет работает над развитием и масштабированием сети и не боится перемен. Ethereum сейчас и в 2015 году — это разные проекты, а впереди еще переход на PoS, который может сделать этот блокчейн самым передовым проектом на рынке. Bitcoin же за 12 лет почти не изменился. Последние серьезные изменения произошли в 2017 году, когда был активирован протокол SegWit, увеличивший размер блока. 

Ян Балина, основатель и генеральный директор Token Metrics, в комментариях изданию Insider заметил, что биткоин переоценен. У ВТС было преимущество первопроходца, но в долгосрочной перспективе ЕТН превзойдет его благодаря своему техническому совершенству. «Если вы посмотрите на разработчиков, то все они сейчас в значительной степени используют Ethereum. У Ethereum ежемесячно в 10 раз больше активных разработчиков, чем у Bitcoin. ВТС сейчас, на мой взгляд, просто хранилище ценности, цифровое золото, а вот ЕТН — это следующий интернет», — считает Балина. 

Перспективы Ethereum. Эфир может стать основой для любой технологии на блокчейне, у него множество вариантов использования в реальной экономике. Биткоин же вряд ли выйдет за пределы хранения ценности и денежных переводов. Так, Тодд Морли, соучредитель и бывший исполнительный директор инвестиционного гиганта Guggenheim Partners, в комментариях для Bloomberg TV отметил, что ЕТН приносит гораздо больше пользы, чем ВТС. 

Инвестиционный потенциал. По мере взросления крипторынка инвесторы начинают все чаще обращать внимание на альткоины и при принятии решений о вложениях оценивать долгосрочный потенциал проекта. Поскольку ЕТН гораздо дешевле ВТС, то и потенциал для роста цены у него выше. Вероятность, что эфир подорожает в 10 раз и будет стоить дороже $30 000, кажется больше, чем аналогичный рост ВТС до $500 000. 

Подпитывать будущее ценовое ралли будут также и рынки DeFi и NFT, которые растут астрономическими темпами. Так, в DeFi-протоколах сейчас заблокировано свыше $85 млрд — а год назад этот показатель составлял всего $7 млрд. Общий объем продаж NFT превысил $217 млрд. Все это увеличивает спрос на ЕТН и ведет к росту цены монеты. В итоге все больше инвесторов рассматривают эфир как один из лучших вариантов для долгосрочных вложений. 

Марго Пажинская, финансовый аналитик инвестплатформы DotBig, в комментарии для Media SIGEN.pro сказала, что считает, что в отличие от ВТС, а также многих других альткоинов, точки роста ЕТН вполне понятны — они во многом зависят от технологий, которые разрабатывает и внедряет платформа Ethereum.

Дмитрий Колотов, предприниматель, инвестор и основатель компании «Сарапульские системы» рассказал нам, что биткоин не лучшая инвестиция в потенциале 10 лет. Потенциал его стремительного роста почти исчерпан. ВТС уже точно не вырастет в десятки и тем более в сотни раз — ведь тогда монета будет стоить в разы дороже всего золота в мире, а это маловероятно. 

Интерес институциональных инвесторов. Крупные инвесторы все чаще присматриваются к ЕТН — при этом они вкладываются не просто в монету, но в экосистему Ethereum в целом. Например, в ЕТН-трасте Grayscale Investments, крупнейшем в мире управляющим цифровыми активами, находятся активы на сумму в более $10 млрд. 

Экологичность. С переходом на PoS потребление энергии в Ethereum сократится на 99%. Постепенно фактор энергопотребления будет становиться все более значимым, особенно для институциональных инвесторов. 

Как скоро Ethereum может обогнать Bitcoin 

Универсальность Ethereum привлекает внимание известных финансистов и инвесторов, которые рассматривают монету как инвестиционную возможность и наиболее вероятного конкурента биткоина. 

Ряд экспертов считают, что Ethereum однажды, а может быть, и в течение ближайших лет, обгонит ВТС по капитализации и случаям использования. Например, так думают Джон Ву, президент Ava Labs, компании-разработчика Avalanche, Дэн Морхед, основатель крупного криптовалютного инвестфонда Pantera Capital, Майк Новограц, основатель и генеральный директор криптоинвестиционной компании Galaxy Digital, Натан Кокс, главный инвестдиректор криптофонда Two Prime, Марк Кьюбан, инвестор-миллиардер, Чарльз Хоскинсон, основатель Cardano и соучредитель Ethereum.

В майском отчете инвестбанка Goldman Sachs сказано, что эфир — «криптовалюта с самым высоким реальным потенциалом использования… и самая популярная платформа разработки приложений для смарт-контрактов». Учитывая важность случаев реального использования для определения действительной ценности проекта, эксперты инвестбанка считают, что у ETH есть все шансы, чтобы заменить ВТС в качестве главного цифрового актива. Они полагают, что нынешнее лидерство биткоина основано лишь на преимуществах первопроходца и легко может быть потеряно. Наиболее вероятный кандидат на роль нового лидера — Ethereum.

Чтобы ЕТН догнал ВТС по капитализации, его цена должна вырасти до $8 000. Но при таком бычьем рынке биткоин вряд ли будет стоять на месте, поэтому, чтобы уверенно обогнать биткоин, эфиру нужно закрепиться на уровне от $10 000 до $20 000. Эксперты предсказывают монете цену в $4 000 – $5 000 до конца года, и до $10 000 – $20 000 в течение ближайших лет. Есть даже точка зрения, что ETH может достичь $100 000 к 2025 году.

Почему Ethereum не угрожает статусу Bitcoin

Несмотря на все технические преимущества Ethereum и потенциал его использования, его будущее лидерство совсем не гарантированно. 

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

Во-вторых, Ethereum не единственный технически продвинутый проект, на котором держатся смарт-контракты DeFi. На рынке десятки сильных альтернатив, например, Cardano, Solana и Polkadot.

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

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

Ethereum гораздо технологичнее Bitcoin и является основой для огромной экосистемы. Но он не конкурирует напрямую с биткоином. И если эфир обгонит биткоин по каким-то показателям, то это не значит, что первую криптовалюту ждет забвение. 

Дмитрий Мачихин, партнер GMT Legal, в комментариях для Media SIGEN.pro отметил, что даже в качестве средства расчета у эфира нет никаких особых преимуществ перед биткоином: «сплошные недостатки, например, неточности при эмиссии, премайн, возможность изменения базового протокола и прочее». Эксперт считает, что биткоин может потерять свой статус лидера, только если на рынке появится проект, который сможет копировать главные свойства BTC и будет в них лучше его. Но пока что ничего похожего на рынке не существует. 

«Эфир может обогнать биткоин по рыночной капитализации, но это не окажет долгосрочного влияния на рынок. Биткоин — самый сильный бренд на крипторынке, и лишить его статуса первопроходца и абсолютного лидера — это все равно что попытаться заменить ядро Земли. По крайней мере, в ближайшие несколько десятков лет», — считает Дмитрий Мачихин. 

Сергей Хитров, основатель и CEO Listing.Help, считает, что ETH не сможет занять место BTC, так как перед этими проектами стоят абсолютно разные задачи. Но в случае серьезных изменений на рынке ЕТН вполне может обогнать ВТС по капитализации. Например, этому могут способствовать переход эфира к состоянию 2.0 или ужесточение регулирования биткоина. 

Сергей Хитров отметил, что для того, чтобы ETH (или любой другой проект) занял первое место по капитализации и обогнал BTC, потребуется сочетание целого ряда факторов: стабильность работы сети и безопасность; скорость и дешевизна транзакций; широта использования криптовалюты; признание со стороны государственных регуляторов; спрос со стороны крупных институциональных компаний; широкое признание частными инвесторами. Но сейчас подобной комбинации факторов нет ни у одного криптовалютного проекта. Поэтому в ближайшее время BTC сохранит свое место лидера среди криптовалют по капитализации.

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

Расширение PostgreSQL упростит работу с Ethereum

Интеграция
Бизнес-приложения

|

Поделиться

Postgres Professional объявила о создании прототипа расширения Posthereum для интеграции полнофункциональной СУБД PostgreSQL с блокчейн-платформой Ethereum, предназначенной для регистрации сделок с любыми видами активов на основе системы «умных контрактов». Теперь крупные российские банки, корпорации и госструктуры, работающие с СУБД PostgreSQL, смогут объединить базы данных с блокчейн-приложениями на основе Ethereum.

Posthereum позволяет получать аналитику по данным блокчейна в режиме он-лайн. Администраторы или пользователи базы данных смогут узнать, например, какое количество транзакций и на какую сумму было выполнено в блокчейне за месяц, с какой частотой совершался данный тип «умного контракта», какова география наиболее популярных объектов и многие другие детали. Это превращает совместное использование базы данных на PostgreSQL и блокчейна в полноценный бизнес-инструмент.

Posthereum позволяет вызывать функции «умных контрактов» Ethereum из SQL-кода, выполняющегося в базе данных PostgreSQL. При этом изменения данных в PostgreSQL и блокчейне происходят одновременно – это принцип так называемых гетерогенных транзакций. Для примера рассмотрим сервис продажи авиабилетов на блокчейне. Сделки по приобретению билетов совершаются через приложение Ethereum, в котором содержатся только базовые данные о билетах, покупках и сумме транзакций в криптовалюте. 

Подробную базу данных по всем рейсам авиакомпания хранит у себя в полнофункциональной СУБД, доступной ограниченному кругу лиц. Встает вопрос: каким образом изменения в основной базе данных передать в блокчейн, чтобы обеспечить целостность информации? Новое расширение Posthereum для PostgreSQL решает задачу гетерогенных транзакций: данные в обеих системах изменяются либо одновременно, либо изменения не происходят вовсе. Таким образом, исключается ситуация, когда в основной базе время вылета рейса поменялось, а в данных блокчейн-приложения осталось старым, и наоборот.

Приложения на основе системы «умных контрактов» Ethereum находят применение в финансовой сфере, страховом бизнесе, ритейле, логистике, сервисах по заказу билетов, всевозможных реестрах. Государственные структуры заинтересованы в создании децентрализованных баз данных для устранения бюрократической волокиты и удобства обмена информацией. Крупные корпорации и банки оценивают преимущества единой распределенной системы над полным контролем собственных разнородных баз данных. Так, внедрение S7 Airlines и Альфа-Банком блокчейн-платформы Ethereum для автоматизации операций формирования заявки на платеж, проверки достаточности средств, списания средств и обновления статуса повысило скорость обработки с 14 дней до 23 секунд. 

У финтех-компании Revolut появился серьезный конкурент из Литвы

Интеграция

Для запуска решений на основе блокчейна необходимо наладить контакт между отдельными системами управления базами данных и общей распределенной системой. В России открытую СУБД PostgreSQL для серьезных высоконагруженных проектов применяют Яндекс, РосТех, Банк «Открытие», Сбербанк, Правительство Москвы и Московской области, Авито и многие другие. Компания Postgres Professional является российским вендором PostgreSQL и разработчиком отечественной СУБД Postgres Pro на основе PostgreSQL, внесенной в единый реестр программных продуктов. Созданное расширение позволит многочисленным российским пользователям PostgreSQL реализовать проекты по созданию блокчейн систем на основе Ethereum, не беспокоясь о потере данных при взаимодействии между системами. 

В планах Postgres Professional – разработка механизма криптографического аудита транзакций для СУБД Postgres Pro, обеспечивающего сохранность данных на уровне, сравнимом с надежностью блокчейна. Многие отечественные компании хотели бы воспользоваться преимуществами блокчейн-технологий без привязки к криптовалюте. Такую возможность могут предоставить реестры с цифровой подписью транзакций и хэшированием блоков. Несмотря на отсутствие децентрализации базы данных, изменить однажды совершенные транзакции администратор системы не сможет, так как все последующие блоки содержат информацию о предыдущих. Таким образом, российская СУБД Postgres Pro предоставит мощный механизм для создания защищенных реестров. 

Владимир Бахур

Украинский криптовалютный стартап Matter Labs привлек $50 млн. Чем он убедил инвесторов

Основанный украинцами стартап Matter Labs привлек $50 млн. Лид-инвестор раунда – известный фонд Andreessen Horowitz. Команда разрабатывает программу, чтобы сделать сеть Ethereum более быстрой, дешевой и экологичной. Зачем это инвесторам

Matter Labs, запущенный украинцем Алексеем Глуховский и россиянином Алексом Власовым, 9 ноября закрыл раунд В. В нем приняли участие 70 инвесторов, включая Blockchain.com, Crypto.com, Consensys и Andreessen Horowitz (a16z). Ранее компания привлекла лишь $2 млн, сообщает Pitchbook.

Основной центр разработки проекта находится в Украине, а сам стартап – резидент пространства Lift99 в Киеве. «У проекта замечательные основатели: Алекс Глуховский был соучредителем трех компаний и CTO четвертой, Алекс Власов – технологический визионер с научным бекграундом и докторской степенью в электрическом инжиниринге», – описывает фаундер фонд a16z.

Какую проблему решает стартап

Matter Labs упрощает работу децентрализованных сервисов, работающих на базе блокчейна Ethereum. Разработчики используют его, чтобы запускать игры, биржи, программное обеспечение и кошельки на базе блокчейна. По данным State of the dApps, около 80% программ на блокчейне работают именно в Ethereum. Это вторая по популярности крипто-монета – по состоянию на 9 ноября капитализация «эфира» составляла около $568 млрд, а дневной объем торгов достигал $19 млрд.

Из-за высокой нагрузки в блокчейне значительно выросли трансакционные комиссии – с помощью них покрывают затраты на компьютерные расчеты, которые производят участники сети, чтобы валидировать операции. Размер комиссии не фиксирован, по состоянию на 9 ноября он в среднем составлял $60,9 за один перевод – при этом сам «эфир» стоил около $4800 за монету. Также каждая транзакция теперь оставляет большой углеродный след – эквивалент 33,4 кг углекислого газа. Время до завершения транзакции может растянуться на минуты или часы, пишет a16z.

У конкурентов Ethereum, блокчейн-проектов Solana и Tron, комиссии значительно ниже и могут составлять считанные центы. Как удешевить переводы? Matter Labs предлагает обновить правила валидации транзакций в сети Ethereum и разрабатывает протокол zkSync.

С его помощью можно разгрузить трафик и обрабатывать около 2000 сделок в секунду. Данные записываются сначала в сайдчейн – дополнительную цепочку. Тогда объединяются в «пакеты» и передаются в основную цепочку Ethereum. Matter Labs использует доказательство с нулевым разглашением для проверки статуса транзакций.

«Если крипта станет столь успешной, насколько ее предсказывают провидцы – вся цифровая экономика мира живет на блокчейне – тогда ей придется использовать доказательства с нулевым разглашением, – рассказал изданию Techcrunch Глуховский. – У нас просто нет другой технологии, которая могла бы поддержать такой масштаб».

Первая версия zkSync пока тестируется, но момента запуска в июне 2021-го платформа обработала более 2 млн транзакций. Ранее Andreessen Horowitz инвестировал в стартап Optimism, также разрабатывающий решения для масштабирования Ethereum.

Материалы по теме

Комиссия за газ Ethereum — самая низкая за 6 месяцев | Блокчейн24

Средняя комиссия за транзакцию в Ethereum составляет 2,15 доллара.

Самая большая средняя комиссия за транзакцию в прошлом месяце составила почти 70 долларов. Комиссия за транзакции биткоина также резко упала.

Средняя комиссия за транзакцию в Ethereum составляет 2,15 доллара, как показывают данные BitInfoCharts. Это самая низкая средняя комиссия с 20 декабря 2020 года, когда средняя комиссия составляла 2 доллара США.

Комиссионные за транзакции не превышали 2 долларов в течение большей части 2020 года, но все стало безумным, как только в этом году бычий рост Биткойна достиг максимальной скорости, в результате чего Ethereum начал свою работу. Комиссия за транзакции ETH упала до 69,92 доллара 12 мая, на следующий день после того, как Ethereum достигла рекордного уровня в 4164 доллара. Еще один мимолетный максимум случился ровно через неделю, когда комиссия за транзакцию выросла до 59,57 доллара.

Что все это значит?

Комиссии низкие, потому что спрос на Ethereum низкий. Цена ETH сейчас составляет около 1800 долларов и медленно падает.

То же самое произошло и со средней комиссией за транзакцию биткоина, которая за ночь упала на 24% и составила 5,10 доллара. Цена Биткойна составляет 32700 долларов, что примерно вдвое ниже рекордного уровня, установленного трейдерами в апреле.

По данным Ycharts, комиссия за транзакцию BTC на 330% ниже, чем в это время в прошлом году.

Хотя низкие комиссии за транзакции вредны для майнеров и могут указывать на низкий спрос на сеть, они хороши для всех, кто обрабатывает сложные транзакции через децентрализованные финансовые протоколы на основе Ethereum, такие как Uniswap или Synthetix.

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

Успешное обновление может помочь Ethereum совершить мощное возвращение. Но при повышении спроса комиссии могут снова вырасти.

Ethereum: что такое комиссия за транзакцию и как она определяется?

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

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

Майнинг биткойнов

3 января 2009 года сеть биткойнов появилась после того, как ее основатель Сатоши Накамото добыл исходный блок биткойнов (блок номер 0) и получил вознаграждение в размере 50 биткойнов. Вознаграждения за майнинг биткойнов уменьшаются вдвое примерно каждые четыре года из-за его дефицита. В настоящее время майнеры получают вознаграждение в размере 6,25 биткойнов за каждый блок. Кроме того, когда транзакция утверждается посредством майнинга, она добавляется в блок, который затем добавляется в блокчейн Биткойн.Блокчейн — это неизменная, децентрализованная и прозрачная компьютерная сеть, которая действует как общедоступная книга. Для получения дополнительной информации, пожалуйста, обратитесь к моей предыдущей статье здесь.

Не все токены добываются, однако наиболее популярными или широко используемыми являются Биткойн и Эфириум. Сегодня мы сосредоточимся на блокчейне Ethereum с использованием токенов ETH.

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

Комиссия за транзакцию определяется механизмом комиссии за транзакцию (TFM), ключевым компонентом протокола блокчейна. Тем не менее, еще предстоит провести эмпирическое исследование влияния TFM на реальный мир. Недавно исследование, проведенное Дьюком и Пекинским университетом, оценило влияние EIP-1559, первого TFM, отказавшегося от традиционной парадигмы аукциона первой цены.

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

«Газ — это единица измерения количества вычислительных усилий, необходимых для выполнения конкретной сетевой операции»

Уильям Чжао 23 года, студент-исследователь

Тем не менее, цена на газ постоянно меняется в зависимости от того, как много других пытаются совершать транзакции в блокчейне.Цены на газ обычно указываются в GWEI или в одной миллиардной части ETH (0,000000001 ETH). Для контекста по состоянию на 1 февраля 2022 года в 1:17 по восточному времени ETH стоит 2778,50 долларов США за токен.

Когда транзакция ETH размещается, она не завершается немедленно и находится в пуле памяти или «мемпуле». Это небольшие базы данных неподтвержденных или ожидающих обработки транзакций. До обновления EIP-1559 TFM Ethereum основывался на парадигме аукциона первой цены.

Мемпул

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

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

EIP-1559 улучшает взаимодействие с пользователем, сокращая время ожидания пользователей, улучшая оценку комиссий и уменьшая разницу в уплаченной цене газа внутри блока (что более важно для майнеров).Однако EIP-1559 не оказал большого влияния на снижение платы за газ или безопасность консенсуса. Кроме того, они обнаружили, что когда цена ETH более волатильна, время ожидания значительно увеличивается.

Рисунок 8: Распределение среднего времени ожидания. Пользователи испытывают гораздо меньшее время ожидания транзакции после EIP-1559.

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

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

Уильям Чжао, 23 года, студент-исследователь

Эта исследовательская работа была признана Виталиком Бутериным, одним из соучредителей Ethereum.

Автор: Анна Готскинд,
выпуск 2022 г.

До свидания, шахтеры! Как будут работать большие изменения Ethereum

Ethereum вносит большие изменения. Возможно, самым важным является избавление от «майнеров», которые отслеживают и проверяют транзакции в самой популярной в мире сети блокчейнов. Майнеры — это сердце системы, известной как доказательство работы.Он был разработан Биткойном и принят Эфириумом и подвергается растущей критике за его воздействие на окружающую среду: майнеры Биткойн теперь используют столько же электроэнергии, сколько некоторые малые страны. По словам сторонников, переход, который теперь планируется поэтапно ввести к началу 2022 года, помимо того, что он будет более экологичным и быстрым, проиллюстрирует еще одно различие между Ethereum и биткойном: готовность меняться и рассматривать сеть как продукт сообщества в той же степени, что и код. .

1. Как отслеживаются транзакции Биткойн и Эфириум?

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

2. Что такое доказательство работы?

Системы доказательства работы существовали до Белой книги Биткойн Накамото 2008 года, но эта концепция никогда не использовалась так широко. Сегодня в Биткойне и Эфириуме транзакции группируются в «блоки», которые проверяются и публикуются в общедоступной «цепочке» каждые несколько минут. Доказательство работы, необходимое для публикации последнего блока, выполняется майнерами, чьи компьютеры выполняют миллионы вычислений методом проб и ошибок, чтобы преобразовать заданный ввод в требуемый вывод.Первый майнер, которому удается произвести требуемый результат, делится им с сетью, которая проверяет, работает ли он, и вознаграждается за усилия бесплатной криптовалютой. Система также устанавливает минимальную стоимость монет — никто не будет инвестировать электроэнергию, компьютерное оборудование и другие расходы на майнинг, если монеты не стоят по крайней мере этой суммы.

3. Какие проблемы с ним?

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

4. Что такое доказательство доли?

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

* Принять участие может любой, кто поставит или поставит 32 эфира.(Эфир, монета, используемая для работы системы Ethereum, в мае достиг стоимости более 4000 долларов.)

* Люди в этом пуле выбираются случайным образом в качестве «валидаторов» пакета транзакций, роль, которая требует от них приказа транзакции и предложить получившийся блок в сеть.

* Валидаторы делятся этим новым фрагментом блокчейна с группой членов пула, выбранных в качестве «аттестаторов». Для любой данной процедуры блокировки требуется минимум 128 аттестующих.

* Подтверждающие проверяют работу валидатора и либо принимают ее, либо отклоняют.Если он принят, как валидаторы, так и аттестаторы получают бесплатный эфир.

5. Каковы преимущества системы?

Считается, что переход на Proof-of-Stake сократит энергопотребление Ethereum, оцениваемое в 45 000 гигаватт-часов, на 99,9%. Как и любое другое предприятие, зависящее от облачных вычислений, его углеродный след будет только от его серверов. Также ожидается увеличение скорости сети. Это важно для Ethereum, у которого есть амбиции стать платформой для широкого спектра финансовых и коммерческих транзакций.В настоящее время Ethereum обрабатывает около 30 транзакций в секунду. Виталик Бутерин, изобретатель Эфириума, считает, что с шардингом скорость может возрасти до 100 000 в секунду.

6. Каковы его недостатки?

В системе с доказательством доли было бы сложнее, чем в системе с доказательством работы, группе получить контроль над процессом, но все же возможно: чем больше Эфира ставит человек или группа, тем больше шанс быть выбранным в качестве валидатора или аттестатора. Были введены экономические сдерживающие факторы, чтобы отговорить поведение, которое вредно для сети.Например, валидатор, пытающийся манипулировать процессом, может потерять часть поставленных им 32 эфиров. Уилсон Уитиам, старший аналитик исследовательской компании Messari, которая специализируется на протоколах блокчейна, сказал, что проблема лежит в основе проблемы децентрализованных систем. «Это один из самых важных вопросов в будущем», — сказал он. «Как вы помогаете демократизировать систему ставок?»

7. Как еще меняется Эфириум?

Самым последним изменением стал Лондонский хардфорк, который вступил в силу в начале августа.Самым большим изменением в блокчейне Ethereum с 2015 года стал лондонский хард-форк, включающий функцию снижения комиссий под названием EIP 1559. Снижение комиссий сокращает предложение эфира в рамках каждой транзакции, создавая вероятность того, что Ethereum может стать дефляционным. По состоянию на середину августа из-за EIP 1559 уничтожалось 3,2 эфира в минуту, согласно отслеживающему сайту ultra.money. Это может оказать повышательное давление на цену эфира в будущем. Еще одно изменение в работе называется шардингом, который разделит сеть Ethereum на 64 географических региона.Транзакции внутри сегмента будут обрабатываться отдельно, а затем результаты будут согласовываться с основной сетью, связанной со всеми другими сегментами, что сделает всю сеть намного быстрее.

Другие подобные статьи доступны на сайте bloomberg.com

© Bloomberg L.P., 2021 г.

Криптография с открытым ключом (также называемая «асимметричной криптографией») является основной частью современной информационной безопасности. Протокол обмена ключами, впервые опубликованный в 1970-х годах Мартином Хеллманом, Уитфилдом Диффи и Ральфом Мерклем, стал монументальным прорывом, вызвавшим первую волну общественного интереса к области криптографии.До 1970-х годов правительства держали в секрете сильные криптографические знания.

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

Например, умножение двух больших простых чисел является тривиальной задачей.Но, зная произведение двух больших простых чисел, очень сложно найти простые множители (задача, называемая простой факторизацией ). Допустим, мы представляем число 8 018 009 и говорим вам, что это произведение двух простых чисел. Найти эти два простых числа для вас гораздо труднее, чем мне было умножить их, чтобы получить 8 018 009.

Некоторые из этих математических функций можно легко инвертировать, если вы знаете секретную информацию. В предыдущем примере, если я скажу вам, что один из простых множителей равен 2 003, вы легко сможете найти другой простым делением: 8 018 009 ÷ 2 003 = 4 003.Такие функции часто называют функциями-лазейками , потому что их очень трудно инвертировать, если только вам не предоставлена ​​часть секретной информации, которую можно использовать как ярлык для реверсирования функции.

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

Примечание

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

В Ethereum мы используем криптографию с открытым ключом (также известную как асимметричная криптография) для создания пары открытого и закрытого ключей, о которой мы говорили в этой главе.Они считаются «парой», потому что открытый ключ является производным от закрытого ключа. Вместе они представляют учетную запись Ethereum, предоставляя, соответственно, общедоступный дескриптор учетной записи (адрес) и частный контроль над доступом к любому эфиру в учетной записи и над любой аутентификацией, необходимой учетной записи при использовании смарт-контрактов. Закрытый ключ контролирует доступ, являясь уникальной частью информации, необходимой для создания цифровых подписей , которые необходимы для подписания транзакций для расходования любых средств на счете.Цифровые подписи также используются для аутентификации владельцев или пользователей контрактов, как мы увидим в главе 7.

Наконечник

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

Цифровая подпись может быть создана для подписи любого сообщения. Для транзакций Ethereum детали самой транзакции используются в качестве сообщения.Математика криптографии — в данном случае криптография на основе эллиптических кривых — обеспечивает способ объединения сообщения (т. е. сведений о транзакции) с закрытым ключом для создания кода, который может быть получен только при наличии знания закрытого ключа. Это
код называется цифровой подписью. Обратите внимание, что транзакция Ethereum — это, по сути, запрос на доступ к определенной учетной записи с определенным адресом Ethereum. Когда транзакция отправляется в сеть Ethereum для перемещения средств или взаимодействия со смарт-контрактами, она должна быть отправлена ​​с цифровой подписью, созданной с помощью закрытого ключа, соответствующего рассматриваемому адресу Ethereum.Математика эллиптической кривой означает, что любой может проверить действительность транзакции, проверив соответствие цифровой подписи деталям транзакции и адресу Ethereum, к которому запрашивается доступ. Проверка вообще не включает закрытый ключ; что остается частным. Однако процесс проверки без сомнения определяет, что транзакция могла быть совершена только кем-то с закрытым ключом, который соответствует открытому ключу за адресом Ethereum.Это «магия» криптографии с открытым ключом.

Наконечник

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

Типы учетных записей, газ и транзакции — Документация Ethereum Homestead 0.1

EOA против контрактных счетов

В Ethereum есть два типа учетных записей
  • Внешние счета
  • Счета контрактов

Это различие может быть устранено в Serenity.

Внешние учетные записи (EOA)

Учетная запись, контролируемая извне

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

Контрактные счета

Контракт

  • имеет эфирный баланс,
  • имеет ассоциированный код,
  • Выполнение кода

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

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

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

Все балансы и стоимость эфира выражены в единицах вей: 1 эфир равен 1e18 вей.

Примечание

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

Что такое транзакция?

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

Транзакции содержат:
  • получатель сообщения,
  • подпись, идентифицирующая отправителя и подтверждающая его намерение отправить сообщение через блокчейн получателю,
  • VALUE поле — Сумма вэй для перевода от отправителя получателю,
  • необязательное поле данных, которое может содержать сообщение, отправленное на контракт,
  • значение STARTGAS , представляющее максимальное количество вычислительных шагов, разрешенных для выполнения транзакции,
  • a GASPRICE Значение, представляющее комиссию, которую отправитель готов заплатить за газ.Одна единица газа соответствует выполнению одной атомарной инструкции, т. е. вычислительному шагу.

Что такое сообщение?

Контракты имеют возможность отправлять «сообщения» другим контрактам. Сообщения — это виртуальные объекты, которые никогда не сериализуются и существуют только в среде выполнения Ethereum.
Их можно рассматривать как вызовы функций.

Сообщение содержит:
  • отправитель сообщения (неявный).
  • получатель сообщения
  • Поле VALUE — Сумма wei для перевода вместе с сообщением на адрес контракта,
  • необязательное поле данных, то есть фактические входные данные для контракта
  • значение STARTGAS , которое ограничивает максимальное количество газа, которое может возникнуть при выполнении кода, вызванного сообщением.

По сути, сообщение похоже на транзакцию, за исключением того, что оно создается контрактом, а не внешним субъектом. Сообщение создается, когда исполняемый в данный момент код контракта выполняет коды операций CALL или DELEGATECALL , которые создают и выполняют сообщение. Как и транзакция, сообщение ведет к учетной записи получателя, выполняющей его код. Таким образом, контракты могут иметь отношения с другими контрактами точно так же, как и внешние акторы.

Что такое газ?

Ethereum реализует среду выполнения на блокчейне, называемую виртуальной машиной Ethereum (EVM). Каждый узел, участвующий в сети, запускает EVM как часть протокола проверки блоков. Они проходят транзакции, перечисленные в блоке, который они проверяют, и запускают код, запускаемый транзакцией в EVM. Каждый полный узел в сети выполняет одни и те же вычисления и хранит одни и те же значения. Очевидно, что Ethereum не занимается оптимизацией эффективности вычислений.Его параллельная обработка избыточно параллельна. Это должно предложить эффективный способ достижения консенсуса по состоянию системы без необходимости использования доверенных третьих сторон, оракулов или монополий на насилие. Но важно то, что их нет для оптимальных вычислений. Тот факт, что выполнение контрактов избыточно реплицируется между узлами, естественно, делает их дорогостоящими, что обычно создает стимул не использовать блокчейн для вычислений, которые могут быть выполнены вне сети.

Когда вы запускаете децентрализованное приложение (dapp), оно взаимодействует с блокчейном для чтения и изменения своего состояния, но dapps обычно помещают в блокчейн только бизнес-логику и состояние, которые имеют решающее значение для консенсуса.

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

Gas — это название платы за выполнение, которую отправители транзакций должны платить за каждую операцию, выполненную в блокчейне Ethereum. Название газа навеяно мнением о том, что эта плата действует как криптотопливо, управляя движением смарт-контрактов.Газ покупается за эфир у майнеров, выполняющих код. Газ и эфир намеренно отделены друг от друга, поскольку единицы газа совпадают с вычислительными единицами, имеющими естественную стоимость, в то время как цена эфира обычно колеблется в результате рыночных сил. Оба опосредованы свободным рынком: цена на газ фактически определяется майнерами, которые могут отказаться обрабатывать транзакцию с более низкой ценой на газ, чем их минимальный лимит. Чтобы получить газ, вам просто нужно добавить эфир на свой счет. Клиенты Эфириума автоматически покупают газ за ваш эфир в размере, который вы укажете в качестве максимального расхода на транзакцию.

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

Оценка трансакционных издержек

Общая стоимость эфира за транзакцию зависит от 2 факторов:

gasUsed — это общий газ, потребленный транзакцией

gasPrice цена (в эфире) одной единицы газа, указанная в сделке

Общая стоимость = Использовано газа * Цена газа

газБ/у

Каждой операции в EVM был присвоен номер, указывающий, сколько газа она потребляет. gasUsed — сумма всего газа для всех выполненных операций. Существует электронная таблица, которая дает представление о некоторых анализах, стоящих за этим.

Для оценки gasUsed существует API оценки газа, который можно использовать, но с некоторыми оговорками.

газЦена

Пользователь создает и подписывает транзакцию, и каждый пользователь может указать любую gasPrice по своему желанию, которая может быть равна нулю. Однако у клиентов Ethereum, запущенных на Frontier, по умолчанию gasPrice был равен 0.05e12 вэй. Поскольку майнеры оптимизируют свой доход, если большинство транзакций отправляются с gasPrice 0,05e12 wei, будет сложно убедить майнера принять транзакцию, в которой указана более низкая или нулевая gasPrice.

Пример стоимости транзакции

Возьмем контракт, который просто добавляет 2 числа. Код операции EVM ADD потребляет 3 газа.

Приблизительная стоимость с использованием цены на газ по умолчанию (по состоянию на январь 2016 г.):

3 * 0,05e12 = 1.5e11 вэй

Поскольку 1 эфир равен 1e18 wei, общая стоимость составит 0,00000015 эфира.

Это упрощение, поскольку оно игнорирует некоторые затраты, такие как стоимость передачи 2 чисел в контракт, прежде чем их можно будет даже добавить.

Название операции Стоимость газа Примечание
шаг 1 сумма по умолчанию за цикл выполнения
стоп 0 бесплатно
самоубийство 0 бесплатно
ша3 20  
груз 20 получить из постоянного хранилища
магазин 100 поставлен на постоянное хранение
баланс 20  
создать 100 создание контракта
звоните 20 инициирование вызова только для чтения
память 1 каждое дополнительное слово при расширении памяти
тксданные 5 каждый байт данных или код транзакции
транзакция 500 транзакция базовой комиссии
создание контракта 53000 изменен в усадьбе с 21000

Пример взаимодействия со счетом — договор пари

Как упоминалось ранее, существует два типа учетных записей:

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

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

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

Контракты обычно служат четырем целям:

  • Поддерживать хранилище данных, представляющее что-то полезное либо для других контрактов, либо для внешнего мира; одним примером этого является контракт, имитирующий валюту, а другой — контракт, в котором фиксируется членство в определенной организации.
  • Служить своего рода внешней учетной записью с более сложной политикой доступа; это называется «контрактом на пересылку» и обычно включает в себя простую повторную отправку входящих сообщений в желаемое место назначения только при соблюдении определенных условий; например, можно иметь контракт пересылки, который ожидает, пока два из заданных трех закрытых ключей не подтвердят конкретное сообщение перед его повторной отправкой (т.мультиподпись). Более сложные контракты на пересылку имеют разные условия в зависимости от характера отправляемого сообщения. Самый простой вариант использования этой функции — ограничение на снятие средств, которое можно обойти с помощью более сложной процедуры доступа. Контракт кошелька является хорошим примером этого.
  • Управление текущим контрактом или отношениями между несколькими пользователями. Примеры этого включают финансовый контракт, условное депонирование с определенным набором посредников или какую-либо страховку. Можно также иметь открытый контракт, который одна сторона оставляет открытым для любой другой стороны, с которым можно вступить в любое время; Одним из примеров этого является контракт, который автоматически выплачивает вознаграждение тому, кто представит правильное решение какой-либо математической задачи или докажет, что он предоставляет некоторый вычислительный ресурс.
  • Предоставлять функции другим контрактам, по существу выступая в качестве библиотеки программного обеспечения.

Контракты взаимодействуют друг с другом посредством действия, которое попеременно называется либо «вызовом», либо «отправкой сообщений». «Сообщение» — это объект, содержащий некоторое количество эфира, байтовый массив данных любого размера, адреса отправителя и получателя. Когда контракт получает сообщение, у него есть возможность вернуть некоторые данные, которые первоначальный отправитель сообщения может сразу использовать.Таким образом, отправка сообщения аналогична вызову функции.

Поскольку контракты могут играть такие разные роли, мы ожидаем, что контракты будут взаимодействовать друг с другом. В качестве примера рассмотрим ситуацию, когда Алиса и Боб ставят 100 GavCoin на то, что температура в Сан-Франциско не превысит 35ºC в любой момент следующего года. Однако Алиса очень заботится о безопасности и в качестве своей основной учетной записи использует контракт пересылки, который отправляет сообщения только с одобрения двух из трех закрытых ключей.Боб параноидально относится к квантовой криптографии, поэтому он использует контракт пересылки, который передает только сообщения, подписанные с помощью подписей Лампорта наряду с традиционной ECDSA (но, поскольку он старомоден, он предпочитает использовать версию подписей Лампорта, основанную на SHA256, которая является не поддерживается напрямую в Ethereum).

Контракт на размещение ставок сам по себе должен получать данные о погоде в Сан-Франциско из какого-либо контракта, а также должен обращаться к контракту GavCoin, когда он хочет фактически отправить GavCoin либо Алисе, либо Бобу (или, точнее, Алисе или Бобу). экспедиторский договор).Мы можем показать отношения между учетными записями таким образом:

Когда Боб хочет завершить ставку, происходят следующие шаги:

  1. Отправлена ​​транзакция, инициирующая сообщение от EOA Боба к его контракту на пересылку.
  2. Контракт Боба на пересылку отправляет хэш сообщения и подпись Лэмпорта в контракт, который функционирует как библиотека проверки подписи Лэмпорта.
  3. Библиотека проверки подписи Lamport видит, что Бобу нужна подпись Lamport на основе SHA256, поэтому она вызывает библиотеку SHA256 столько раз, сколько необходимо для проверки подписи.
  4. Как только библиотека проверки подписи Лэмпорта возвращает 1, означающую, что подпись была проверена, она отправляет сообщение в контракт, представляющее ставку.
  5. Контракт на пари проверяет контракт, в котором указана температура в Сан-Франциско, чтобы узнать, какая она.
  6. Контракт пари видит, что ответ на сообщения показывает, что температура выше 35ºC, поэтому он отправляет сообщение контракту GavCoin для перемещения GavCoin со своего счета на контракт пересылки Боба.

Обратите внимание, что все GavCoin «хранятся» как записи в базе данных контракта GavCoin; слово «учетная запись» в контексте шага 6 просто означает, что в хранилище контрактов GavCoin есть запись данных с ключом для адреса контракта на ставку и значением для его баланса. После получения этого сообщения контракт GavCoin уменьшает это значение на некоторую величину и увеличивает значение в записи, соответствующей адресу экспедиторского контракта Боба. Мы можем увидеть эти шаги на следующей диаграмме:

транзакций Ethereum | Alexandria

Транзакции Ethereum — это криптографически подписанные инструкции для инициирования транзакции для обновления состояния сети Ethereum.

Что такое транзакция Ethereum?

Транзакции Ethereum — это криптографически подписанные инструкции от учетных записей, где учетная запись инициирует транзакцию для обновления состояния сети Ethereum. Самая простая транзакция — это та, которая происходит с одной учетной записи ETH на другую.

В мире криптовалют транзакция Ethereum — это действие, которое инициируется внешней учетной записью или, другими словами, управляется человеком, а не контрактом.Если Джонни отправляет 2 ETH Джиму, счет Джонни должен быть дебетован, а счет Джима должен быть зачислен. Когда это состояние изменяется, действие происходит с транзакцией.

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

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

Получатель — это адрес счета, на который фактически отправляется транзакция.

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

Данные — это необязательные произвольные двоичные данные, куда на протяжении всего развертывания контракта отправляется байт-код контракта.

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

Границы | Механизм обнаружения и предотвращения атак повторного входа в смарт-контракты блокчейна Ethereum

Введение

С 2015 года, когда были введены смарт-контракты Ethereum, произошло несколько инцидентов, в которых работа смарт-контрактов, содержащих определенное количество эфира, приводила к конфликтам или проблемам. (Альхалифа и др., 2019). Два из этих инцидентов были вызваны повторной уязвимостью. Первый инцидент произошел в 2016 году, когда злоумышленник запустил повторную атаку на смарт-контракт распределенной автономной организации (DAO), что привело к потере более 3 600 000 миллионов эфиров на сумму более 60 миллионов долларов США на тот момент; рынок эфира рухнул, и этот инцидент вызвал хард-форк, который привел к появлению двух версий блокчейна эфириума. Второй инцидент произошел в 2018 году, когда злоумышленник украл у SpankChain более 165 эфиров на сумму почти 40 000 долларов США из-за уязвимости повторного входа в смарт-контракте платежного канала сети (Alkhalifah et al., 2020). Несмотря на эти инциденты, популярность смарт-контрактов растет; однако они также становятся более привлекательными целями для противников.

Смарт-контракты являются одним из наиболее часто используемых векторов атак на Ethereum, поскольку они похожи на любые другие исполняемые приложения, работающие на компьютерах. Тем не менее, смарт-контракты более чувствительны с точки зрения кибербезопасности из-за следующих факторов:

• Смарт-контракты в блокчейне Ethereum считаются новой платформой; поэтому методы кодирования смарт-контрактов еще не созрели (Hung et al., 2019).

• Смарт-контракт может быть связан с цифровым состоянием, которое может стоить миллионы долларов (Schrans et al., 2018).

• Смарт-контракты работают поверх неизменной цепочки блоков. Таким образом, после развертывания смарт-контрактов в блокчейне их изменение может стать непрактичным и чрезвычайно сложным, даже если они содержат недостатки (концепция «код — это закон») (Madnick 2020).

Правда ли, что «код — это закон» в смарт-контрактах Ethereum? Многие контрмеры направлены на обнаружение недостатков безопасности на этапе разработки, поскольку контракты работают поверх неизменной технологии.Однако разработчикам смарт-контрактов необходимо устранять эти недостатки на этапе исполнения, а не полагаться только на этап разработки. Вопрос в том, как мы можем защитить смарт-контракт на этапе исполнения, даже если он неизменен и содержит недостатки.

Эта статья организована следующим образом. В разделе «Работа, связанная с » и «Ограничения текущих решений » мы анализируем соответствующую литературу по двум категориям: однофункциональные и кросс-функциональные повторные атаки.Мы обобщаем ограничения существующих решений, предотвращая использование уязвимостей до развертывания смарт-контрактов. Мы предлагаем решение вместе с механизмом предотвращения для защиты смарт-контрактов и методом обнаружения для идентификации злоумышленников в разделе Предлагаемое решение . Разделы Реализация решения и Подтверждение концепции описывают три подхода нашей архитектуры реализации и результат проверки концепции, который показывает, что предлагаемое решение может быть использовано против повторных атак во время выполнения любого смарт-контракта. .Наконец, мы подводим итоги и представляем направления будущих исследований в разделе «Заключение и будущие исследования ».

Связанные работы и ограничения текущих решений

Атаки с повторным входом — одна из распространенных угроз в блокчейне Ethereum, связанных с языком программирования Solidity. Атаки происходят, когда злоумышленник использует внешний вызов смарт-контракта, заставляя контракт выполнять дополнительный код, используя резервную функцию для обратного вызова самого себя.

Существует два типа повторных атак (Samreen и Alalfi 2020): однофункциональная и кросс-функциональная атака. Атака с одной функцией происходит, когда злоумышленник пытается рекурсивно вызвать уязвимую функцию. Атака между функциями происходит, когда состояние целевой функции используется совместно с другой функцией, которую злоумышленник хочет использовать.

Текущие методы защиты

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

Инструменты обнаружения уязвимостей смарт-контрактов

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

SmartCheck

SmartCheck — это инструмент анализа кода, который обнаруживает проблемы с кодом в Solidity. Исходный код, написанный Solidity, переводится в промежуточное представление на основе XML. После этого SmartCheck сверяет вывод с шаблонами XPath (Тихомиров и др., 2018). SmartCheck автоматически проверяет наличие злонамеренных методов кодирования и уязвимостей, выделяя их и предоставляя объяснение уязвимости с предлагаемым решением, позволяющим избежать проблем с кибербезопасностью (Dika and Nowostawski, 2018).

Remix

Remix — это веб-среда разработки для написания и отладки смарт-контрактов с использованием языков высокого уровня, таких как Solidity и Vyper. Remix идентифицирует возможный уязвимый шаблон кодирования и сводит к минимуму ошибки кодирования. Он может выявить несколько уязвимостей, таких как повторный вход, зависимость от временных меток и уязвимости, связанные с затратами газа (Dika and Nowostawski, 2018).

Oyente

Oyente — это инструмент символического исполнения, который помогает разработчикам смарт-контрактов обнаруживать возможные уязвимости в качестве метода смягчения перед развертыванием.Oyente следует парадигме выполнения смарт-контрактов в блокчейне Ethereum и напрямую работает с байт-кодом EVM без необходимости доступа к исходному коду высокого уровня. Этот инструмент имеет открытый исходный код и доступен для публичного использования (Luu et al., 2016; Lee, 2018).

Mythril

Mythril — это инструмент анализа безопасности для анализа проблем безопасности смарт-контрактов в блокчейне Ethereum. Он обеспечивает другой анализ уязвимостей в смарт-контрактах, основанный на выполнении символического кода (Prechtel et al., 2019). Mythril работает с байт-кодом EVM для обнаружения уязвимостей кибербезопасности в смарт-контрактах, разработанных для совместимых с EVM блокчейнов, таких как Ethereum и Tron. Он использует анализ заражений и символьное выполнение для обнаружения нескольких уязвимостей, таких как повторный вход и уязвимости незащищенных функций (Zhang et al., 2019).

Securify

Securify — это полностью автоматизированный и масштабируемый анализатор кибербезопасности для смарт-контрактов в блокчейне Ethereum, который классифицирует поведение контракта на безопасное или небезопасное на основе предоставленного свойства.В анализе Securify есть два шага: первый — извлечение семантической информации из кода путем символьного анализа графа зависимостей смарт-контракта; второй шаг — проверка шаблонов нарушений и соответствия, которые устанавливают условия для определения того, выполняется свойство или нет (Цанков и др., 2018).

F* Framework

F* framework — это метод проверки, основанный на языке F*, предложенный Microsoft Research. Смарт-контракт проверяется на корректность путем перевода кода, написанного на Solidity, на язык F*.Поскольку двоичные коды смарт-контрактов доступны в сети Ethereum, а исходный код получить сложно, двоичные файлы в цепочке блоков Ethereum декомпилируются в язык F* для выявления возможных уязвимостей, таких как нарушения исключений и уязвимости повторного входа (Liu and Liu , 2019).

Безопасность на основе языков программирования

Для безопасной разработки смарт-контрактов введено несколько языков программирования высокого уровня. Например, Obsidian — это язык, ориентированный на состояние, который следует состояниям смарт-контрактов, чтобы избежать уязвимости повторного входа, и рассматривает эфир как линейный ресурс, позволяющий компилятору отслеживать финансовую информацию.В настоящее время Obsidian не готов для общего использования и все еще находится в стадии разработки (Coblenz, 2017).

Другим примером является Vyper, который также является языком программирования высокого уровня, который включает другие новые функции, не поддерживаемые Solidity, и исключает некоторые функции Solidity. Он включает новые функции, такие как проверка переполнения и границы, и исключает такие функции, как модификаторы и рекурсивный вызов. Vyper помогает разработчикам избегать таких уязвимостей, как целочисленное недополнение и переполнение, а также отказ в обслуживании (DOS) с неограниченными операциями (Adrian, 2018).

Безопасность на основе разработки смарт-контрактов

Существует несколько подходов к усовершенствованию модели программирования смарт-контрактов, чтобы помочь разработчикам смягчить или избежать уязвимости повторного входа. Один из них, представленный ConsenSys Diligence, — это лучшие практики смарт-контрактов Ethereum. Это предоставляет основную информацию о соображениях безопасности для программистов Solidity. Кроме того, приводятся различные рекомендации, которые помогут разработчикам смарт-контрактов на Ethereum избежать проблем с кодированием.Их рекомендации разделены на две категории, а именно рекомендации для конкретных протоколов и рекомендации для конкретных Solidity. Рекомендации для конкретных протоколов применяются к любой разработке смарт-контрактов на Ethereum, чтобы предотвратить уязвимость повторного входа, например, избегать изменения состояния после внешних вызовов. Другие рекомендации — это рекомендации для Solidity, которые могут быть информативными для разработчиков смарт-контрактов на других языках для предотвращения повторных атак, таких как использование модификаторов только для утверждений (Chen et al., 2020).

Ограничения существующих решений

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

Были обнаружены следующие ограничения:

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

• Шаблоны, на которые опираются эти решения, основаны на наблюдении за предыдущими атаками и известными уязвимостями, что делает их ограниченными и трудными для обобщения.

• Все решения применимы только до развертывания смарт-контрактов. Это означает, что после развертывания смарт-контракта в сети Ethereum эти решения не могут предотвратить повторные атаки и не могут обнаружить злоумышленника.

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

Предлагаемое решение

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

В любом смарт-контракте, который управляет фондом для различных участников, два значения поддерживают средства в смарт-контракте. Первое значение поддерживается уровнем протокола, то есть балансом контракта , представленным в Solidity как address(this).balance , тогда как второе значение поддерживается уровнем приложения, которое обычно представляется в Solidity как балансов. [ParticipantAddress] , который поддерживает баланс каждого участника смарт-контракта.Баланс контракта и общий баланс всех участников не всегда совпадают; однако, когда инициируется любой смарт-контракт, разница между ними всегда должна быть одинаковой до и после любой операции в смарт-контракте, которая изменяет состояние смарт-контракта, чтобы защитить средства в смарт-контракте. Это связано с тем, что злоумышленники, которые хотят запустить атаку с повторным входом, стремятся обмануть смарт-контракт на прикладном уровне, уменьшая значение, поддерживаемое уровнем протокола, и в то же время сохраняя значение, поддерживаемое прикладным уровнем. является.Злоумышленники делают это, потому что они могут манипулировать смарт-контрактом на прикладном уровне, но они не могут манипулировать значением [ address(this).balance ], поддерживаемым уровнем протокола, потому что оно защищено майнерами, которые его поддерживают. Единственный способ, которым злоумышленник может осуществить такую ​​атаку, — это обман смарт-контракта на прикладном уровне, что приведет к изменению разницы между этими двумя значениями, и если злоумышленнику это удастся, то злоумышленник сможет украсть средства и смарт-контракт не будут знать об атаке и не смогут остановить злоумышленника.

Это решение основано на этих двух значениях, а именно: баланс контракта (обозначен как a до операции и a′ после операции) и общий баланс всех участников смарт-контракта (обозначен как b до операции и b′ после операции). Решение просто вычисляет разницу между a и b до и a’ и b’ после каждой операции внутри транзакции в любом смарт-контракте.Транзакция отмечена как T , а разница до операции отмечена как x , тогда как разница после операции отмечена как x′ . Если разница одинакова ( x = x′ ), то операция допустима; в противном случае операция является вредоносной. Например, предположим, что смарт-контракт имеет уязвимость повторного входа и имеет на балансе 10 эфиров ( a = 10) и трех участников, из которых два честных и один злонамеренный пользователь, пытающийся воспользоваться уязвимостью.У каждого из честных участников на балансе 2 Эфира; следовательно, общий баланс всех участников равен 4 ( b = 4). Разница в этом случае равна 6 ( x 1 = 6). Злоумышленник проводит повторную атаку. Противник отправляет T 1 для внесения 1 эфира в контракт; следовательно, а’ = 11, b’ = 5, х 1 = 6 и х 1 9009.Поскольку x 1 = x 1 , эта транзакция не является злонамеренной. После этого злоумышленник отправляет T 2 для вывода 1 эфира, используя рекурсивную функцию для использования уязвимости повторного входа. После первой операции в T 2 и до начала второй операции значения будут: a = 11, b = 5, х 1 = 6 и х 1 = 5. x 1 x 1 потому что выполнение не достигло оператора, уменьшающего баланс злонамеренного пользователя; поэтому a′ уменьшится на 1; однако значение b′ останется прежним, как показано на рис. 1. Эта операция будет заблокирована, а транзакция будет считаться злонамеренной транзакцией; поэтому адрес злоумышленника будет сохранен решением.

РИСУНОК 1 .Сценарий повторной атаки.

Наша формула решения выглядит следующим образом.

O T : ( O действительны) ⇔ ( x = x ‘),

где

T = транзакция,

o = операция в транзакции, которая изменяет состояние смарт-контракта,

x = a – b,

x = a – b ,

a = баланс контракта до 2 O b=∑i=1npi до O,

a′ = баланс контракта после O ,

b′=∑i=1npi после O,

p i = баланс участника i в договоре, а

n = количество участников договора.

Реализация решения

Существует три подхода к реализации архитектуры решения, как показано на рисунке 2. Это решение может быть реализовано на уровне dApp (подход 1) или на уровне блокчейна в виде независимого смарт-контракта. (Подход 2) для управления поведением одного или нескольких смарт-контрактов или внутри смарт-контракта (Подход 3).

РИСУНОК 2 . Три подхода к реализации архитектуры решения.

В подходе 1 уровень dApp рассматривается как контрольная точка, которая получает данные от смарт-контракта.На основе этих данных dApp сравнивает разницу между сохраненным значением баланса смарт-контракта и общим балансом всех участников, а также разницу между текущим балансом контракта и текущей суммой всех участников. Если они совпадают, dApp отправляет решение «true», чтобы разрешить завершение операции в транзакции; в противном случае он отправляет «false», чтобы заблокировать операцию транзакции, и уведомляет владельца смарт-контракта, сохраняя адрес злоумышленника.

Подход 2 аналогичен подходу 1; однако другой смарт-контракт будет играть роль контрольной точки dApp. Все вредоносные операции в транзакциях будут заблокированы, а владелец смарт-контракта также будет уведомлен путем сохранения адреса злоумышленника в контракте.

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

На рис. 3 показан поток данных решения, применимый во всех трех подходах.

РИСУНОК 3 . Поток данных решения.

Первые три шага в потоке данных будут происходить во время инициализации смарт-контракта, который нуждается в защите. Решение должно получить баланс смарт-контракта и общий баланс всех участников смарт-контракта. Разность между этими значениями должна быть рассчитана на третьем шаге. Все участники могут взаимодействовать со смарт-контрактом на четвертом этапе, и во время выполнения решение постоянно отслеживает баланс смарт-контракта и баланс всех участников до и после каждой операции, которая изменяет состояние смарт-контракта.На седьмом шаге решение снова вычисляет разницу и сравнивает результат с сохраненным результатом. Если результаты равны, значение x изменяется на значение x ‘, и выполнение завершается; в противном случае выполнение будет заблокировано, и владелец смарт-контракта будет уведомлен путем сохранения адреса злоумышленника в контракте. На рис. 4 показан пример диаграммы классов UML подхода 3, который можно применить для банковского смарт-контракта.

РИСУНОК 4 .Пример диаграммы классов UML для решения, примененного к банковскому контракту.

Мониторинг баланса контракта и балансов всех участников для предотвращения реентерабельной уязвимости и обнаружения злоумышленника может быть реализован различными способами. В этом разделе будет представлен пример реализации подхода 3 на основе предыдущей диаграммы классов UML, которая написана с использованием языка программирования Solidity, как показано на рис. 5. В конструкторе имеется шесть переменных и восемь функций.В решении используются четыре переменные: участниковЛиквидность , до операции , после операции и злоумышленник . Уязвимость повторного входа указана в коде в строке (46), что может вызвать разные вызовы для разных функций, что будет показано в тестовых сценариях в следующей главе. Владелец контракта — единственный, кто может получить адрес злоумышленника благодаря модификатору в строке (20).

РИСУНОК 5 .Решение реализовано в коде смарт-контракта банка.

Проверка концепции

Среда тестирования

IDE Remix использовалась для размещения тестовой среды, а также для компиляции, развертывания, отладки и тестирования решения. В этом тесте использовалась виртуальная среда JavaScript, которая эмулирует реальную цепочку блоков, для выполнения всех тестовых транзакций. Все смарт-контракты, которые использовались в этом тесте, были написаны на языке программирования Solidity. Были проведены два тематических исследования атак: однофункциональная и кросс-функциональная повторная атака.Пример однофункциональной атаки с повторным входом содержал три смарт-контракта: контракты Bank{} , Attacker{}, и BankWithoutSolution{} . Контракты Bank{} и BankWithoutSolution{} включали уязвимость повторного входа; однако контракт Bank{} включал решение, как показано на рисунке 5 в разделе Реализация решения, , тогда как контракт BankWithoutSolution{} не использовал это решение.Контракт Attacker{} включал вредоносный код, который проводил атаки. Второй пример — это пример кросс-функциональной атаки с повторным входом, который включал четыре смарт-контракта: Bank{} , Attacker1{} , BankWithoutSolution{}, и Attacker2{} контрактов. Контракты Bank{} и BankWithoutSolution{} были такими же, как и в первом примере, и контракт Attacker1{} использовался для запуска атаки, а контракт Attacker2{} использовался для получения украденная монета.Оба тематических исследования будут подробно проиллюстрированы в следующих разделах.

Сценарий тестирования

Каждое из двух тематических исследований состоит из двух тестовых сценариев, которые во-первых проводят атаку без решения, а во-вторых проводят атаку с решением. Контракты Bank{} и BankWithoutSolution{} финансировались с индивидуального счета 10 эфирами во время развертывания. Первый тестовый сценарий в каждом тематическом исследовании атаки был проведен, чтобы увидеть, смог ли злоумышленник украсть монеты из контракта BankWithoutSolution{} , а второй тестовый сценарий был проведен, чтобы увидеть, может ли решение обнаружить и предотвратить повторную атаку. из договора Bank{} .

Пример однофункциональной атаки с повторным входом

Контракт Attacker{} , показанный на рис. 6, будет использоваться в следующих сценариях. Код контракта Злоумышленник{} в первом сценарии будет изменен в строках (90) и (94) с Bank на BankWithoutSolution .

РИСУНОК 6 . Контракт Attacker{} .

Первый тестовый сценарий: однофункциональная атака (без решения)

В первом тестовом сценарии была проведена однофункциональная повторная атака на контракт BankWithoutSolution{} .Код контракта BankWithoutSolution{} показан на рис. 7, который содержит уязвимость в строке (23).

РИСУНОК 7 . Контракт BankWithoutSolution{} .

Диаграмма последовательности атак для первого тестового сценария в конкретном примере атаки с повторным входом с одной функцией показана на рисунке 8. Все транзакции и вызовы, задействованные в первом тестовом сценарии, показаны в дополнительном приложении 1.

РИСУНОК 8 . Диаграмма последовательности UML для первого сценария в первом примере.

Шаги сценария были следующими:

1. Развертывание контракта BankWithoutSolution{} со средствами, равными 10 эфирам.

2. Развертывание контракта Attacker{} путем передачи адреса контракта BankWithoutSolution{} в качестве параметра в конструкторе Attacker{} и средств, равных 1 эфиру.

3. Вызов функции getAttackerBalance() в контракте Attacker{} для проверки баланса, который равен 1 эфиру.

4. Внесение 1 эфира из контракта Attacker{} на контракт BankWithoutSolution{} .

5. Вызов функции getAttackerBalance() в контракте Attacker{} для проверки того, что баланс равен 0 эфиров.

6. Вызов функции getBankLiquidity() в контракте BankWithoutSolution{} для проверки того, что баланс равен 11 эфирам.

7. Проведение однофункциональной повторной атаки путем вызова функции изъятия в контракте Attacker{} .

8. Вызов функции getBankLiquidity() в контракте BankWithoutSolution{} для проверки баланса, который равен 0 эфиров.

9. Вызов функции getAttackerBalance() в контракте Attacker{} для проверки баланса, который равен 11 эфирам.

В первом сценарии атака с повторным входом с одной функцией успешно использовала уязвимость повторного входа, и злоумышленник украл все средства контракта BankWithoutSolution{} .

Второй тестовый сценарий: однофункциональная атака (с решением)

Второй тестовый сценарий проводит однофункциональную повторную атаку на контракт Bank{} . Код Bank{} показан на рисунке 5 в разделе Реализация решения , который содержит уязвимость в строке (46). Диаграмма последовательности атак для второго тестового сценария в тематическом исследовании атаки с повторным входом с одной функцией показана на рисунке 9. Все транзакции и вызовы, задействованные во втором тестовом сценарии, показаны в дополнительном приложении 2.

РИСУНОК 9 . Диаграмма последовательности UML для второго сценария в первом примере.

Шаги сценария были следующими:

1. Развертывание контракта Bank{} со средствами, равными 10 эфирам.

2. Развертывание контракта Attacker{} путем передачи адреса контракта Bank{} в качестве параметра в конструкторе Attacker{} и средств, равных 1 эфиру.

3. Вызов функции getAttackerBalance() в контракте Attacker{} для проверки баланса, который равен 1 Ether.

4. Внесение 1 эфира из контракта Attacker{} в контракт Bank{} .

5. Вызов функции getAttackerBalance() в контракте Attacker{} для проверки того, что баланс равен 0 эфиров.

6. Вызов функции getBankLiquidity() в контракте Bank{} для проверки того, что баланс равен 11 эфирам.

7. Проведение однофункциональной повторной атаки путем вызова функции изъятия в контракте Attacker{} .

8. Вызов функции getBankLiquidity() в контракте Bank{} для проверки баланса, который равен 10 эфирам.

9. Вызов функции getAttackerBalance() в контракте Attacker{} для проверки баланса, который равен 1 Ether.

10. Вызов getAttackerAddress() в контракте Bank{} из учетной записи владельца для получения адреса злоумышленника.

Во втором сценарии атака с повторным входом с одной функцией не смогла использовать уязвимость повторного входа, и адрес злоумышленника{} был сохранен в контракте Bank{} .

Пример кросс-функциональной атаки с повторным входом

Контракты Attacker1{} и Attacker2{} , показанные на рис. 10, использовались в следующих сценариях. Коды контрактов Attacker1{} и Attacker2{} в первом сценарии были изменены в строках (86) и (91) в Attacker1{} и строке (123) в Attacker2{} из Bank на БанкБезРешения .

РИСУНОК 10 .Код контрактов Attacker1{} и Attacker2{} .

Первый тестовый сценарий: кросс-функциональная атака (без решения)

Первый тестовый сценарий запустил кросс-функциональную повторную атаку на контракт BankWithoutSolution{} . Код BankWithoutSolution{} показан на рисунке 7, где содержится уязвимость в строке (23). Диаграмма последовательности атак для первого тестового сценария в тематическом исследовании кросс-функциональной атаки с повторным входом показана на рисунке 11.Все транзакции и вызовы, задействованные в первом тестовом сценарии, показаны в дополнительном приложении 3.

РИСУНОК 11 . Диаграмма последовательности UML для первого сценария во втором тематическом исследовании.

Шаги сценария были следующими:

1. Развертывание контракта BankWithoutSolution{} со средствами, равными 10 эфирам.

2. Развертывание контракта Attacker1{} путем передачи адреса контракта BankWithoutSolution{} в качестве параметра в конструкторе Attacker1{} и средств, равных 10 эфирам.

3. Развертывание контракта Attacker2{} путем передачи адреса контракта BankWithoutSolution{} в качестве параметра в конструктор Attacker2{} .

4. Вызов функции getAttackerBalance() в контракте Attacker2{} для проверки баланса, который равен 0 эфиров.

5. Внесение 10 эфиров из контракта Attacker1{} на контракт BankWithoutSolution{} .

6.Вызов функции getAttackerBalance() в контракте Attacker1{} для проверки того, что баланс равен 0 эфиров.

7. Вызов функции getBankLiquidity() в контракте BankWithoutSolution{} для проверки того, что баланс равен 20 эфирам.

8. Вызов функции setAttacker2() в контракте Attacker1{} и передача адреса контракта Attacker2{} в качестве параметра.

9.Проведение межфункциональной повторной атаки путем вызова функции remove() в контракте Attacker1{} .

10. Вызов функции remove() в контракте Attacker2{} для кражи 10 эфиров.

11. Вызов функции getBankLiquidity() в контракте BankWithoutSolution{} для проверки баланса, который равен 0 эфиров.

12. Вызов функции getAttackerBalance() в контракте Attacker1{} для проверки баланса, который равен 10 эфирам.

13. Вызов функции getAttackerBalance() в контракте Attacker2{} для проверки баланса, который равен 10 эфирам.

В первом сценарии кросс-функциональная атака повторного входа успешно использовала уязвимость повторного входа, и контракт Attacker2{} снял 10 эфиров, хотя в контракте BankWithoutSolution{} не было средств.

Второй тестовый сценарий: межфункциональная атака (с решением)

Второй тестовый сценарий проводил межфункциональную повторную атаку на контракт Bank{} .Код контракта Bank{} показан на рис. 5 в разделе Реализация решения , который содержит уязвимость в строке (46). Диаграмма последовательности атак для второго тестового сценария в примере кросс-функциональной атаки с повторным входом показана на рисунке 12. Все транзакции и вызовы, задействованные во втором тестовом сценарии, показаны в дополнительном приложении 4.

РИСУНОК 12 . Диаграмма последовательности UML для второго сценария во втором тематическом исследовании.

Шаги сценария были следующими:

1. Развертывание контракта Bank{} со средствами, равными 10 эфирам.

2. Развертывание контракта Attacker1{} путем передачи адреса контракта Bank{} в качестве параметра в конструкторе Attacker1{} и средств, равных 10 эфирам.

3. Развертывание контракта Attacker2{} путем передачи адреса контракта Bank{} в качестве параметра в конструктор Attacker2{} .

4. Вызов функции getAttackerBalance() в контракте Attacker2{} для проверки баланса, который равен 0 эфиров.

5. Внесение 10 эфиров из контракта Attacker1{} в контракт Bank{} .

6. Вызов функции getAttackerBalance() в контракте Attacker1{} для проверки того, что баланс равен 0 эфиров.

7. Вызов функции getBankLiquidity() в контракте Bank{} для проверки того, что баланс равен 20 эфирам.

8. Вызов функции setAttacker2() в контракте Attacker1{} и передача адреса контракта Attacker2{} в качестве параметра.

9. Проведение межфункциональной повторной атаки путем вызова функции remove() в контракте Attacker1{} .

10. Вызов функции remove() в контракте Attacker2{} для кражи 10 эфиров, что не удастся, поскольку в контракте Bank{} нет средств для Attacker2{} .

11. Вызов функции getBankLiquidity() в контракте Bank{} для проверки баланса, который равен 10 эфирам.

12. Вызов функции getAttackerBalance() в контракте Attacker1{} для проверки баланса, который равен 10 эфирам.

13. Вызов функции getAttackerBalance() в контракте Attacker2{} для проверки баланса, который равен 0 эфиров, что свидетельствует о том, что атака не удалась.

14. Вызов getAttackerAddress() в контракте Bank{} из учетной записи владельца для получения адреса злоумышленника.

Во втором сценарии кросс-функциональная повторная атака не смогла использовать уязвимость повторного входа, и адрес Attacker1{} хранится в контракте Bank{} .

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

Обсуждение

Из двух предыдущих экспериментов предлагаемое решение может дать следующие положительные результаты:

Тестовый пример 1: однофункциональная повторная атака, предлагаемое решение успешно обнаруживает злоумышленника и предотвращает атаку.

Тестовый пример 2: кросс-функциональная атака с повторным входом, предложенное решение успешно обнаруживает злоумышленника и предотвращает атаку балансы участников должны быть одинаковыми до и после любой операции, изменяющей состояние любого контракта.Решение может быть реализовано на разных уровнях, как показано в архитектуре решения, и может быть реализовано на разных языках программирования. В отличие от существующих методологий защиты от уязвимости повторного входа, предлагаемое решение может работать во время выполнения после развертывания смарт-контракта и может обнаруживать злоумышленника, записывая адрес его учетной записи. Решение может быть реализовано по-разному; однако основная концепция решения должна быть одинаковой, основанной на отслеживании двух значений.Предлагаемое решение может обеспечить безопасную сеть Ethereum без повторного входа. Это решение нацелено на уязвимость повторного входа, которая является одной из уязвимостей на уровне Solidity.

Заключение и будущие исследования

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

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

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

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

Заявление о доступности данных

Первоначальные материалы, представленные в исследовании, включены в статью/дополнительный материал; дальнейшие запросы можно направлять соответствующему автору.

Вклад авторов

Все перечисленные авторы внесли существенный, непосредственный и интеллектуальный вклад в работу и одобрили ее для публикации.

Конфликт интересов

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

Дополнительный материал

Дополнительный материал к этой статье можно найти в Интернете по адресу: https://www.frontiersin.org/articles/10.3389/fcomp.2021.598780/full#supplementary-material.

Ссылки

Адриан, О. Р. (2018). «Блокчейн сегодня и завтра», в Институте инженеров по электротехнике и электронике, Inc.(IEEE) материалы конференции, Тимишоара, Румыния, 20–23 сентября 2018 г. (IEEE), 458–462.

Google Scholar

Алхалифа А., Нг А., Чоудхури М.Дж.М., Кайес А.С.М. и Уоттерс П.А. (2019). «Эмпирический анализ инцидентов кибербезопасности блокчейна», Азиатско-тихоокеанская конференция IEEE 2019 г. по информатике и обработке данных (CSDE), Мельбурн, Австралия, 9–11 декабря 2019 г. (IEEE), 1–8. doi:10.1109/CSDE48274.2019.9162381

CrossRef Полный текст | Google Scholar

Алхалифа А., Нг, А., Кайес, А.С.М., Чоудхури, Дж., Алазаб, М., и Уоттерс, П.А. (2020). «Таксономия угроз и уязвимостей блокчейна», в Блокчейн для кибербезопасности и конфиденциальности: архитектуры, проблемы и приложения . (Бока-Ратон, Флорида: CRC Press Taylor & Francis), гл. 1, 1–27.

Google Scholar

Чен Х., Пендлтон М., Нджилла Л. и Сюй С. (2020). Опрос по безопасности систем Ethereum. ACM Вычисл. Surv. 53 (3), 1–43. doi:10.1145/33

Полный текст CrossRef | Google Scholar

Кобленц, М.(2017). «Obsidian: более безопасный язык программирования блокчейна», материалы конференции Института инженеров по электротехнике и электронике, Inc. (IEEE), Буэнос-Айрес, Аргентина, 20–28 мая 2017 г. (IEEE), 97–99.

Google Scholar

Дика А. и Новоставски М. (2018). «Уязвимости безопасности в смарт-контрактах Ethereum», в материалах конференции Института инженеров по электротехнике и электронике, Inc. (IEEE), Галифакс, Северная Каролина, 30 июля – 3 августа 2018 г. (IEEE), 955–962.

Google Scholar

Хунг, К., Чен, К., и Ляо, К. (2019). «Модулизация сквозных проблем с аспектно-ориентированными расширениями для надежности», в материалах конференции Института инженеров по электротехнике и электронике, Inc. (IEEE), Ньюарк, Калифорния, 4–9 апреля 2019 г. (IEEE), 176–181.

Google Scholar

Ли, Дж. (2018). Переносчик исправлений: стимулируемая децентрализованная система исправлений программного обеспечения для сред WSN и IoT. Датчики 18 (2), 574. doi:10.3390/s18020574

CrossRef Полный текст | Google Scholar

Лю, Дж.и Лю, З. (2019). Опрос по проверке безопасности смарт-контрактов блокчейна. Доступ IEEE. 7, 77894–77904. doi:10.1109/access.2019.2921624

Полный текст CrossRef | Google Scholar

Луу Л., Чу Д. Х., Оликель Х., Саксена П. и Хобор А. (2016). «Делаем умные контракты умнее», на конференции ACM SIGSAC по компьютерной и коммуникационной безопасности, Вена, Австрия, 25–27 октября 2016 г. (ACM), 254–269.

Google Scholar

Мэдник, С. (2020).Блокчейн не так неуязвим, как вы думаете. MIT Sloan Manag. 61 (2), 65–70. doi:10.2139/ssrn.3542542

Google Scholar

Prechtel, D., Gros, T., and Muller, T. (2019). «Оценка распространения «безгазовой отправки» в смарт-контрактах Ethereum», в материалах конференции Института инженеров по электротехнике и электронике, Inc. (IEEE), Канарские острова, Испания, 24–26 июня 2019 г. (IEEE), 1–6.

Google Scholar

Самрин, Н. Ф., и Алалфи, М. Х. (2020).«Идентификация уязвимостей повторного входа в смарт-контрактах Ethereum», Материалы конференции Института инженеров по электротехнике и электронике, Inc. (IEEE), Лондон, ON, 18 февраля 2020 г. (IEEE), 22–29.

Google Scholar

Шранс Ф., Айзенбах С. и Дроссопулу С. (2018). «Написание безопасных смарт-контрактов в кремне», в сопутствующей конференции 2-й международной конференции по искусству, науке и технике программирования, Нью-Йорк, штат Нью-Йорк, 9 апреля 2018 г., ACM, 218–219.

Google Scholar

Тихомиров С., Воскресенская Е., Иваницкий И., Тахавьев Р., Марченко Е. и Александров Ю. (2018). «SmartCheck: статический анализ смарт-контрактов Ethereum», Материалы конференции Института инженеров по электротехнике и электронике, Inc. (IEEE), Гетеборг, Швеция, 27 мая – 3 июня 2018 г. (IEEE), 9–16.

Google Scholar

Цанков П., Дэн А., Драхслер-Коэн Д., Жерве А., Буенцли Ф. и Вечев М. (2018). «Securify: практический анализ безопасности смарт-контрактов», конференция ACM SIGSAC 2018 г. по компьютерной и коммуникационной безопасности, Торонто, ON, 15–19 октября 2018 г. (ACM), 67–82.

Google Scholar

Чжан В., Банеску С., Пасос Л., Стюарт С. и Ганеш В. (2019). «MPro: сочетание статического и символьного анализа для масштабируемого тестирования смарт-контрактов», в материалах конференции Института инженеров по электротехнике и электронике, Inc. (IEEE), Берлин, Германия, 28–31 октября 2019 г. (IEEE), 456–462. .

Google Scholar

Шесть причин внутренней ценности Ethereum

Payal Shah, CME Group

КРАТКИЙ ОБЗОР

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

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

Чтобы отметить его шестой день рождения, мы рассмотрим шесть причин   внутренней ценности эфириума.

1) Возможности смарт-контрактов

Ethereum был создан как платформа для запуска программных смарт-контрактов и приложений с использованием собственной валюты — эфира.

Реальные варианты использования уже начинают появляться и поддерживать ценность, поскольку блокчейн Ethereum может выполнять смарт-контракты, которые поддерживают децентрализованные приложения (DApps), такие как децентрализованные финансы (DeFi) или невзаимозаменяемые токены (NFT).

DApps — это смарт-контракты, запрограммированные для определенного и повторяющегося использования.По состоянию на июнь 2021 года на Ethereum развернуто более 3000 DApp. Это больше, чем общее количество DApp, развернутых на любой другой блокчейн-платформе общего назначения в мире вместе взятых. По данным отраслевого трекера DappRadar, на 10 лучших DApps в 2020 году приходилось почти 90% объемов транзакций в блокчейне.

DeFi является чрезвычайно оптимистичным катализатором для Ethereum. Фактически, Ethereum практически синоним DeFi, потому что он поддерживает многие криптовалюты в секторе децентрализованных финансов.Ethereum содержит более 200 000 токенов ERC, некоторые из которых входят в топ-100 крупнейших криптовалют. DeFi позволяет пользователям торговать активами, а также брать взаймы и кредитовать друг друга напрямую, без участия банков, а также выступает в качестве средства творческого раскрытия ценности — для платежей, кредитов, страхования и многого другого.

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

2) Новый тип подключения

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

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

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

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

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

3) Модель Proof-of-Stake

И биткойн, и Ethereum в настоящее время работают с использованием консенсуса Proof-of-Work. Для проверки и подтверждения транзакций требуется общесетевой консенсус майнеров, которые получают вознаграждение за обработку транзакций и выполнение смарт-контрактов.

Ethereum в настоящее время работает над переходом на модель Proof-of-Stake, также помеченную как Ethereum 2.0, который кардинально меняет систему вознаграждений. Текущая модель доказательства работы не поощряет совместную работу и не предусматривает каких-либо последствий для злонамеренного поведения. Напротив, в модели proof-of-stake валидаторы транзакций заменят майнеров. Больше не будет криптографических проблем, которые нужно решать. Валидаторы должны будут владеть эфиром, и для проверки блока они должны будут поставить свою долю эфира на линию, чтобы подтвердить, что блок действителен. Таким образом, в случае злонамеренного поведения их доля находится под угрозой.

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

4) Скорость и масштабируемость

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

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

Среди прочего, предстоящее обновление Ethereum 2.0 обеспечит более быстрые транзакции. Часть этого обновления, называемая цепочкой Beacon, использует shardchains, которые представляют собой меньшие группы узлов, которые обрабатывают свои собственные части транзакций параллельно, без необходимости достижения консенсуса во всей сети.Это предназначено для улучшения масштабируемости Ethereum и значительного увеличения его пропускной способности. Ожидается, что пропускная способность Ethereum 2.0 сможет достигать 15 000 транзакций в секунду, что позволит Ethereum сравниться с любой централизованной платежной системой по скорости обработки транзакций.

5) Дезинфляционное предложение

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

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

6) Корреляция с биткойнами

Цена биткойна является важным моментом в определении всей картины рынка криптовалют, а также эфира. Они положительно коррелируют: когда биткойн растет или падает, то же самое происходит и с эфиром.Во время взрывного бума DeFi, обрушившегося на рынок летом 2020 года, цена эфира выросла до самого высокого уровня за более чем два года, поскольку большинство проектов DeFi построены на блокчейне Ethereum. В то время биткойн изо всех сил пытался побить аналогичный двухлетний рекорд. В конце 2020 года, с ростом цен на биткойны, произошло вращение цен от BTC к ETH, когда инвесторы рассматривали Ethereum и, в частности, приложения DeFi, построенные на нем, как конструктивное дополнение к биткойну, в то время как биткойн стал слишком «дорого.

Эфир больше не следует за колебаниями цены биткойна так внимательно, как раньше, поскольку он начинает руководствоваться собственными катализаторами. Корреляция эфира с биткойном составляла 0,95 в июле 2020 года. Год спустя она составляет 0,71, по данным

Фьючерсы на эфир

Как ведущая биржа фьючерсов на криптовалюту, CME Group добавила фьючерсы на эфир в свой набор криптовалютных продуктов в феврале 2021 года. 

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

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

Читайте другие подобные статьи на OpenMarkets

.