(1) Алгоритм консенсуса блокчейна: общее введение и общее объяснение форков

задняя часть алгоритм продукт биткойн блокчейн Эфириум
(1) Алгоритм консенсуса блокчейна: общее введение и общее объяснение форков

Автор: Линь Гуаньхун / Призраки под рукой

Самородки:Талант /user/178526…

Блог:www.cnblogs.com/linguanh/

Гитхаб:GitHub.com/afan913337456…

Облачная колонка Tencent:cloud.Tencent.com/developer/U…


Эта статья не объясняет общее введение в описание блокчейна. Сосредоточьтесь на кратком объяснении:

  • Форки блокчейна
  • алгоритм консенсуса

Кстати: моя техническая книга «Практика разработки блокчейн-приложений на Ethereum» опубликована и может быть приобретена в Интернете.


содержание

предисловие

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

Простой взгляд на блокчейн

Цепочка в нашей общей идеологии такова铁链, сделанные из железа, с кольцом, прикрепленным друг к другу. Образно так можно понимать и блокчейн, за исключением того, что он сделан не из железа, а имеет определенную数据结构的块связано, это самое简单的雏形

Увидеть ниже

общее понимание

так называемый共识С точки зрения непрофессионала, это означает, что мы все согласны с нашим пониманием чего-либо. Например, на ежедневных встречах для обсуждения вопросов или для того, чтобы судить, является ли животное кошкой или нет, мы думаем, что оно выглядит как кошка, увидев его невооруженным глазом, и оно соответствует характеристикам кошки, тогда мы думаем, что это кошка. это кошка. Консенсус – это правило.

Продолжая наш пример встречи. принимать участие会议的人,пройти через开会способ достижения谈论解决问题.

В сравнении区块链в, участвовать挖矿的矿工через некоторые共识方式(算法)решать让自己的账本跟其他节点的账本保持一致. Позвольте книгам поддерживать последовательный уровень глубины смысла, чтобы информация о цепочке блоков оставалась неизменной.

зачем нужно共识, не надо? Конечно нет, жизнь ушла共识的规则, все напутано. Блокчейн ушел共识的规则, каждый узел делает свое дело и теряет свое последовательное значение.

Соответствующее соотношение между двумя примерами выглядит следующим образом:

  • 会议的人 = 挖矿的矿工
  • 开会 = 共识方式(算法)
  • 谈论解决问题 = 让自己的账本跟其他节点的账本保持一致

если ты прав节点Я не понимаю смысла понятия, пожалуйста, поймите его как矿工, узел содержит множество ролей, и майнеры — одна из них.

алгоритм консенсуса

В настоящее время распространенные в блокчейне узлы让自己的账本跟其他节点的账本保持一致из共识方式(算法)Есть следующие:

  • PoW, представленный биткойнами (BTC)
    • Недостатки:
      • Появление майнинговых пулов в определенной степени нарушило первоначальный замысел децентрализации, а также сделало возможными атаки 51%, повлиявшие на его безопасность.
      • Происходит огромная трата вычислительных мощностей.Посмотрите на майнинговые пулы, которые потребляют много энергоресурсов.По мере увеличения сложности не хватает на оплату электричества.
  • PoS в лице Ethereum (ETH), переход от PoW к PoS
    • Недостатки:
      • У разрушителей низкая стоимость атаки на сеть, владение токенами может конкурировать
      • Кроме того, узлы с большим количеством токенов будут иметь большую вероятность получения учетных прав, что приведет к тому, что в сетевом консенсусе будет доминировать несколько богатых учетных записей, тем самым потеряв справедливость.
  • DPoS, представленный грейпфрутом (EOS)
    • Недостатки:
      • Избрание фиксированного числа свидетелей в качестве кандидатов для ведения бухгалтерского учета может не подходить для полностью децентрализованных сценариев.
      • В сценариях с несколькими сетевыми узлами репрезентативность выбранных свидетелей невелика.
  • PBFT Византийская отказоустойчивость, обычно используемая в цепочках альянсов
    • Недостатки:
      • Не подходит для публичной сети, подходит для сети альянса

