Кто имеет доступ к транзакциям на эфириум
Перейти к содержимому

Кто имеет доступ к транзакциям на эфириум

  • автор:

В РФ начнут отслеживать криптовалютные транзакции. Что это значит

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

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

Еще в августе прошлого года Росфинмониторинг предложил включить в федеральный проект «Искусственный интеллект» систему «Прозрачный блокчейн» — аналитику криптовалютных транзакций с помощью искусственного интеллекта. К тому времени прототип системы был разработан и опробован в сфере противодействия наркобизнесу. В феврале этого года глава Росфинмониторинга Юрий Чиханчин на встрече с президентом Владимиром Путиным говорил, что «Прозрачный блокчейн» позволит ведомству «увидеть все движения с криптовалютой, то есть попытки спрятаться за криптовалюту». «Мы разработали цифровой сервис, который позволяет нам анализировать криптотранзакции. Это даст нам возможность отслеживать эти транзакции в криптовалюте, и самое главное, мы сейчас отрабатываем признаки и критерии, которые в общем потоке транзакций могли бы нам показать, где есть преступление, уже есть уголовные дела», — рассказывал Чиханчин.

Представители Росфинмониторинга отказались давать комментарии по поводу «Прозрачного блокчейна» и раскрывать детали проекта.

Зачем властям отслеживать криптовалютные транзакции

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

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

Законно ли мониторить криптотранзакции

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

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

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

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

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

Что на самом деле могут узнать о транзакциях

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

«Зная IP адрес, узнать личные данные совсем несложно: интернет-провайдеры обязаны хранить эту информацию даже после расторжения контракта. По активности кошелька можно определить часовой пояс владельца», — объясняет Станкевич.

Отследить транзакции и идентифицировать их участников можно даже в анонимных блокчейнах вроде Monero и Zcash, говорит старший аналитик BestChange.ru Никита Зуборев. По его словам, сопоставляя время и размер транзакции, можно с определенной степенью достоверности определить цепочку переводов, особенно учитывая, что внутри таких блокчейнов преступники пренебрегают мерами предосторожности, считая себя абсолютно защищенными самим блокчейном.

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

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

По словам Плахова, разрабатываемая система для мониторинга криптовалютных транзакций будет способна отслеживать операции, которые выполняются в блокчейне без посредничества криптобирж (напрямую от отправителя — адресату). «Система может отслеживать движение средств во всех блокчейнах открытого типа. У наших разработчиков уже есть опыт анализа таких сетей как Ethereum, Tron, Tezos, EOS, Cardano, Stellar и др», — рассказал Плахов.

Представители RCO на запрос «РБК-Крипто» о том, как будет работать система мониторинга, не ответили.

Как создание системы повлияет на крипторынок

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

«Все эти инструменты имеют четкую и понятную задачу — бороться с незаконным отмыванием денег, финансированием терроризма, незаконным оборотом наркотиков, киберпреступностью», — говорит Костарев.

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

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

Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.

Эфириум

Ethereum (ETH)

Эфириум (Ethereum) — это платформа для разработчиков приложений и дочерних проектов, построенная на децентрализованной технологии блокчейн.

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

Она функционирует как не требующая доверия система обработки транзакций, среда, в которой отдельные люди могут осуществлять одноуровневые (peer-to-peer) транзакции без необходимости доверять некой третьей стороне или друг другу.

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

Это криптовалюта второго поколения, которая основана на децентрализованной майнинговой сети.

История создания Гевин Вуд и Виталий Бутерин – именно эти два человека создали Эфириум. Первые упоминания о Ethereum датируются концом октября 2013 года. Неофициально на начальном этапе Эфириум часто называли «новый Биткоин или Bitcoin 2.0».

Для развития проекта естественно требовались крупные денежные вложения, поэтому в 2014 году создатели платформы запустили мощный краудфандинговый проект для сбора средств. За короткий промежуток времени (всего за 42 дня) в краудфандинговый проект было привлечено более 30 тысяч Bitcoin. Запуск Ethereum произошел в конце июля 2015 года.

Идея Эфириума — создать блокчейн в котором на тьюринг-полном языке программирования, возможно создавать любые «смарт-контракты». В данное время имеет алгоритм Dagger-Hashimoto и используется концепция Proof-of-Work для защиты сети. Присутствует протокол GHOST предусматривающий оплату опоздавших решений, для обеспечения децентрализации вычислительных центров.

