Введение в технологию Блокчейн - страница 16
Он должен отказаться от транзакции и не позволить Алисе загрузить программное обеспечение.
Если же вместо этого, несмотря на попытку двойной траты, следующие несколько узлов будут строить блокчейн с помощью блока транзакции Алиса → Боб, тогда Боб будет уверен, что его сделка будет находиться в долгосрочной консенсусной цепочке.
В целом, чем больше существует подтверждений транзакции, тем выше вероятность того, что она будет содержаться в долгосрочной консенсусной цепочке.
Напомню, что поведение честных узлов всегда заключается в расширении самой длинной допустимой ветви, которую они видят.
Шанс, что более короткая ветка с двойной тратой догонит длинную ветку, становится все более незначительным, поскольку она растет дольше, чем любая другая ветвь.
Это предположение верно, если только меньшинство узлов является зловредными – для более короткой ветки, чтобы догнать более длинную ветку, несколько зловредных узлов должны будут подряд собирать блокчейн.
Фактически, вероятность двойного расходования экспоненциально уменьшается с количеством подтверждений.
Если транзакция, в которой вы заинтересованы, получила k подтверждений, то вероятность того, что транзакция с двойным расходованием будет в долгосрочной консенсусной цепочке, эта вероятность будет экспоненциально убывать как функция от k.
Наиболее распространенная практика, используемая в экосистеме биткойнов, – это ждать шесть подтверждений.
В числе шесть нет ничего особенного.
Это просто хороший компромисс между количеством времени, которое вы должны ждать, и вашей гарантией того, что транзакция, в которой вы заинтересованы, попадает в цепочку консенсусного блока.
Напомню, что защита от недействительных транзакций полностью криптографическая.
Но эта защита осуществляется на основе консенсуса, а это означает, что если узел попытается включить криптографически недействительную транзакцию, то единственная причина, по которой транзакция не окажется в долгосрочной консенсусной цепочке, заключается в том, что большинство узлов являются честными и не будут включать недопустимую транзакцию в цепочку блоков.
С другой стороны, защита от двойных трат осуществляется исключительно и только на основе консенсуса.
Криптографии нечего сказать об этом, и две транзакции, которые представляют собой попытку двойной траты, действительны с криптографической точки зрения.
Но именно консенсус определяет, какая из них окажется в долгосрочной консенсусной цепочке.
И, наконец, вы никогда на 100 процентов не можете быть уверены, что транзакция, в которой вы заинтересованы, находится в консенсусной ветке.
Но экспоненциальная вероятностная гарантия этого довольно хорошая.
После шести транзакций практически нет шансов, что вы ошибетесь.
Стимулы и доказательства работы
Теперь у нас есть базовое представление консенсусного алгоритма Биткойна и представление, почему мы считаем, что это безопасно.
Но вспомним, что децентрализация Боткойна – это с одной стороны технический механизм, а с другой стороны умная стимуляция.
До сих пор мы в основном рассматривали технический механизм.
Теперь давайте поговорим о стимулах, которые применяются в Биткойне.
Также вспомним, что мы сделали предположение, что мы можем выбрать случайный узел и, возможно, более проблематично, что, по крайней мере, в 50 процентов случаев, при этом мы выберем честный узел.
Это предположение о честности особенно проблематично, если есть финансовые стимулы того, чтобы участники хотели подорвать процесс, и в этом случае мы не можем с точностью предположить, что узел будет честным.