Ниже приводится краткое описание каждого共识算法концепция, обратите внимание! Это концепция, детальная реализация не на уровне кода.

PoW

Его полное название:Proof of Work 工作量证明. Буквально это означает, что тот, кто больше работает, будет иметь больше возможностей говорить В определенной степени это похоже на концепцию большего количества работы и большего вознаграждения в реальной жизни. Этот пример будет перемежаться примерами из жизни, а остальные пояснения не будут громоздкими.

брать比特币Например,比特币挖矿Это сопоставление определенного биткойна путем расчета区块头из哈希散列值карабкаться记账权. Этот процесс необходимо реализовать за счет большого объема вычислений.Простое понимание состоит в том, что объем вычислений, которые вы выполняете, велик (рабочая нагрузка велика), и у вас есть высокая вероятность получения права учета, то есть блоков добытые майнерами, объединяются в основную цепь.

  • 区块头, заголовок блока в блокчейне. У вас есть ланч-бокс, первый слой ланч-бокса — это голова животного, которая называется головой. Первый слой — это рис, рис — это то, что загружается на голову.
  • 哈希散列值, значение, рассчитанное по математической формуле
    • 哈希: хэш-функция в математике
    • 散列值: значение, полученное хэш-функцией
    • Например, формула сложения: 1 + 2 = 3. Так哈希公式: хэш(1,2) = результат
  • 区块头из哈希散列值, первый слой ланч-бокса заполнен рисом. Тогда значение здесь区块头что надеть
  • 记账权, право говорить, кто накопал区块Это эффективно.

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

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

Вернемся к майнингу биткойнов:

  • Проблема в计算出正确的哈希散列值
    • 计算哈希散列值По мере увеличения фактора сложности становится все труднее
    • Расчет требует много силовых ресурсов, а рабочая нагрузка большая
  • После расчета сообщите другим узлам
  • После того, как узел получает уведомление, он останавливает текущие расчеты.
  • Узел начинает проверять информацию
    • Информация верна, текущий блок добывается, и каждый узел снова начинает добывать следующий блок.
    • Информация недействительна, и каждый узел продолжает свою вычислительную работу.
  • Узлы, которые успешно добывают действительные блоки, будут вознаграждены наградами в биткойнах.

Что, если проблема будет решена одновременно? ---① Ответ см. в следующей главе.форк блокчейна

форк блокчейна

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

  • хардфорк
    • Оказавшись там, окончательный результат - разделение на две части.
    • Заявление о терминологии:旧节点Блок, созданный новым узлом, не может быть распознан, что硬分叉
  • мягкая вилка
    • Как только он появится, окончательный результат можно будет скорректировать.
    • Заявление о терминологии:旧节点Способен распознавать блоки, сгенерированные новыми узлами, для软分叉

Теперь ответьте на вопросы, оставленные в предыдущей главе --- ①, ① Дело в том,软分叉Разновидность, когда два или более узла майнят блок с одинаковым номером блока одновременно, а затем одновременно транслируют информацию, предполагая, что один из нихA, в то время как другойB, то узел, который относительно близок к A, получает информацию от A до получения других сообщений и начинает подтверждать информацию о блоке, добытом A, а затем добавляет блок, добытый A, в свое собственное местоположение в публичную цепочку. . Точно так же узлы, которые относительно близки к B, сначала обработают информацию о блоках, добытую B, и добавят их в свою собственную публичную цепочку.

Текст выше соответствует изображению ниже. Ближе всего к А находится节点1, ближайший к B节点5

В этот момент произошло разветвление цепи. Это ответвление, вызванное тем же алгоритмом консенсуса и правилами консенсуса.