Разработчикам удалось собрать 18 миллионов долларов в Биткоинах, однако взамен они должны предоставить 60 миллионов эфиров. После того, как стартап смог привлечь столь большие инвестиции, им заинтересовались крупные компании.

Среди них можно выделить: Microsoft, IBM, Acronis, Сбербанк и другие.

В чем заключается уникальность криптовалюты Ethereum

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

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

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

В основе используется язык программирования Script. У него отсутствует доступ к blockchain или транзакциям, поэтому не может проверять все условия сделок. Поэтому смарт-контракты в системе Bitcoin способны справиться только с самыми простыми задачами. На площадке Ethereum используется код программирования похожий на JavaScript. Контракт считается выполненным после того, как он получил уведомление от другого пользователя или другого смарт-контракта.

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

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

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

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

Разделение Ethereum и Ethereum Classic

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

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

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

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

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

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

Доступно о транзакциях

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

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

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

Отправка и получение

Процесс отправки и получения «крипты» устроен практически одинаково во всех кошельках.

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

Этапы транзакции

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

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

  1. Этапы ожидания После того, как транзакция осуществляется в кошельке, она практически мгновенно достигает соответствующей блокчейн сети. Транзакции с Биткоинами отправляются в сеть Биткоин, транзакции с Эфиром — в сеть Эфириум и т.д. На данном этапе, как отправитель, так и получатель уже могут отслеживать статус транзакции в своих приложениях-кошельках или в общедоступном блокчейн-поисковике, blockchair.com blockchair.com.
  2. Этапы подтверждения При условии, что транзакция действительна, все узлы в данном блокчейне будут стремиться включить ее в блокчейн. Продолжительность этих этапов может меняться от блокчейна к блокчейну. В блокчейне Биткоин, она может составлять до 10 минут, в Эфириуме — примерно 2-3 минуты и т.д. Этот этап может занимать гораздо больше времени, если блокчейн перегружен множеством транзакций, ожидающих своей очереди. Транзакция считается завершенной, посте того как она была добавлена в блокчейн.
  3. Финализация транзакции После того, как транзакция была добавлена в блокчейн, она может считаться финализированной. Несмотря на это, в случае с некоторыми блокчейнами, в частности Биткоином, рекомендуется выждать, пока не будет добавлено еще несколько новых блоков. При осуществлении транзакций на крупные суммы, как правило рекомендуется выждать, пока не будет добавлено до 6 блоков, прежде чем транзакция может считаться теоретически необратимой. Для большинства платежей, 1-2 подтверждения считается достаточным.

Плата за транзакцию

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

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

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

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

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

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

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

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

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

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

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

Отмена транзакции

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

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

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

Анонимность транзакции

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

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

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

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

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

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

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

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

Как работает Эфириум? (Часть 1: блокчейн, счета и состояние сети)

Ethereum

Очень многие знают о существовании блокчейна Эфириума, но значительно меньше людей понимают, что это такое. В последнее время Эфириум часто упоминался в СМИ и даже фигурировал на обложках некоторых крупных журналов. Так что же такое Эфириум?

Введение

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

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

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

Ну что ж, приступим!

Определение блокчейна

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

  • “Криптографически защищённый” означает, что создание цифровой валюты обеспечивается сложным математическим алгоритмом, который чрезвычайно сложно взломать. Представьте себе своего рода файервол. Это делает обман и злоупотребление системой (напр., создание поддельных или удаление существующих транзакций) практически невозможным.
  • “Одноэлементный механизм записи транзакций”означает, что существует только один канонический экземпляр механизма, ответственного за создание всех транзакций в системе. Иными словами, в этой системе есть только одна глобальная истина, которая принимается всеми участниками системы.
  • “С совместно используемым состоянием” означает, что состояние этого механизма в каждый момент времени открыто для всех и используется совместно всеми участниками сети.

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

Парадигма блокчейна Эфириума

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

img1

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

img2

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

img3

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

Любой вычислительный узел сети (их также называют «нодами», от англ. node – узел сети), декларирующий себя в качестве майнера, может претендовать на создание и валидацию блока транзакций. Многие майнеры со всего мира одновременно пытаются создавать и валидировать блоки. Каждый майнер при записи блока в блокчейн предоставляет математическое «доказательство» (англ. proof), и это доказательство действует как гарантия: если доказательство существует, блок должен быть валидным (действительным).

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

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

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

