Блокчейн. Принципы и основы | страница 66
Предположим, в сети имеется узел, обладающий большей вычислительной мощностью, чем все остальные узлы вместе взятые. Данный узел выбирает какой-то из блоков в качестве «точки отсчета» и начинает осуществлять от нее майнинг новых блоков, не демонстрируя их некоторое время всей остальной сети. Одновременно с этим он будет расходовать имеющиеся у него криптосредства в основной цепочке, пока не дождется, что все они будут однозначно подтверждены сетью. То есть в основной цепочке появится еще минимум пять блоков после того, в который были помещены расходные транзакции вредоносного узла. Затем узел раскроет всей сети параллельно созданную им альтернативную цепочку – более длинную, поскольку вычислительная мощность этого узла была совокупно больше, чем у всех остальных, и сеть будет вынуждена признать данное ответвление как истинное. При этом старые блоки, ранее рассчитанные и подтвержденные всей сетью, придется отбросить, то есть придать им статус так называемых «осиротевших блоков» (orphanedblocks), утративших связь с главной цепочкой. Понятно, что вместе с ними будут автоматически отброшены и все расходные транзакции вредоносного узла, как будто их и не существовало вовсе.
Нетрудно догадаться, что альтернативные блоки, предложенные сети самим узлом-мошенником, никаких принадлежащих ему расходных транзакций содержать не будут. Таким образом, несмотря на то, что злоумышленник потратил свои средства ранее в «предыдущей реальности» и получил за них какие-то товары, услуги или даже иную криптовалюту, он через какое-то время возвращает все свои активы назад, и сеть будет вынуждена с этим соглашаться. Казалось бы, для любой блокчейн-системы, создающей блоки по принципу Proof-of-Work, это убийственная проблема. Однако на практике реализовать подобный сценарий исключительно сложно – и организационно, и монетарно, а в ряде случаев это может даже не иметь практического смысла. Попробуем объяснить, почему.
Начнем с того, что организовать подобную атаку легко лишь в теории. Представим себе, какой объем вычислительной мощности нужно задействовать, чтобы перехватить на себя более половины хешрейта какой-либо сети, особенно если это сеть Биткоин, совокупная скорость перебора хешей которой измеряется астрономическими величинами. Для оценки эффективности подобных атак для злоумышленников необходимо оперировать понятием «стоимость атаки». Привлечение серьезных вычислительных мощностей – вообще операция крайне монетарно затратная. А если речь идет о порядках, требуемых для атаки на такую мощную сеть, как Биткоин, то здесь явным образом вырисовываются как минимум несколько практически не решаемых проблем.