Найти тему

Почему Ethereum перешел на скам?

Оглавление

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

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

На чем строится блокчейн и моя анонимность?


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

Блок же отображает состояние о ваших транзакциях

-2

А зашифрована подпись так, что единственным способом узнать её и пройти функцию Verify - перебрать 2 в 256 степени комбинаций числа (поверьте, это намного более чем астрономически большое число, даже говорить так - сильно переоценивать астрономию).

То есть, когда вы совершаете транзакцию:

  1. Она подписывается моим секретным ключом
  2. Возникает подпись (Signature), состоящая из 256 нулей и единиц (256 бит)
  3. Подпись проверяется
  4. Если проверка пройдена, транзакция считается валидной и записывается в блок
  5. Блок рассылается всем участникам обмена криптовалютой

Чему верить?

Если все обмениваются блоками с транзакциями, то каким блокам я могу доверять? Как удостовериться, что мне не прислали неправильный блок с транзакцией, согласно которой я переслал 10000 биткоинов Антону из 3-го подъезда?

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

Именно тут и запускаются механизмы достижения консенсуса: Proof-of-Work и Proof-of-Stake. Отвечают они именно за то, как мы (участники обмена криптовалютой), будете договариваться друг с другом о взаимной записи друг у друга каждого блока, и каким блокам мы можем доверять.

Доказательство работы

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

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

-3

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

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

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

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

Что происходит:

  1. Массив данных из блока преобразуется в хеш-сумму
  2. Майнеры решают задачу по нахождению nonce
  3. Проверяют, совпадает ли хеш-сумма
  4. Если совпадает, то такому блоку можно доверять
  5. Проверенный блок рассылается всем участникам сети

Для того, чтобы обмануть такую систему, нужно:

  • Узнать секретный ключ либо подобрать подпись с контекстом.
  • Подделать весь массив таких ключей и записать их блок.
  • Создать блок раньше всех майнеров.
  • Даже если удалось создать блок раньше всех, нужно обладать более чем 50% вычислительной мощности в системе чтобы продолжать создавать блоки раньше остальных. Так как даже если каждому пользователю пришло несколько разных блоков, система всегда будет выбирать самую длинную цепочку блоков.

Доказательство владения

Proof-of-Stake - доказательство доли владения, так нашумевшее в последнее время. И эфир перешел на него, и все так расхваливают эту штуку чудеснейшую. Что же в ней такого?

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

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

Проще всего понять на аналогии с PoW:

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

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

Также:

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

Однако

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

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

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

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

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

--------------------------------------------------

С уважением, @NICKCHEL