Ранее мы приводили определение блокчейна как одноэлементного механизма записи транзакций с совместно используемым состоянием. Из этого определения мы можем понять, что корректное текущее состояние – это единственная глобальная истина, которая должна приниматься всеми. Наличие нескольких состояний (или цепочек) разрушило бы всю систему, так как в этом случае было бы невозможно договориться о том, какое состояние сети считать истинным. Если бы цепочки блоков расходились, то на одной из них у вас могло бы быть 10 коинов, на другой – 20, а на третьей – например, 40, и не было бы возможности определить, какая цепочка является более «валидной.»

Всякий раз, когда генерируется несколько вариантов цепочек, образуется «форк» (от англ. fork – вилка, разветвление). Обычно форков стараются избегать, так как они разрушают систему и ставят пользователей перед выбором, какой цепочке они доверяют больше.

img4

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

“GHOST” = “Greedy Heaviest Observed Subtree” («Жадное и самое весомое видимое поддерево»)

Простыми словами, согласно протоколу GHOST, мы должны выбирать тот путь, на котором было выполнено наибольшее количество вычислений. Один из способов определить этот путь – по номеру последнего («листового») блока, который представляет собой общее количество блоков (не считая генезисного) на текущем пути. Чем больше номер блока, тем длиннее проделанный путь и тем выше количество усилий, затраченных майнерами для того, чтобы достичь этой точки. Используя такое рассуждение, мы можем договориться о канонической версии текущего состояния.

img5

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

  • счета (аккаунты)
  • состояние
  • газ и комиссии
  • транзакции
  • блоки
  • выполнение транзакций
  • майнинг
  • Proof-of-Work

Прежде чем мы начнём, оговорюсь, что всякий раз, когда я говорю о «хэше» чего-либо, я имею в виду хэш KECCAK-256, используемый в Эфириуме.

Счета (аккаунты)

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

Существует два типа счетов:

  • Счета внешних владельцев (externally owned accounts) управляются при помощи секретных ключей и не имеют ассоциированного с ними программного кода.
  • Счета контрактов управляются ассоциированным с ним программным кодом.

img6

Счета внешних владельцев и счета контрактов

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

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

img7

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

img8

Состояние счёта

Состояние счёта, независимо от его типа, складывается из четырёх компонентов:

  • nonce: для счетов внешних владельцев, это число представляет собой количество транзакций, отправленных с адреса данного счёта. Для счетов контрактов, это количество контрактов, созданных данным счётом.
  • balance: баланс Wei для данного адреса. 1 эфир = ¹⁰¹⁸Wei.
  • storageRoot: хэш корневого узла patricia-дерева Меркла (о деревьях Меркла мы поговорим позже). Это дерево кодирует хэш содержимого хранилища данного счёта и по умолчанию пусто.
  • codeHash: хэш кода EVM (виртуальной машины Эфириума – подробнее об этом позже) для данного счёта. Для счетов контрактов, это код, который хэшируется и сохраняется как codeHash. Для счетов внешних владельцев, поле codeHash является хэшем пустой строки.

img9

Глобальное состояние сети

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

Дерево Меркла (также известное как trie-дерево) – это тип двоичного дерева, состоящего из множества узлов с:

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

img10

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

img11

Этому дереву необходим ключ для каждого хранящегося внутри него значения. Начиная с корневого узла дерева, ключ указывает вам, к какому дочернему узлу следовать, чтобы получить соответствующее значение, хранящееся в конечных узлах. В случае с Эфириумом, ключ/значение для дерева состояний отображается между адресами и ассоциированными с ними счетами, включая balance, nonce, codeHash и storageRoot для каждого счёта (где storageRoot сам также является деревом).

img12

Та же самая trie-структура используется для хранения транзакций и квитанций (они же чеки, анг. receipt).

Точнее говоря, каждый блок имеет «заголовок», в котором хранится хэш корневых узлов трёх различных trie-структур, включая:

  1. trie-дерево состояний;
  2. trie-дерево транзакций;
  3. trie-дерево квитанций.

img13

Возможность эффективного хранения всей этой информации в деревьях Меркла в Эфириуме чрезвычайно полезна для того, что мы называем «лёгкими клиентами» или «лёгкими нодами». Не забывайте, что блокчейн поддерживается множеством нод (узлов). Говоря в общем, есть два типа нод: полные и лёгкие.

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

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

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

img14

Для проверки части данных любая нода может использовать «доказательство Меркла». Доказательство Меркла состоит из:

  1. фрагмента данных для проверки;
  2. корневого хэша дерева;
  3. «ветви» (всех хэшей на пути от проверяемого фрагмента данных к корню дерева).

img15

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *