Чтобы управлять автомобилем, не обязательно знать, как работает двигатель. Точно так же не обязательно понимать, как работает Биткоин что называется «за кадром», чтобы пользоваться им. Однако, если вы хотите участвовать в обсуждениях или сформировать свое мнение о будущем Биткоина, есть несколько вещей, которые вам нужно знать.

Великие дебаты о масштабировании

Если вы еще не в курсе, то сейчас между разработчиками Биткоина, компаниями, майнерами и инвесторами идет что-то вроде гражданской войны. Проблема в том, как «масштабировать» сеть. А в более широком смысле - и то, кто будет в дальнейшем контролировать разработки и финансовые потоки в сети.

История борьбы в сокращенном виде: одна сторона хочет придерживаться изначальной идеи P2P денег и планирует увеличить размер блока; вторая сторона хочет сохранить текущий размер блока и превратить блокчейн Биткоин в расчетную сеть, в основном, для бизнеса - SWIFT нового поколения.

Ваше мнение значит больше, чем вы думаете

Биткоин – многомиллиардная индустрия. Было бы наивно полагать, что влиятельные корпорации не попытаются манипулировать ей каким бы то ни было образом. Итак, какова же роль рядового пользователя биткоина? Серьезная цитата комика Джорджа Карлина (George Carlin) будет вполне уместна. Чего же хотят влиятельные корпорации?

«Они хотят, чтобы им досталось как можно больше, а всем остальным – как можно меньше. Но я скажу вам, чего они не хотят. Им не нужны люди, способные мыслить критически. Они не хотят, чтобы бы ли хорошо информированные, хорошо образованные люди… Они в них не заинтересованы. Существование таких людей не делает их жизнь проще – оно противоречит их интересам», - Джордж Карлин.

Карточный домик сторонников маленького размера блока

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

Аргумент «Биткоин как расчетная сеть» определяет логику сети Биткоина, которая выглядит примерно так:

«Большинство пользователей сети должны управлять полным узлом, следовательно, запуск полного узла должен быть доступен, следовательно, необходимо ограничить пропускную способность и издержки на хранение, следовательно, у нас не остается выбора, кроме как оставить маленький размер блока».

Большинству пользователей не нужно запускать полный узел

Если развенчать основную идею, то карточный домик рухнет. Аргументы в пользу того, что «большинству пользователей необходимо управлять полным узлом», в целом могут быть разделены на две категории: 1) это полезно для сети и 2) это необходимо для безопасности самих пользователей.

Каждому из аргументов стоит посвятить отдельную статью. Пока что давайте просто рассмотрим саму идею с точки зрения обычного пользователя.

Упрощенная проверка платежей (SPV) существовала с самого начала

Прежде всего, SPV – вовсе не новинка. Она была описана в разделе 8 оригинального Whitepaper Сатоси Накомото (Bitcoin: A Peer-to-Peer Electronic Cash System). Биткоиновые кошельки, такие как Electrum, используют SPV уже не первый год без всяких проблем и избавляют пользователей от необходимости управлять полным сетевым узлом.

Как работает SPV?

Если в двух словах, то SPV позволяет вам проверять ваши транзакции, не беспокоясь о транзакциях других пользователей.

SPV отвечает за исполнение двух основных задач: 1) она гарантирует, что ваши транзакции находятся в блоке и 2) она обеспечивает подтверждение (proof of work) того, что дополнительные блоки были добавлены в блокчейн.

По сути это все, что вам нужно знать, чтобы понять, действительна ли ваша транзакция.

Ограничения SPV безопасности и преимущества полного узла

Поскольку SPV кошелек не проверяет никакие другие транзакции в блоке, теоретически блок может быть недействителен. В более чем 99.99% случаев это не является проблемой, так как мы можем подключаться к многим разным узлам и убедиться в том, что все поддерживают одну и ту же цепочку блоков.

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

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

Возможна ли атака на  SPV кошельки?

Это практически невозможно (пока не известно ни одно подобного случая). Теоретически, злоумышленник должен был бы создать большое количество фальшивых узлов и помешать вам найти настоящий узел в настоящей сети Биткоина. Если ваш кошелек сможет найти хотя бы один настоящий узел, атака будет сорвана, так как этот узел сможет подтвердить, что настоящий узел содержит самый длинный proof-of-work сети.

Кроме того, для поддержания атаки, злоумышленнику будет необходимо продолжать майнить блоки на текущем уровне сложности, чтобы продолжить расширение своей цепочки. Это потребует огромных мощностей хэширования, что очень дорого и экономически невозможно.

Еще пара хороших новостей

Важно понимать, что SPV кошелек не просто полагается на другие сетевые узлы для определения самой длинной цепочки блоков. Он смотрит на лучшую цепочку заголовков – цепь верных заголовков блоков, которая имеет наибольший кумулятивный proof-of-work. Хорошая SPV реализация также гарантирует, что этот PoW имеет соответствующий уровень сложности хэширования. Те, кому интересен этот вопрос, могут изучить код Electrum, чтобы понять, как это работает.

Вид кошелька, который вы используете, не влияет на безопасность ваших частных ключей.

«Доказательства мошенничества с SPV»

Предложения доказательств мошенничества – попытка повысить безопасность в тех случаях, когда ненастоящая цепь содержит больше блоков, чем настоящая. Но поскольку такие случаи – большая редкость, улучшения в сфере безопасности будут весьма незначительными.

Томас ван дер Вансем, автор недавнего предложения по доказательству мошенничества, использующего трассирующие деревья, соглашается:

«Вопреки распространенному мнению, доказательства мошенничества с SPV преувеличены и полные узлы не являются намного более безопасными, чем узлы SPV… Я боюсь, что нынешняя стагнация и отказ от оригинальной модели масштабирования Биткоина вызваны не отсутствием доказательств мошенничества, а непониманием системы безопасности Биткоина и его модели масштабирования».

Вывод

SPV кошельки обеспечивают высокий уровень безопасности и большинству пользователей не нужно запускать полные узлы, если вы планируете использовать биткоин только в качестве платежного средства. Вооружившись этой информацией, вы можете быть спокойны за свой кошелек и можете помочь победить некоторые нелепые аргументы, основанные на ложных предположениях.