Понятие распределенного консенсуса пронизывает Биткойн довольно глубоко.
В традиционной валюте консенсус работает в определенной мере.
В частности, существует консенсусный процесс, который определяет обменный курс валюты.
Это, также, верно и в биткойне.
Здесь нам также нужен консенсус относительно ценности биткойна.
Но в Биткойне, кроме того, нам нужен консенсус относительно состояния книги или реестра, который утверждает цепочки блоков.
Другими словами, даже подсчет того, как много биткойнов у вас есть, подчиняется консенсусу.
Когда мы говорим, что Алисе принадлежит определенная сумма или количество биткойнов, мы фактически имеем в виду, что одноранговая сеть Bitcoin, согласно записи в блокчейне, считает, что общему количеству всех адресов Алисы принадлежит данное число биткойнов.
Это и есть природа биткойна.
Владение биткойнами – это не что иное, согласие других узлов с тем, что данная сторона владеет этими биткойнами.
И наконец, нам нужен консенсус относительно правил системы, потому что изредка правила системы должны меняться.
Существует два типа изменений в правилах биткойнов, известные как мягкий форк и жесткий форк.
Мы рассмотрим форки позже.
Еще одна тонкая концепция – это процесс начальной загрузки.
В Биткойне существует сложное взаимодействие между тремя различными идеями: безопасность цепочки блоков, здоровье экосистемы майнинга и стоимость валюты.
Мы, очевидно, хотим, чтобы блок-цепочка была безопасной для Биткойна, чтобы биткойн был жизнеспособной валютой.
И чтобы блокчейн был безопасным, злоумышленник не должен нарушать консенсусный процесс.
Это, в свою очередь, означает, что противник не может создать много узлов для майнинга и забрать себе более 50 % создания новых блоков.
Необходимым условием безопасности биткойна является наличие здоровой экосистемы майнинга, состоящей, в основном, из честных, следующих протоколу узлов.
Но когда большое количество майнеров будет вкладывать много вычислительной мощности в решение головоломки с хэшем?
Они будут делать это только в том случае, если обменный курс биткойна довольно высокий, потому что вознаграждения, которые они получают, выражены в биткойнах, тогда как их расходы в долларах.
Таким образом, чем больше ценность валюты повышается, тем больше стимулов у этих майнеров будет.
Теперь, что обеспечивает высокую и стабильную стоимость валюты?
Это может произойти только в том случае, если пользователи в целом доверяют безопасности цепочки блоков.
Если они посчитают, что сеть может быть захвачена в любой момент злоумышленником, тогда биткойн не будет иметь ценности в качестве валюты.
Таким образом, у вас есть взаимозависимость между безопасностью цепочки блоков, здоровой экосистемой майнинга и обменным курсом.
Из-за цикличности этой трехсторонней зависимости существование каждой из этих вещей основано на существовании других.
Когда Биткойн был впервые создан, ни одно из этих трех свойств не существовало.
Не было никаких майнеров, кроме Накамото, который сам запускал программное обеспечение для майнинга.
Биткойн не имел большой ценности в качестве валюты.
И цепочка блоков была, по сути, небезопасной, потому что не было много майнеров, и кто-то мог легко перегрузить этот процесс.
Нет простого объяснения тому, как Биткойн перешел от неимения ни одного из этих свойств, чтобы иметь все три из них.
Внимание средств массовой информации было частью истории – чем больше людей слышат о Биткойне, тем больше они будут заинтересованы в майнинге.
И чем больше они будут заинтересованы в майнинге, тем больше уверенности у людей будет в безопасности цепочки блоков, потому что в настоящее время продолжается большой майнинг и т. д. по кругу.
Кстати, каждый новый Altcoin, который хочет добиться успеха, также должен как-то решать эту проблему самораскрутки.
Наконец, давайте рассмотрим, что произойдет, если консенсус потерпит неудачу, и появится 51-процентный злоумышленник, который будет контролировать 51 % или более мощности майнинга в сети Bitcoin.
Мы рассмотрим несколько возможных атак и посмотрим, какие из них действительно могут быть выполнены таким злоумышленником.
Прежде всего, может ли этот злоумышленник украсть монеты из существующего адреса?
Как вы, возможно, догадались, ответ отрицательный, потому что кража из существующего адреса невозможна, если вы не взломаете криптографию.
Недостаточно подорвать консенсусный процесс.
Предположим, что 51-процентный злоумышленник создает недопустимый блок, который содержит недопустимую транзакцию, которая представляет кражу биткойнов из существующего адреса, который злоумышленник не контролирует, и передает эти биткойны на свой собственный адрес.
Нападавший может притворяться, что это действительная транзакция и продолжать строить блокчейн на основе этого блока.
Злоумышленник может даже добиться успеха в создании самой длинной ветки.
Но другие честные узлы просто не будут принимать этот блок с недопустимой транзакцией и будут майнить на основе последнего действительного блока, который они обнаружили в сети.
Итак, что произойдет в этом случае, так это то, что мы будем называть вилкой в цепочке или форком.
Теперь представьте себе это с точки зрения злоумышленника, пытающегося потратить эти недействительные монеты, и отправить их некому продавцу Бобу в качестве оплаты за некоторые товары или услугу.
Боб предположительно запускает свой биткойн-узел, и это будет честный узел.
Узел Боба отклонит эту ветвь как недействительную, так как она содержит недействительную транзакцию.
Эта ветка недействительна, потому что подписи не проходят проверку.
Поэтому узел Боба просто игнорирует самую длинную ветвь, потому что это недействительная ветка.
И из-за этого, недостаточное подорвать консенсус.
Вы должны подорвать криптографию, чтобы украсть биткойны.
Таким образом, мы делаем вывод, что эта атака невозможна для 51-процентного злоумышленника.
Следует отметить, что все это всего лишь мысленный эксперимент.
Если бы были фактические признаки 51-процентной атаки, то, вероятно, разработчики заметят это и отреагируют на это.
Они будут обновлять программное обеспечение Bitcoin, и мы могли бы ожидать, что правила системы, включая одноранговую сеть, могут измениться в той или иной форме, чтобы затруднить успешную атаку.
Но мы не можем этого предсказать. Таким образом, мы работаем в упрощенной модели, где 51-процентная атака происходит, но нет никаких изменений или настроек правил системы.
Давайте рассмотрим еще одну атаку.
Может ли 51-процентный злоумышленник сдерживать некоторые транзакции?
Скажем, есть некий пользователь, Кэрол, которого нападающий очень не любит.
Злоумышленник знает некоторые адреса Кэрол и хочет сделать так, чтобы монеты, принадлежащие одному из этих адресов, не смогли быть потрачены.
Это возможно? Поскольку он контролирует консенсусный процесс блочной цепи, злоумышленник может просто отказываться создавать любые новые блоки, содержащие транзакции с одного из адресов Кэрол.
Злоумышленник может также отказаться не только от создания, но и от использования блоков, содержащих такие транзакции.
Однако он не может запретить передачу этих транзакций в одноранговую сеть, поскольку сеть не зависит от цепочки блоков или от консенсуса, и мы предполагаем, что злоумышленник не полностью контролирует сеть.
Злоумышленник не может остановить передачу транзакции большинству узлов.
Может ли злоумышленник изменить вознаграждение блока?
То есть, может ли злоумышленник притвориться, что награда за блок, вместо 12.5 биткойнов, составляет 100 биткойнов?
Это изменение правил системы, и поскольку злоумышленник не контролирует копии программного обеспечения Bitcoin, на котором работают все честные узлы, это также невозможно.