что значит контрактный адрес eth
Что такое ETH Address и зачем он нужен – база знаний для криптоновичков
Большинство пользователей, только входящих в мир криптовалют, задают вопрос, что это такое ETH Address и зачем он нужен (продвинутые читатели, не обессудьте – есть люди, которые до вчерашнего дня и не догадывались о существовании других криптомонет, кроме биткоина!).
Дословный перевод значения – адрес Эфириума, который имеет определённый набор цифр и букв, обозначающие идентификатор владельца кошелька.
Получить ETH Wallet address, может только владелец криптокошелька. Услуга предоставляется совершенно бесплатно.
Содержание:
Что нужно знать криптоэнтузиасту
По своей сути, указанный ETH Address, это не кошелек, не ваш аккаунт, не содержит информации о наличии всех средств на криптокошельке.
Данный идентификатор нужен для того, чтобы отправители могли отправлять криптовалюту между собой, и она доходила на конкретный кошелек.
Для того чтобы получить идентификатор, необходимо загрузить на ПК или мобильное устройство любое доступное приложение криптокошелька.
В программе клиента есть специальная кнопка, которая генерирует автоматически адрес.
Далее перед пользователем появляется информация в виде набора цифр и букв (уникальный код), которые в дальнейшем можно использовать для проведения транзакций.
Ошибка в адресе, как исправить
Каждый идентификатор имеет проверочный код, который предназначен для проверки написания точности адреса.
Если вы некорректно или ошибочно ввели адрес, транзакция будет отменена автоматически.
В техническом исполнении идентификатор представлен как математический код хеша открытого ключа ECDSA.
Зная определённые математические методики, можно «подписать» сведения при помощи наличия секретного ключа, при этом можно удостовериться в подлинности существования подлинности указанной подписи.
Простыми словами – имея секретный ключ (особый хэш) к открытому ключу (eth address) пользователь может управлять средствами на кошельке.
Об онлайн или оффлайн-адресах криптокошельках
Создать ETH Address можно двумя способами, при помощи веб-версии кошелька или скачав на мобильное устройство софт.
В обоих случаях, работать сервис будет только в случае прямого доступа к сети интернет, так как основной принцип работы криптовалютности основан на обмене информации.
В настоящее время можно скачать приложения кошельков для ПК, в том числе для популярной ОС — Виндовс.
Кроме этого, есть мобильные версии для Андроид и для iOS.
Рекомендуем использовать официальные клиенты ПО:
Обратите внимание, что официальный клиент ПО для Виндовс занимает 2Гб свободной памяти на жёстком диске.
Такой большой объем обусловлен большими размерами алгоритма Эфириума.
Необходимо знать также одну техническую сторону работы Эфириум кошелька.
Если биткоины хранятся на специально выделенных серверах, то эфириум — прямо на вашем ПК или мобильном устройстве.
Реквизиты адресной строки
Адрес ETH будет иметь набор букв и цифр в количестве 40-44 значения, включающие арабские цифры и латинские буквы.
В дальнейшем вы можете скопировать полностью адрес и указать получателю и отправителю ваш идентификатор для перечисления или зачисления криптоактивов.
Примерный вид реквизита ETH будет выглядеть так:
Заключение
Для того чтобы транзакция прошла успешно или чтобы вы могли получать вознаграждения с eth-кранов, необходимо иметь уникальный идентификатор адреса Эфириума.
Во всех кошельках имеется подробное разъяснение, как создаётся адрес и правила использования идентификатора для различных операций внутри кошельков или для работы на криптобиржах, и других сервисах, принимающих к расчёту криптоактивы.
Проводите инвестиции безопасно и уверенно, используя только надежные сервисы.
Простыми словами: смарт-контракты, Ethereum, ICO
Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского»
Про Биткойн слышали многие, что и не удивительно — эта криптовалюта была первой и до сих пор остается самой популярной и самой крупной. Успех Биткойна вдохновил на подвиги кучу людей, поэтому за последние пару лет разных криптовалют — так называемых альткойнов — насоздавали ужас сколько, больше 1000.
Так вот, Биткойн — на данный момент однозначно номер один. А знаете, какая криптовалюта на втором месте? Ethereum. Когда мы говорим про места, мы имеем в виду капитализацию, то есть суммарную стоимость всех монет валюты.
Капитализация и цены TOP-5 криптовалют. Источник
Как видите, Ethereum с большим отрывом опережает другие «альткойны», а в июне 2017 чуть было даже не обогнал Биткойн, «великий и ужасный». Давайте разберемся, что же в Ethereum такого особенного и почему подавляющее большинство проводимых в этом году ICO используют именно его.
Идея Ethereum
Ethereum запустился совсем недавно, 30 июля 2015 года. Одним из его создателей был нынче известный в блокчейн-тусовке и, не побоюсь этого слова, влиятельный Виталик Бутерин. Он родился в России, но с шести лет жил в Канаде. На тот момент, когда он изложил свои идеи, которые в итоге легли в основу сети Ethereum, ему было 19 лет.
Так вот, в чем же идея? В сети Биткойн с точки зрения пользователя все устроено довольно просто. Есть кошельки, можно передавать деньги с одного кошелька на другой или на несколько сразу. Сеть построена на весьма остроумных принципах, позволяющих обходиться без единого центра, но задачи решаются вполне классические. Обычная платежная система, по большому счету: люди, деньги, переводы — все, больше ничего нет.
Но можно пойти дальше и создать такую платежную сеть, которая позволяет писать программы, которые бы работали с кошельками, сами бы принимали с кошельков деньги, решали, кому сколько отправить и так далее. С важным условием: для всех пользователей каждая такая программа будет работать по известным принципам, предсказуемо, одинаково, прозрачно, и чтобы никто не мог ее изменить.
Собственно, создатели Ethereum как раз и добавили к базовой функциональности криптовалют возможность создавать подобные программы. Все кошельки в Ethereum делятся на два типа: те, что управляются людьми, и те, что управляются автономно программами.
Программы — их называют смарт-контрактами — записываются в блокчейн. Таким образом, эта программа запоминается навсегда, у всех участников сети есть ее копия (блокчейн ведь у всех одинаковый), соответственно и выполняется смарт-контракт у всех тоже идентично.
И вот это нововведение существенно расширило сферу применения блокчейн-валют.
Примеры смарт-контрактов
Какие программы можно написать? Да какие угодно. Например, финансовую пирамиду. Для этого в сети Ethereum достаточно создать смарт-контракт со следующими правилами:
Напомним преимущество: это блокчейн — все уверены, что никто не жульничает, все видят текст программы и понимают, что она работает именно так, как в ней написано. Программа — не человек. Она не скроется с деньгами, не обанкротится, и так далее. Если, конечно, в ней нет багов или «неожиданного поведения».
Ограничения смарт-контрактов
Но есть и существенные ограничения, вот некоторые из них:
Главное использование смарт-контрактов
Простой смарт-контракт Ethereum. Имеющаяся ошибка позволяет украсть все деньги, кто нашел — молодец
Пирамиды, голосования, казино, лотереи — это все здорово. Но что оказалось действительно удобно делать при помощи смарт-контрактов — это надувать пузыри собирать деньги на свой стартап.
Ведь при помощи смарт-контракта можно автоматизировать всю «бухгалтерию»: контракт сам запомнит, от кого и сколько пришло денег, сам начислит «акции», а также даст возможность каждому участнику передавать и продавать эти акции. Не нужно никакой возни с адресами почты, кредитными картами, проверкой карт, авторизацией инвесторов и тому подобного. Вдобавок все видят, сколько всего было выпущено акций и как они распределились по участникам. От скрытого допечатывания акций и продажи одной акции несколько раз защищает блокчейн.
Смарт-контракты дали миллиону «криптоинвесторов» возможность «швырять деньги в монитор».
ICO — Initial Coin Offering
График стоимости Ethereum. Источник
Обсудим ICO поподробнее. Типичная схема криптостартапа такова:
Окупаемость криптоинвестиций
Что будет дальше с выданными инвесторам токенами, зависит от проекта. Кто-то обещает выплачивать дивиденды с будущей прибыли, кто-то планирует принимать эти токены к оплате услуг, реализуемых проектом, кто-то ничего не обещает.
Как правило, сами токены выводятся на криптобиржу, и открываются торги. Те, кто не успел поучаствовать в ICO, могут купить их уже на бирже — скорее всего, подороже. Те, кто участвовал в ICO, чтобы потом перепродать подороже, могут их на бирже продать.
Иногда первых настолько больше, что цена растет стремительно, и капитализация проекта раздувается до миллиарда долларов. При том, что у него нет прибыли нет продукта, есть только идея, план и, в лучшем случае, команда.
Так как автор проекта собрал много денег, он этими же деньгами имеет возможность на бирже выкупать свои же токены, подогревая цену токена еще больше. На обычных биржах с обычными акциями такое поведение запрещено, но в криптоиндустрии регуляторов нет.
В 2017 году (к сентябрю) на ICO разные проекты уже собрали порядка 1,7 миллиарда долларов. Об успешных проектах слышно мало, но инвесторы не теряют оптимизма.
Не отправляйте ETH напрямую на адрес смарт-контракта Ethereum
Функция системы кодирования смарт-контрактов Ethereum состоит в том, что она позволяет получать или отправлять токены. Но с этой системой могут быть связаны серьезные проблемы. Например, вы не можете отправить ETH напрямую в смарт-контракт, и вместо этого вам нужно отправить и получить токены. В чем причина этой ошибки и как мы можем её исправить?
Каждый контракт Ethereum можно закодировать так, чтобы ETH можно было отправить на адрес контракта. Этот метод упрощает работу со смарт-контрактом Ethereum, и при его использовании нет необходимости в разных приложениях для работы со смарт-контрактом.
Не отправляйте ETH напрямую на адрес смарт-контракта Ethereum
Вы можете воспользоваться этой функцией, встроив строку кода в смарт-контракт, но стоит запомнить, что отправка ETH напрямую в контракт — это неправильно.
Согласно документам Solidity, при включении этого фрагмента кода требуется более 2300 единиц газа для отправки каждого ETH на смарт-контракт Ethereum. Таким образом, это становится одним из самых дорогостоящих процессов на смарт-контрактах.
Ошибка при отправке ETH на адрес контракта Ethereum также связана с контрактами по умолчанию, называемыми ECRECOVER. Резервный процесс в ECRECOVER требует более 2300 единиц газа для выполнения операций по передаче ETH. Так что лучше не делать этого и использовать токены только для смарт-контрактов.
Как отправить ETH на контракт Ethereum
Чтобы отправить ETH на смарт-контракт, покупатель должен приобрести актив за эфиры. Контракт требует, чтобы владелец актива удерживал его до момента получения.
После подтверждения покупки и получения актива эта сумма передается продавцу. Происходит перевод ETH с контракта на определенный адрес.
Если покупатель не получает актив, контракт возвращает тот же ETH, отправленный покупателю. В этом случае блокчейн отправит ETH на адрес из контракта.
Чтобы отправить ETH на контракт
Вызывая функцию buyCollectible, покупатели могут купить желаемое количество активов из смарт-контракта.
Вы можете проверить баланс контракта —
web3.fromWei (web3.eth.getBalance (contractAddress), ‘ether’)
Как переместить ETH со смарт-контракта на другой адрес
function confirmCollRecv (uint _certNum)
Также проверьте количество активов в смарт-контракте и количество переводов, используя следующие функции в Web3:
Простыми словами: смарт-контракты, Ethereum, ICO
Смарт-контракты сделали криптовалюту Ethereum второй по величине. Рассказываем о том, что это такое и как это связано с модным понятием ICO.
Про Биткойн слышали многие, что и не удивительно — эта криптовалюта была первой и до сих пор остается самой популярной и самой крупной. Успех Биткойна вдохновил на подвиги кучу людей, поэтому за последние пару лет разных криптовалют — так называемых альткойнов — насоздавали ужас сколько, больше 1000.
Так вот, Биткойн — на данный момент однозначно номер один. А знаете, какая криптовалюта на втором месте? Ethereum. Когда мы говорим про места, мы имеем в виду капитализацию, то есть суммарную стоимость всех монет валюты.
Капитализация и цены TOP-5 криптовалют. Источник
Как видите, Ethereum с большим отрывом опережает другие «альткойны», а в июне 2017 чуть было даже не обогнал Биткойн, «великий и ужасный». Давайте разберемся, что же в Ethereum такого особенного и почему подавляющее большинство проводимых в этом году ICO используют именно его.
Идея Ethereum
Ethereum запустился совсем недавно, 30 июля 2015 года. Одним из его создателей был нынче известный в блокчейн-тусовке и, не побоюсь этого слова, влиятельный Виталик Бутерин. Он родился в России, но с шести лет жил в Канаде. На тот момент, когда он изложил свои идеи, которые в итоге легли в основу сети Ethereum, ему было 19 лет.
Так вот, в чем же идея? В сети Биткойн с точки зрения пользователя все устроено довольно просто. Есть кошельки, можно передавать деньги с одного кошелька на другой или на несколько сразу. Сеть построена на весьма остроумных принципах, позволяющих обходиться без единого центра, но задачи решаются вполне классические. Обычная платежная система, по большому счету: люди, деньги, переводы — все, больше ничего нет.
Но можно пойти дальше и создать такую платежную сеть, которая позволяет писать программы, которые бы работали с кошельками, сами бы принимали с кошельков деньги, решали, кому сколько отправить и так далее. С важным условием: для всех пользователей каждая такая программа будет работать по известным принципам, предсказуемо, одинаково, прозрачно, и чтобы никто не мог ее изменить.
Собственно, создатели Ethereum как раз и добавили к базовой функциональности криптовалют возможность создавать подобные программы. Все кошельки в Ethereum делятся на два типа: те, что управляются людьми, и те, что управляются автономно программами.
Программы — их называют смарт-контрактами — записываются в блокчейн. Таким образом, эта программа запоминается навсегда, у всех участников сети есть ее копия (блокчейн ведь у всех одинаковый), соответственно и выполняется смарт-контракт у всех тоже идентично.
И вот это нововведение существенно расширило сферу применения блокчейн-валют.
Примеры смарт-контрактов
Какие программы можно написать? Да какие угодно. Например, финансовую пирамиду. Для этого в сети Ethereum достаточно создать смарт-контракт со следующими правилами:
Или можно устроить аукцион. Пишем программу:
Есть еще миллион применений: кошельки с несколькими владельцами, финансовые инструменты, самоисполняющиеся пари, голосования, лотереи, игры, казино, нотариат и прочее.
Напомним преимущество: это блокчейн — все уверены, что никто не жульничает, все видят текст программы и понимают, что она работает именно так, как в ней написано. Программа — не человек. Она не скроется с деньгами, не обанкротится, и так далее. Если, конечно, в ней нет багов или «неожиданного поведения».
Ограничения смарт-контрактов
Но есть и существенные ограничения, вот некоторые из них:
Иными словами, как и в других областях, многое зависит от профессионализма авторов контрактов.
Главное использование смарт-контрактов
Простой смарт-контракт Ethereum. Имеющаяся ошибка позволяет украсть все деньги, кто нашел — молодец
Пирамиды, голосования, казино, лотереи — это все здорово. Но что оказалось действительно удобно делать при помощи смарт-контрактов — это надувать пузыри собирать деньги на свой стартап.
Ведь при помощи смарт-контракта можно автоматизировать всю «бухгалтерию»: контракт сам запомнит, от кого и сколько пришло денег, сам начислит «акции», а также даст возможность каждому участнику передавать и продавать эти акции. Не нужно никакой возни с адресами почты, кредитными картами, проверкой карт, авторизацией инвесторов и тому подобного. Вдобавок все видят, сколько всего было выпущено акций и как они распределились по участникам. От скрытого допечатывания акций и продажи одной акции несколько раз защищает блокчейн.
Смарт-контракты дали миллиону «криптоинвесторов» возможность «швырять деньги в монитор».
ICO — Initial Coin Offering
График стоимости Ethereum. Источник
Обсудим ICO поподробнее. Типичная схема криптостартапа такова:
Сумма обычно составляет 10-20 миллионов долларов и собирается буквально за несколько минут, иногда дней. Как правило, ICO ограничено по времени или собираемой сумме — и это формирует ажиотаж.
Окупаемость криптоинвестиций
Что будет дальше с выданными инвесторам токенами, зависит от проекта. Кто-то обещает выплачивать дивиденды с будущей прибыли, кто-то планирует принимать эти токены к оплате услуг, реализуемых проектом, кто-то ничего не обещает.
Как правило, сами токены выводятся на криптобиржу, и открываются торги. Те, кто не успел поучаствовать в ICO, могут купить их уже на бирже — скорее всего, подороже. Те, кто участвовал в ICO, чтобы потом перепродать подороже, могут их на бирже продать.
Иногда первых настолько больше, что цена растет стремительно, и капитализация проекта раздувается до миллиарда долларов. При том, что у него нет прибыли нет продукта, есть только идея, план и, в лучшем случае, команда.
Так как автор проекта собрал много денег, он этими же деньгами имеет возможность на бирже выкупать свои же токены, подогревая цену токена еще больше. На обычных биржах с обычными акциями такое поведение запрещено, но в криптоиндустрии регуляторов нет.
В 2017 году (к сентябрю) на ICO разные проекты уже собрали порядка 1,7 миллиарда долларов. Об успешных проектах слышно мало, но инвесторы не теряют оптимизма.
Как работает блокчейн Ethereum — смарт контракты и адреса счетов
Как следует из официальной документации платформы Эфириум :
Блокчейн Ethereum – это криптографически защищённый одноэлементный механизм записи транзакций с совместно используемым состоянием.
Звучит немного запутанно, правда? Давайте попробуем разобраться.
В сети криптовалюты Эфириум реализована данная парадигма блокчейна, далее мы разберем ее подробно и объясним основные принципы функционирования экосистемы платформы.
Навигация по материалу:
Основные принципы блокчейна Эфириума
Блокчейн Эфириума, по сути, является машиной состояний, функционирующей посредством транзакций. В компьютерных науках определение машины состояний подразумевает, что этот механизм считывает серию входных данных и, основываясь на них, переходит в новое состояние.
В случае с машиной состояний Эфириума, отправной точкой является «состояние генезиса». Оно подобно чистому листу до того, как в сети будут произведены какие-либо транзакции. После выполнения транзакций это состояние генезиса переходит в новое конечное состояние. В каждый момент времени это конечное состояние представляет собой текущее состояние Эфириума.
Состояние Эфириума включает в себя миллионы транзакций. Эти транзакции группируются в «блоки». Блок содержит группы транзакций и каждый блок связан с предыдущим, образуя цепочку.
Для того чтобы вызвать переход сети из одного состояния в другое, транзакция должна быть действительной. Для того чтобы транзакция была признана действительной, она должна пройти через процесс валидации (проверки и утверждения), известный как майнинг. Майнингом в сети Эфириум называется процесс, в котором группа узлов сети (т.е. компьютеров) расходует свои вычислительные ресурсы на создание блока действительных транзакций.
Любой вычислительный узел сети (их также называют «нодами», от англ. node – узел сети), декларирующий себя в качестве майнера, может претендовать на создание и валидацию блока транзакций. Многие майнеры со всего мира одновременно пытаются создавать и валидировать блоки. Каждый майнер при записи блока в блокчейн предоставляет математическое «доказательство» (англ. proof), и это доказательство действует как гарантия: если доказательство существует, блок должен быть валидным (действительным).
Для того чтобы добавить блок к основному блокчейну, майнер должен подтвердить его раньше других, конкурирующих с ним, майнеров. Процесс валидации каждого блока путём предоставления майнерами математического доказательства называется Proof-of-Work (доказательство выполнения работы).
Майнер, подтверждающий новый блок, получает за выполнение этой работы вознаграждение. Какое вознаграждение? В блокчейне Эфириума используются внутренние цифровые токены, называемые «эфирами». Каждый раз, когда майнер подтверждает блок, генерируются новые эфиры и выплачиваются майнеру.
Вы можете спросить, чем гарантируется то, что каждый будет придерживаться одной и той же цепочки блоков? Как можно быть уверенным в отсутствии группы майнеров, решивших создать собственную цепочку блоков?
Ранее мы приводили определение блокчейна как одноэлементного механизма записи транзакций с совместно используемым состоянием. Из этого определения мы можем понять, что корректное текущее состояние – это единственная глобальная истина, которая должна приниматься всеми. Наличие нескольких состояний (или цепочек) разрушило бы всю систему, так как в этом случае было бы невозможно договориться о том, какое состояние сети считать истинным. Если бы цепочки блоков расходились, то на одной из них у вас могло бы быть 10 коинов, на другой – 20, а на третьей – например, 40, и не было бы возможности определить, какая цепочка является более «валидной.»
Всякий раз, когда генерируется несколько вариантов цепочек, образуется «форк» (от англ. fork – вилка, разветвление). Обычно форков стараются избегать, так как они разрушают систему и ставят пользователей перед выбором, какой цепочке они доверяют больше.
Для того чтобы определить, какой путь в большей степени валиден и предотвратить образование нескольких цепочек, в Эфириуме используется механизм, называемый «протоколом GHOST».
Простыми словами, согласно протоколу GHOST, мы должны выбирать тот путь, на котором было выполнено наибольшее количество вычислений. Один из способов определить этот путь – по номеру последнего («листового») блока, который представляет собой общее количество блоков (не считая генезисного) на текущем пути. Чем больше номер блока, тем длиннее проделанный путь и тем выше количество усилий, затраченных майнерами для того, чтобы достичь этой точки. Используя такое рассуждение, мы можем договориться о канонической версии текущего состояния.
Теперь, когда вы получили общее представление о том, что такое блокчейн, давайте поговорим подробнее об основных компонентах, из которых состоит система Эфириума:
Прежде чем мы начнём, оговорюсь, что всякий раз, когда я говорю о «хэше» чего-либо, я имею в виду хэш KECCAK-256, используемый в Эфириуме.
Адреса счетов — аккаунты сети Ethereum
Глобальное «совместно используемое состояние» Эфириума состоит из множества небольших объектов («счетов»), которые могут взаимодействовать друг с другом через обмен сообщениями. Каждый счёт имеет ассоциированное с ним состояние и 20-битный адрес. Адрес в Эфириуме представляет собой 160-битный идентификатор, который используется для идентификации любого счета.
Существует два типа счетов :
Адреса владельцев счетов и адреса смарт-контрактов
Важно понимать фундаментальные различия между счетами внешних владельцев и счетами контрактов. Счета внешних владельцев могут отправлять сообщения на адреса других счетов внешних владельцев ИЛИ счетов контрактов, создавая и подписывая транзакции своим секретным ключом. Сообщение, передаваемое от одного счёта внешнего владельца другому – это просто денежный перевод. Сообщение же, отправленное от счета внешнего владельца на адрес счёта контракта, активирует выполнение программного кода контракта, что позволяет ему выполнять различные действия (например, трансфер токенов, некоторые вычисления, создание новых контрактов и т.д.).
В отличие от счетов внешних владельцев, счета контрактов не могут самостоятельно инициировать новые транзакции. Они осуществляют их только в ответ на полученные транзакции (от счёта внешнего владельца либо от другого счёта контракта).
Таким образом, все действия в блокчейне Эфириума инициируются транзакциями, отправленными со счетов внешних владельцев.
Состояние счета
Состояние счёта, независимо от его типа, складывается из четырёх компонентов:
Экосистема сети Эфириум
Итак, мы знаем, что глобальное состояние Эфириума складывается из сопоставления адресов и состояний счетов. Это сопоставление хранится в структуре данных, называемой patricia-деревом Меркла.
Дерево Меркла (также известное как trie-дерево) – это тип двоичного дерева, состоящего из множества узлов с:
Данные нижней части дерева генерируются следующим образом: данные, которые мы хотим сохранить, делятся на блоки, затем блоки делятся на сегменты, после чего берётся хэш каждого сегмента и весь процесс повторяется до тех пор, пока не останется только корневой хэш.
Этому дереву необходим ключ для каждого хранящегося внутри него значения. Начиная с корневого узла дерева, ключ указывает вам, к какому дочернему узлу следовать, чтобы получить соответствующее значение, хранящееся в конечных узлах.
В случае с Эфириумом, ключ/значение для дерева состояний отображается между адресами и ассоциированными с ними счетами, включая balance, nonce, codeHash и storageRoot для каждого счёта (где storageRoot сам также является деревом).
Та же самая trie-структура используется для хранения транзакций и квитанций (они же чеки, анг. receipt).
Точнее говоря, каждый блок имеет «заголовок», в котором хранится хэш корневых узлов трёх различных trie-структур, включая:
Возможность эффективного хранения всей этой информации в деревьях Меркла в Эфириуме чрезвычайно полезна для того, что мы называем «лёгкими клиентами» или «лёгкими нодами». Не забывайте, что блокчейн поддерживается множеством нод (узлов). Говоря в общем, есть два типа нод: полные и лёгкие.
Полные архивные ноды синхронизируют блокчейн, загружая всю цепочку, от генезисного блока до текущего верхнего блока, включая все записанные в цепочке транзакции. Как правило, полные архивные ноды держат майнеры, так как они необходимы для майнинга. Можно также загрузить полную ноду без записей о каждой совершённой транзакции. Независимо от этого, каждая полная нода содержит полную информацию обо всей цепочке.
Однако, за исключением тех случаев, когда ноде нужно иметь информацию о каждой транзакции или иметь лёгкий доступ к историческим данным, нет никакой необходимости хранить цепочку целиком. Именно здесь в игру вступают лёгкие ноды.
Вместо того чтобы загружать и локально хранить полную цепочку, включая записи обо всех произведённых транзакциях, лёгкие ноды загружают только цепочку заголовков блоков, от генезисного до текущего верхнего блока, без подробной информации о транзакциях или получения какого-либо ассоциированного с ними состояния.
При этом, поскольку лёгкие ноды имеют доступ к заголовкам блоков, содержащим хэши трёх деревьев, они по-прежнему могут легко генерировать и получать верифицируемые ответы о транзакциях, событиях, балансах и т.д.
Причина, по которой это работает, заключается в том, что хэши в дереве Меркла распространяются вверх – если злоумышленник пытается подменить или вписать поддельную транзакцию в нижнюю часть дерева Меркла, это действие повлечёт за собой изменение хэша узла уровнем выше, что, в свою очередь, приведёт к изменению хэша узла над ним и так далее до тех пор, пока, в конце концов, это не изменит корень дерева.
Для проверки части данных любая нода может использовать «доказательство Меркла». Доказательство Меркла состоит из:
Любой, прочитав доказательство, может удостовериться в последовательности хэширования этой ветви на всём протяжении до корневого хэша дерева и, следовательно, в корректности нахождения проверяемого фрагмента данных на соответствующей позиции в дереве.
Подводя итог, преимущество использования patricia-дерева Меркла заключается в том, что корневой узел этой структуры криптографически зависит от хранящихся в дереве данных, и поэтому хэш корневого узла может использоваться в качестве идентификатора безопасности этих данных. Поскольку заголовок блока включает в себя корневой хэш деревьев состояния, транзакций и квитанций, любая нода может проверить и подтвердить небольшую часть состояния Эфириума без необходимости хранить всё состояние, размер которого потенциально неограничен.
«Желтая книга» Эфириума находится в свободном доступе на Github.