Консенсус блокчейна и механизм консенсуса
Консенсус блокчейна и механизм консенсуса

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

консенсусное определение

Во-первых, мы можем дать простое определение:

Консенсус: результат, с которым могут согласиться все в системе.

Механизм консенсуса: метод достижения консенсуса в системе.

В текущем блокчейне:

Консенсус: записи транзакций признаются всеми

Механизм консенсуса: метод, позволяющий сделать записи транзакций распознаваемыми всеми.

причина

Почему существует механизм консенсуса?

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

Природа шахтеров

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

Сущность механизма консенсуса

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

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

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

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

Сущность механизма консенсуса

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

Проблемы и решения

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

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

Механизмы общего консенсуса и анализ их безопасности

PoW-механизм

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

Proof-Of-Work,При ведении учетных записей каждый узел находит случайное число в соответствии с определенными правилами. С помощью этого случайного числа можно вычислить определенное квалифицированное (хэш) значение. Тот, кто найдет его первым, успешно создаст блок.。Найдите это случайночислопроцесс Сразуда Постоянно корректируйте случайные числа-->Процесс расчета,Пока этот вид алгоритма может быть достаточно дискретным (нет связи между этим временем и следующим вычислением,Изменения случайных чисел приводят к достаточно дискретным изменениям результатов вычислений),Тогда может быть достигнута рандомизация узлов, производящих блоки.

Приведем простой пример: если хеш-значение, полученное алгоритмом, всегда находится в диапазоне от 0 до 10000, и алгоритм требует, чтобы полученное (хеш-значение) было меньше 1, если машина может вычислять его один раз в секунду, то в среднем он вычислит один Десять тысяч раз, есть вероятность, что значение может быть меньше 1 или, наоборот, каждый раз, когда выполняется расчет, есть один шанс из 10 000, что оно окажется меньше 1. Если вычисляется 10 000 узлов; в то же время один узел может получать значение каждую секунду. Если результат соответствует условиям, узел, получивший результат, соответствующий условиям, успешно генерирует блок. И каждую секунду машина, получающая результат, может быть разной. Это приводит к достаточно случайным результатам.

Гонка вооружений:

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

Значение сложности

Возможно, кто-то обнаружил проблему. Вычислительная мощность каждого увеличилась в десять раз. Значение, которое раньше занимало в среднем одну секунду, теперь может быть рассчитано за 0,1 секунды. В конце концов, не было бы быстрее делать все, кроме игры. с расчетами, если все не выдерживают, какой в ​​этом смысл?

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

Для решения этой проблемы было введено понятие сложности. Когда вычислительная мощность увеличивалась, все изначально надеялись произвести блок за 1 секунду. Однако у кого-то вычислительная мощность увеличилась и блок был произведен за 0,5 секунды. ? Увеличьте сложность изначально меньше 1, но теперь все требуют, чтобы результат был меньше 0,5, поэтому вычислительная мощность увеличивается в два раза и сложность увеличивается в два раза. В результате время генерации блока все еще близко к 1 секунде. Что, если вычислительная мощность увеличится в 10 раз? Требуемый результат меньше 0,1.

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

TPS в PoW

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

Я говорил о генерации блоков ранее.,система по значению сложности,Биткойн фиксирует время генерации блока на уровне 10-15 минут, а Эфириум фиксирует время генерации блока на уровне около 12 секунд. Размер каждого блока ограничен, поэтому количество транзакций внутри каждого блока ограничено.TPS=Максимальное количество транзакций на блок/Блокировать время。Поэтому всистемав начале проектированияалгоритмначальство Сразузафиксированный ПонятноTPSчисло Понятно。

Поскольку TPS = максимальное количество транзакций на блок/время генерации блока, метод увеличения TPS очень прост:

Расширьте числитель: Расширьте емкость каждого блока, например, так делает BCH.

Уменьшите знаменатель: то есть сократите время генерации блока. От Биткойна до Эфириума знаменатель уменьшается.

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

Proof-Of-Stake, доказательство справедливости.

PoW-механизм очень полезен,у ноды есть вопрос,после гонки вооружений,Слишком большое энергопотребление Понятно,Они все делают какие-то бессмысленные вычисления,Помимо результатов и времени прибытия Понятно,возвращатьсяиметь Разнообразный Что?заслуживающий доверияданные Как случайное значение??иметьдумать Пришла в голову новая мысль, у всех на счету разное количество монет? , можно ли использовать его как случайное число?

Об этом можно подумать. Каждый раз, когда создается блок, будет распознан тот, у кого больше всего монет в узле (аккаунте), производящем блок. Но есть проблема: разве тот, у кого больше всего монет, не продолжает производить блоки?

Добавьте возраст валюты. Как только определенная учетная запись (узел) успешно сгенерирует блок, возраст валюты будет очищен. Если блок не будет успешно сгенерирован, возраст валюты будет добавлен.

Например, на учетной записи A имеется 7 монет, на учетной записи B — 8 монет, а на учетной записи C — 3 монеты.

Начальное значение возраста валюты: A: 7, B: 8, C: 3. Раунд 1: Блок B.

Возраст монеты после первого раунда: A:14, B:0,C:6 Второй раунд A производит блок.

Возраст монеты после второго раунда: A:0,B:8,C:9 Третий раунд: Блок C

Возраст монет третьего раунда: A:7 B:16, C:0.

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

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

2. Что, если настала очередь узла производить блок, но в итоге он его не производит?

DPoS

На основе PoS,Некоторые люди просто хотят понять,ой,Децентрализация означает отсутствие производства блоков на одном узле.,Затем я выбираю несколько узлов,Пусть эти узлы по очереди выдают блоки.Сразу Может Понятно Что?。Итак есть DPoS (делегированное Proof-Of-Stake), выбираем несколько нод,Пусть эти узлы служат всем,Они приходят делать блоки,OK,Экономьте время и не беспокойтесь.

Подождите, это кажется немного странным. Метод децентрализации состоит в том, чтобы сделать узлы, производящие блоки, максимально рассредоточенными, чтобы один или несколько узлов не производили блоки всегда. Поэтому, если они всегда производят блоки, то вы можете это сделать. как хотите. Разве этот dPos не противоречит этому принципу?

Этот вывод частично верен,Потому что Блокчейн имеет не только публичные сети,возвращатьсяиметьСеть Альянсасуществование。например Сказал, что таможня каждой страны установила Сеть Альянса,Они представляют интересы своих стран.,Поэтому да находится в состоянии взаимосвязанного наблюдения,Скажи это еще раз,Если они объединят усилия, чтобы творить зло,Некому делать зло.,Поэтому нет смысла и условий для совместного зла.

Так каковы же последствия dPos в публичной сети? У dPoS есть главные узлы, альтернативные узлы и большое количество пользователей валюты в публичной цепочке. Предпосылкой для того, чтобы главные узлы DPoS совместно совершали зло, является то, что выгоды от совершения зла превышают затраты (если вы готовы признать поражение). , проигравший может в конечном итоге отказаться от цепочки).

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.