Я считаю, что консенсус и механизм консенсуса в блокчейне — это то, о чем все говорят больше всего, но, возможно, мало что действительно можно понять, особенно для нетехнических людей. Некоторые люди со скрытыми мотивами намеренно путают разницу между ними для достижения своих собственных целей.
Во-первых, мы можем дать простое определение:
Консенсус: результат, с которым могут согласиться все в системе.
Механизм консенсуса: метод достижения консенсуса в системе.
В текущем блокчейне:
Консенсус: записи транзакций признаются всеми
Механизм консенсуса: метод, позволяющий сделать записи транзакций распознаваемыми всеми.
причина
В блокчейне узлы обмениваются данными посредством передачи данных. Если он соответствует формату данных, согласованному с определенным блокчейном, любой узел может присоединиться к системе блокчейна. Другими словами, каждый узел может использовать любую произвольно написанную программу для атаки на блокчейн с целью получения выгоды.
В настоящее время в Blockchain Nature шахтеровда Бухгалтерский учет,Каждый майнер прослушивает информацию о транзакциях, транслируемую в сети.,И зафиксируйте эту информацию. Так как в системе большое количество майнеров,Следовательно, необходим метод подтверждения того, какая учетная запись майнера действительна. Эффективный учет называется производством блоков.
В децентрализованной системе каждый узел учета (майнер) будет вести учетную книгу. Когда он ведет учет, он проверяет, действительны ли предыдущие записи. В то же время он также надеется, что его учетная запись будет признана действительной другими. - -Потому что, как только признание будет действительным, он сможет получить соответствующую награду.
В настоящее время способ максимизировать интересы каждого майнера — добиться признания его записанного реестра другими. С точки зрения интересов майнеров лучше всего захватить как можно больше прав на учет и позволить им производить блоки. Однако с точки зрения системы это огромная проблема безопасности:
Если узел, успешно генерирующий блок, всегда один или несколько, то та или иная группа узлов может совершать фейки, например удалять предыдущую запись транзакции,так,Получатель транзакции думал, что получает монеты Понятно,нода Через некоторое время,Монета исчезла Понятно,И никаких записей не найти. Подумайте о новостях того времени,У кого-то вдруг на банковском счету оказались сотни миллионов,История Понятного, необъяснимого исчезновения через некоторое время......
Следовательно, если система хочет быть безопасной, узлы, производящие блоки, должны быть как можно более рассредоточены.,Потому что в этом случае,Если узел записывает ложные счета, он будет отменен его узлом учета.
Сущность механизма консенсуса Сразудасвоего рода сдача в арендуУзлы, производящие блоки, должны быть как можно более случайными и децентрализованными.
Проблемы и решения
Увидев это, вы можете подумать, что это так просто. Тогда система непрерывно генерирует случайное число, и каждый может сопоставить узел блока по этому случайному числу. Проблема в том, что у системы нет центра, поэтому ни один узел не может генерировать случайные числа, которые все узнают — кто знает, действительно ли ваши случайные числа случайны, и вероятность ложной случайности больше, чем возможность истинной случайности.
Суть разработки механизма консенсуса заключается в поиске метода, который может рандомизировать узлы, производящие блоки.
Механизмы общего консенсуса и анализ их безопасности
Постоянно рандомизируя узлы, производящие блоки: Итак, что же заслуживает доверия в такой децентрализованной системе? Каждый верит в себя. Момент, когда данные о результатах транзакции и блока доходят до меня, невозможно подделать: данные могут прийти поздно (из-за задержки в сети), но никогда не придут раньше (если только время не повернуть вспять). Мы можем спроектировать механизм так, что результат учета каждого узла должен соответствовать определенному условию, и каждый узел распознает запись первого узла, отвечающего этому условию.
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 (в течение секунды) означает пропускную способность, то есть количество транзакций, которые могут быть выполнены в секунду. Тем, кто только что пришел в индустрию, покажется странным, почему пропускная способность сети и производительность процессора постоянно улучшаются, а у Биткойна и Эфириума так много TPS?
Я говорил о генерации блоков ранее.,система по значению сложности,Биткойн фиксирует время генерации блока на уровне 10-15 минут, а Эфириум фиксирует время генерации блока на уровне около 12 секунд. Размер каждого блока ограничен, поэтому количество транзакций внутри каждого блока ограничено.TPS=Максимальное количество транзакций на блок/Блокировать время。Поэтому всистемав начале проектированияалгоритмначальство Сразузафиксированный ПонятноTPSчисло Понятно。
Поскольку TPS = максимальное количество транзакций на блок/время генерации блока, метод увеличения TPS очень прост:
Расширьте числитель: Расширьте емкость каждого блока, например, так делает BCH.
Уменьшите знаменатель: то есть сократите время генерации блока. От Биткойна до Эфириума знаменатель уменьшается.
Но это ограничено, и размер блока всегда ограничен. Он не будет составлять сотни МБ на блок. Также существует ограничение на сокращение времени генерации блока, поскольку в сети возникают задержки. При его сжатии до определенного уровня данные между узлами не успеют синхронизироваться.
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. Что, если настала очередь узла производить блок, но в итоге он его не производит?
На основе PoS,Некоторые люди просто хотят понять,ой,Децентрализация означает отсутствие производства блоков на одном узле.,Затем я выбираю несколько узлов,Пусть эти узлы по очереди выдают блоки.Сразу Может Понятно Что?。Итак есть DPoS (делегированное Proof-Of-Stake), выбираем несколько нод,Пусть эти узлы служат всем,Они приходят делать блоки,OK,Экономьте время и не беспокойтесь.
Подождите, это кажется немного странным. Метод децентрализации состоит в том, чтобы сделать узлы, производящие блоки, максимально рассредоточенными, чтобы один или несколько узлов не производили блоки всегда. Поэтому, если они всегда производят блоки, то вы можете это сделать. как хотите. Разве этот dPos не противоречит этому принципу?
Этот вывод частично верен,Потому что Блокчейн имеет не только публичные сети,возвращатьсяиметьСеть Альянсасуществование。например Сказал, что таможня каждой страны установила Сеть Альянса,Они представляют интересы своих стран.,Поэтому да находится в состоянии взаимосвязанного наблюдения,Скажи это еще раз,Если они объединят усилия, чтобы творить зло,Некому делать зло.,Поэтому нет смысла и условий для совместного зла.
Так каковы же последствия dPos в публичной сети? У dPoS есть главные узлы, альтернативные узлы и большое количество пользователей валюты в публичной цепочке. Предпосылкой для того, чтобы главные узлы DPoS совместно совершали зло, является то, что выгоды от совершения зла превышают затраты (если вы готовы признать поражение). , проигравший может в конечном итоге отказаться от цепочки).