Как работают транзакции Ethereum на основе учетных записей

8 лет назад
Транзакции Эфириум
Транзакции Эфириум

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

Как работают транзакции Ethereum
Как работают транзакции Ethereum

Звучит сложно? На деле же все намного проще.

Состояние Эфириума = миллионам транзакций, собранным в «блоки». Один такой блок вмещает в себя сразу ряд транзакций и соединен с предыдущим. Чтобы перейти из одного состояния в следующее транзакция обязана быть подтверждена. Иными словами, ей нужно пройти процесс валидации, известный также как майнинг.

Подтверждение транзакций в Ethereum
Подтверждение транзакций в Ethereum

Глобальное же «общее состояние» Эфириума состоит из миллионов мелких объектов – учетных записей (аккаунтов). Они способны взаимодействовать друг с другом путем отправки сообщений. К каждой учетной записи привязано ее состояние, а также личный адрес, состоящий из 20 байтов. Адрес в Ethereum представляет собой 160-битный идентификатор, задействованный для подтверждения аккаунта.

Учетные записи бывают двух видов:

  • Внешние УЗ (EOA), управляемые благодаря закрытым ключам, не связанным с каким-либо кодом;
  • Контрактные УЗ, контролируемые конкретным кодом, который указан в условии контракта, с которым они связаны.
Виды учетных записей в Эфириум
Виды учетных записей в Эфириум

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

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

Модель счетов Ethereum
Модель счетов Ethereum

Модель UTXO или модель учетных записей

В то время, как модель UTXO (Unspent Transaction Output – неизрасходованных выходных данных), примененная в биткоине, ограничивает возможность выполнения смарт-контрактов, команда Ethereum использует модель на основе учетных записей, подключив к ней не только смарт-контракты, но и огромное количество децентрализованных программ (dApps).

Для написания смарт-контрактов в сети Эфириума разработчики применили Тьюринг-полный (с возможностью реализовать любые вычислительные функции) язык программирования Solidity, который частично напоминает JavaScript.

Преимущества модели UTXO:

  • Высокая степень конфиденциальности использования новых адресов для каждой транзакции – очень сложно отыскать владельца монет;
  • Легче масштабировать через шардинг.

Недостатки модели UTXO:

  • Блокчейн слаб с точки зрения «программируемости» – сложные вычисления становятся практически невозможными;
  • С той же скоростью, с которой увеличивается объем входных данных, растет нагрузка на вычислительные ресурсы и память в блокчейне.

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

  • Экономия огромного пространства – каждая транзакция Ethereum требует одну ссылку и одна подпись выдает лишь один вывод. Например, транзакция может «весить» 100 байтов в Ethereum против 200-250 байтов в Bitcoin;
  • Простота – более интуитивна, как для пользователей, так и для создателей смарт-контрактов со сложными скриптами, особенно тех, которые требуют информацию от нескольких сторон;
  • Эффективность – требует для каждой транзакции Эфириум лишь подтверждение факта наличия на счету отправителя достаточной суммы для оплаты транзакции.

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

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

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

Но стоит учесть, что nonce, описанный здесь – это не Proof-of-Work nonce в Эфириуме, являющийся абсолютно случайным числом.

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

Читайте также:

Команды, работающие над Ethereum 2.0 – будущее Serenity

Использование технологии Plasma для масштабирования Ethereum

© Coin Post, 2017-2019. Все материалы данного сайта являются объектами авторского права. Запрещается копирование, распространение (в том числе, путем копирования на другие сайты и ресурсы в Интернете с указанием источника) или любое иное использование информации без предварительного согласия правообладателя.

Новости по теме

DEX Bunni закрывается из-за взлома на $8,4 млн

DEX Bunni закрывается из-за взлома на $8,4 млн

Bunni DEX объявила о полном закрытии после взлома, в ходе которого было похищено около $8,4 млн. Атака случилась в начале сентября 2025 года и затронула два основных пула: ETH/ETH на Unichain и USDC/USDT на Ethereum.
год назад
Ethereum Foundation готовится продать 160 000 ЕТН ($650 млн)

Ethereum Foundation готовится продать 160 000 ЕТН ($650 млн)

Некоммерческая организация Ethereum Foundation сделала крупную внутреннюю транзакцию - 160 000 ETH ($650 млн) были переведены на кошелек, который ранее использовался для продаж монет, согласно данным Arkham.
год назад
Paxos по ошибке напечатал 300 трлн PYUSD

Paxos по ошибке напечатал 300 трлн PYUSD

В среду ночью Paxos случайно напечатал 300 трлн единиц PYUSD (стейблкоин PayPal USD) - затем отправил весь объем на "сжигание", делая токены недоступными. Эмитент стейблкоина Paxos заявил, что это была техническая ошибка внутреннего перевода, а не взлом, и что средства клиентов не затронуты.
год назад
Эмитенты ETF и институционалы уже купили  12 000 000 ЕТН ($51 млрд) или 10% от эмиссии монеты

Эмитенты ETF и институционалы уже купили 12 000 000 ЕТН ($51 млрд) или 10% от эмиссии монеты

Согласно аналитике от Bitwise, публичные компании и эмитенты ETF уже держат более 12 млн ETH, что оценивается примерно в $51 млрд, что составляет около 10% от всего циркулирующего предложения ETH.
год назад