Когда это происходит, майнеры лучше исправляются. Поскольку способность решать проблемы пропорциональна количеству майнеров,增长速度Также бывает по-разному, по прошествии времени одна цепочка всегда длиннее другой. Когда майнер обнаружит, что во всей сети есть более длинная цепочка, он откажется от своей текущей цепочки, скопирует обратно всю новую более длинную цепочку и продолжит майнинг на основе этой цепочки. Все майнеры делают это, эта цепочка становится основной цепочкой, а разветвленная цепочка будет отброшена.

Появление хардфорков

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

分叉点后的链, и не будут влиять друг на друга в будущем, а узлы больше не будут транслировать друг другу информацию о блоках после того, как они создали фракцию.新节点и旧节点начнет работать на другом блокчейне (挖矿,交易,验证Ждать)

Для простого примера, если нода версии 1.0 получает 10 полей блочной структуры, через год будет выпущена нода версии 2.0.Версия 2.0 совместима с 1.0, но версия 1.0 не может принимать дополнительные поля в версии 2.0.

Процесс хардфорка:

  • Разработчик выпускает новые节点代码, новый меняет правила консенсуса блокчейна и не совместим со старым, поэтому节点程序出现了分叉(форк программного обеспечения)
  • Некоторые узлы в сети блокчейна начинают запускать новый код узла, а транзакции и блоки, сгенерированные по новым правилам, будут отклонены старыми узлами.开始短暂的断开Соединение с этими новыми узлами, которые отправляют транзакции, отклоняются сами по себе и блокируются, поэтому вся цепочка блоков网络出现了分叉(форк сети)
  • Майнеры новой ноды начинают майнить по новым правилам, старые по-прежнему используют старые правила, разные майнеры算力出现了分叉(форк майнинга)
  • В конце концов, у всего блокчейна есть форк цепи.

Пример:

1 августа 2017 года блокчейн Bitcoin Cash (BCH) успешно отделился от основной цепи на высоте блока 478559. Новая криптовалюта имеет размер блока по умолчанию 8 МБ и может динамически регулировать размер блока. Поскольку старый узел распознает только блоки размером менее 1 МБ, блоки, сгенерированные работающими клиентскими узлами BCH, не могут быть совместимы с предыдущими версиями и будут отклонены старыми узлами.Наконец, майнеры, использующие разные клиенты, будут работать на двух разных блокчейнах в течение длительного времени. (БТД и БЧХ)

Появление софтфорков

  • Разные узлы выкопали блоки с одинаковым номером блока за небольшую разницу во времени, т.例子
  • Поскольку правила консенсуса изменены, старые узлы могут распознавать блоки, сгенерированные новыми узлами, а старые блоки не могут быть приняты новыми.
    • Вычислительная мощность нового узла превышает 50%
    • Вычислительная мощность всей сети нового узла меньше или равна 50%

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

  1. когда新节点全网算力大于50%, так как вычислительная мощность нового узла больше 50%, независимо от того, обновлен старый узел или нет, самой длинной цепочкой однозначно будет цепочка, состоящая из всех блоков, сгенерированных новым узлом. Более того, эта самая длинная цепочка в конечном итоге будет той, которую обе стороны сочтут законной. По этой причине, пожалуйста, обратитесь к самой длинной копии цепочки, упомянутой выше. Ее можно скопировать, поскольку она соответствует следующим пунктам.

    • Старый может получить новый, а блоки после точки разветвления смешиваются
      • Блоки из старых узлов
      • блок нового узла
    • Новый не может получить старый, но в итоге и после всегда длиннее старого
  2. когда新节点全网算力小于等于50%, в конечном итоге не может достичь единства с помощью длинной короткой копии, результат:分叉. Причина в следующем.

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

Написав это, я обнаружил, что контента больше, чем я себе представлял.

Поэтому в настоящее время он делится на两章节, введение остальной части алгоритма консенсуса оставлено на усмотрение.第二章.

Ссылаться на

blog.CSDN.net/Почти испугался…

blog.CSDN.net/Yes_Li Sheng/Ах…

Заканчивать