Account модель эфириума. Как устроена?

Как устроена Account модель Эфириума Эфириум

Введение. Account model

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

А вы знали? Что 1 bitcoin не всегда равняется одному биткоину? A один эфириум всегда равен 1 ethereum.

Давайте вспомним, из чего состоит блокчейн Bitcoin? Bitcoin – это протокол, и сеть биткоина, которая построена на технологии блокчейна, хранит транзакции. Каждая транзакция является отражением UTXO. Блокчейн биткойна хранит информацию исключительно о транзакциях. В каждой транзакции есть Inputs и Outputs.

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

Важно! Помимо байт-кода и транзакций, блокчейн ethereum хранит state, то есть состояние всех смарт-контрактов.

Что такое state ethereum?

Что из себя представляет state? В прошлом примере смарт-контракта мы сами подписываем смарт-контракт между поставщиком и заказчиком о поставке какого-то товара. Этот смарт-контракт может иметь период исполнения несколько лет. И этот смарт-контракт может переходить из одного состояния в другое.

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

Например, мы подписали контракт между поставщиком и заказчиком. И первое состояние — этот смарт-контракт пустой. После того, как на смарт-контракт были переведены деньги, он приходит во второе состояние (стейт). На этом стейте он может быть лок, то есть средства, которые на него переведены, заблокированы.

Далее, выполнились все условия контракта. Товар подходит идеально и он был доставлен вовремя. Идёт период проверки — это стейт три.

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

Что такое state ethereum?

Более простой пример. Родитель может заключить смарт-контракт со своим ребёнком о том, что если он через 10 лет успешно закончит школу, то получит один эфириум.

Смарт-контракт заключается в первом классе. Средства, которые родители положили, это один эфириум. После этого выполнилось какое-то условия контракта. Например, что товар подходит идеально и он был доставлен вовремя. Идёт период проверки — это стейт три. В этом случае, контракт перейдет в стадию один (стейт).

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

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

Отличие UTXO от Account Ethereum

Чем же отличается UTXO model в сети блокчейна биткоина от Account model в эфириуме?

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

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

Баланс в графическом интерфейсе, на самом деле, это все доступные UTXO.

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

Account Ethereum

В сети эфириума нет никаких UTXO. И фактически, есть балансы. Как вообще производится транзакции в блокчейне эфириума?

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

В блокчейне эфириума есть аккаунты. Это и есть — публичный адрес.

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

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

Account Ethereum

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

Эфириум более взаимозаменяемый

Почему иногда эфириум называют более взаимозаменяемым? В то время как Bitcoin считается более приватным.

Дето в том, что в блокчейне биткоина UTXO как бы «путешествует» из одной транзакции в другую. В каждой транзакции хранятся locked/unlocked скрипты, в которых прописана логика на языке программирования Script.

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

Поэтому, можно отслеживать отдельно взятый UTXO, как каждую конкретную «монету», из которой и состоит транзакция.

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

Допустим, если у меня было 100 эфириума и я отправил два, никто точно не знает какие именно 2 эфириума со своего кошелька я отправил. В то время как, в блокчейне биткоина мы можем отследить каждую отдельную монету. Это происходит из-за специфики построения транзакции, с использованием UTXO model. То есть каждый отдельный UTXO, вплоть до момента создания, то есть вплоть до coinbase транзакции.

Coinbase — это транзакция, которая была сформирована, как вознаграждение за тот блок, в котором появились новые «монеты», то есть новая эмиссия.

Один биткойн не всегда равен одному биткойну

Из-за того, что мы можем отследить каждый UTXO, мы сталкиваемся с таким парадоксом, что один Bitcoin не всегда равен одному биткоину. В то время как 1 эфириум всегда равен одному эфириуму. Почему так получается?

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

Один биткойн не всегда равен одному биткойну

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

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

При этом всегда есть «чёрный рынок», на котором по заниженной стоимости всегда можно продать Bitcoin. Именно поэтому, считается что Bitcoin не такой взаимозаменяемый как эфириум.

Но адрес полностью не может быть заблокирован.

Например, у хакера на кошельке 100 биткоинов. Из них 50 он украл у кого-то. Если он попытается сделать обмен этих 50 украденных биткойнов, они могут быть заблокированы.

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

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

Как запутать блокчейн?

Давайте разберем пример. Есть 2 UTXO, которые составляют 1.5 BTC.  Мы отправляем 1,25 биткойна кому-то. Таким образом, 0.25 BTC будет возвращаться на подконтрольной нашему private key, public key, сдача.

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

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

В сети эфириума нет такого понятия, как «сдача». В одном аккаунте становится плюс на значение транзакции, а в другом аккаунте становится минус на это значение.

Преймущество Account Model

Преимущество Account Model

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

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

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

Заключение

Надеемся, стало хоть немного более понятно, чем же Account Model эфириума отличается от UTXO-модели биткойна. Если Вам понравилась статья, обязательно оцените её и оставьте комментарий. А мы и дальше постараемся сложные темы рассказывать простыми словам.

Поделиться с друзьями
Андрей
Оцените автора
( 1 оценка, среднее 5 из 5 )
Crypto Analys
Добавить комментарий

  1. Андрей автор

    Интересно, есть список «черных UTXO»?

    Ответить