Более длинная поддельная цепочка блоков с «действительными» транзакциями

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

Ответы (2)

Биткойн-клиенты всегда принимают самую длинную действующую цепочку. С одной стороны, клиенты проверяют полученные блоки на валидность, с другой стороны длина определяется другой метрикой, чем многие предполагают. Длина блокчейна — это сумма сложности всех его блоков, а не количество блоков. Таким образом, чтобы создать фальшивую цепочку, злоумышленник должен создать настоящую цепочку с той же сложностью. Это либо возможно для очень коротких цепочек (атака двойного расхода), либо требует большой доли мощности сети (атака 51%).

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

Именно здесь «легкие» биткойн-клиенты (те, которые не загружают полную цепочку блоков) должны доверять полнофункциональному узлу, чтобы сообщить им «правду» о предыдущих транзакциях. Если полнофункциональный узел является вредоносным, он, безусловно, может обмануть эти легкие клиентские одноранговые узлы, которые подключены к нему.