В предыдущей главе вы узнали о взаимосвязи между полностью распределенными пиринговыми системами и наиболее частым вариантом практического применения технологии блокчейна в качестве средства управления правами владения. Вы также узнали, что целостность полностью распределенной пиринговой системы реестров основывается на ее способности формировать истинные утверждения о праве владения и обеспечить возможность передачи права владения только законными владельцами. Но что означает это утверждение в реальной жизни? Что происходит при нарушении целостности? Эти вопросы рассматриваются в данной главе во всех подробностях. В частности, здесь представлен один из самых важных примеров нарушения целостности в распределенных пиринговых системах: проблема двойного расходования.
Подделка денежных знаков – серьезное преступление в любой стране, поскольку это деяние подрывает экономику страны, создавая средства платежа, в действительности не обеспеченные финансовыми ресурсами. Поэтому большинство банковских билетов (купюр) снабжено средствами защиты, которые делают подделку невозможной или, по крайней мере, слишком дорогостоящей. Средства защиты, такие как уникальные серийные номера, водяные знаки, флуоресцентные волокна, вполне подходят для банковских билетов и другой материальной продукции. А если деньги и товары становятся цифровыми и управляются распределенными пиринговыми системами реестров? В этой главе рассматривается особый случай уязвимости распределенных пиринговых систем, используемых для управления правом владения, и этот случай равнозначен подделке денежных купюр. Кроме того, эта уязвимость представляет собой типичный пример нарушения целостности системы.
Рассмотрим пиринговую систему для управления правом владения недвижимостью. В такой системе реестры, отслеживающие информацию о правах владения, обслуживаются отдельными компьютерами, включенными в эту сеть, а не какой-либо централизованной базой данных. Таким образом, партнеры-участники осуществляют поддержку собственной копии реестра. Сразу после передачи права владения некоторым домом от одного человека другому все копии реестра должны быть обновлены для соответствия самым последним изменениям в реальной жизни. Но передача информации между партнерами и процедура обновления отдельных реестров требует времени. До тех пор, пока все участники системы не получат новую информацию и не обновят свою копию реестра, система не является согласованной. Некоторые партнеры уже знают о последней передаче права владения, другие еще не получили эту информацию. Тот факт, что не все реестры содержат свежую информацию, создает возможность некорректного использования этих реестров лицом, которое уже обладает такой информацией.
Представим следующую ситуацию. Лицо А продает дом лицу Б. Передача права владения от А к Б документируется в одном из реестров в пиринговой системе. Этот реестр должен проинформировать других партнеров о передаче права владения, партнеры, в свою очередь, должны передать информацию другим партнерам – и так до тех пор, пока в конце концов все партнеры в сети не будут осведомлены о передаче права владения от А к Б. Теперь предположим, что лицо А быстро получает доступ к другому реестру системы и оформляет другой документ на передачу права владения тем же самым домом: продажу лицом А лицу В. Если этому партнеру еще не известен факт передачи прав владения от А к Б, только что произведенной, то он примет и задокументирует передачу права владения тем же домом от А к В. Таким образом, лицо А продало свой дом дважды, используя тот факт, что для распространения информации о первой продаже требуется некоторое время. Но в действительности лица Б и В не могут одновременно владеть одним и тем же домом. Только один из них должен считаться новым законным владельцем. Подобная ситуация называется проблемой двойного расходования.
Как и термин блокчейн, термин двойное расходование (double spending) является неоднозначным, поскольку используется для обозначения следующих концепций:
• проблема, связанная с копированием цифровой продукции;
• проблема, которая может возникать в распределенных пиринговых системах реестров;
• пример нарушения целостности в полностью распределенных пиринговых системах.
Двойное расходование как проблема копирования цифровой продукции
В контексте копирования цифровой продукции проблема двойного расходования обозначает тот факт, что данные могут копироваться с некоторого компьютера без каких-либо заметных ограничений. Это создает проблемы использования цифровых денег или любых других данных, считающихся принадлежащими только одному владельцу в текущий момент. Копирование создает возможность размножения данных, представляющих элементы цифровых денег, и использования их более одного раза в нескольких платежных операциях. Это цифровая аналогия размножения денежных купюр на копировальной машине. Если не принимать во внимание чисто техническую возможность, то копирование цифровых денег нарушает основной принцип денежной системы: одни и те же деньги (или их элементы) не могут принадлежать одновременно различным людям. Возможность многократно копировать и тратить одни и те же цифровые деньги фактически делает такие деньги бесполезными, таким образом, возникает проблема двойного расходования.
Двойное расходование как проблема распределенной пиринговой системы реестров
При использовании для описания уязвимости распределенной пиринговой системы реестров проблема двойного расходования обозначает тот факт, что передача информации всем компонентам системы требует времени, то есть не все партнеры получают информацию о правах владения в одно и то же время. Поскольку не все партнеры обладают актуальной информацией, появляется возможность их некорректного использования неким лицом, уже обладающим самой свежей информацией. В результате это лицо может многократно передавать права владения, создавая проблему двойного расходования.
Двойное расходование как пример нарушения целостности в полностью распределенных пиринговых системах
Практическое применение распределенных пиринговых систем не ограничивается управлением права владения. Но проблема постепенной передачи информации между партнерами и неодновременное обновление данных, обслуживаемых участниками такой системы, остается неизменной, вне зависимости от конкретной прикладной области. Таким образом, на более абстрактном уровне проблему двойного расходования можно рассматривать как проблему обеспечения логической согласованности данных в распределенных пиринговых системах. Поскольку согласованность данных является одним из аспектов целостности системы, можно сказать, что проблема двойного расходования представляет собой частный пример нарушения целостности системы.
Так как термин двойное расходование может употребляться в нескольких различных смыслах, не существует единого универсального способа устранения этой проблемы. В следующих разделах рассматриваются некоторые возможные решения конкретных проблем двойного расходования.
Решение проблемы двойного расходования как проблемы копирования цифровой продукции
Проблема расходования цифровых денег или любых других цифровых активов более одного раза посредством простого копирования данных в действительности является проблемой, связанной с сущностью права владения. Любые приемлемые меры по установлению связи данных, представляющих цифровую продукцию, с их владельцами решают эту проблему независимо от конкретной реализации. Даже единый централизованный физический журнал (книга регистрации) или электронный реестр (что более реалистично в современных условиях) может обеспечить однократное расходование цифровой продукции, при условии что реестр корректно работает все время.
Решение проблемы двойного расходования как проблемы в распределенных пиринговых системах реестров
В этом контексте учитываются архитектура и прикладная область конкретной системы. Распределенные пиринговые системы реестров часто считаются классическим примером реализации технологии блокчейна. Материал главы 6 подчеркивает взаимосвязь блокчейна и распределенных пиринговых систем реестров. Таким образом, блокчейн как термин, используемый в данной книге, может рассматриваться как решение проблемы двойного расходования в распределенных пиринговых системах реестров.
Решение проблемы двойного расходования как примера нарушения целостности распределенных пиринговых систем
В этом контексте учитывается только архитектура системы, а прикладная область не рассматривается. То есть решения на этом уровне сосредоточены на обеспечении и поддержке целостности в распределенных пиринговых системах независимо от области их применения. Тем не менее конкретные варианты применения распределенных пиринговых систем определяют смысл понятия целостности. Например, аспекты определения целостности для простого приложения, обеспечивающего совместное использование файлов, могут совершенно отличаться от аспектов определения целостности для системы, управляющей правами владения цифровыми денежными средствами. Таким образом, на вопрос о том, является ли набор технологий блокчейна подходящим средством для обеспечения и поддержки целостности системы, невозможно ответить без знания конкретных целей приложения. Возможно, для обеспечения целостности в некоторых особенных прикладных областях применения распределенных пиринговых систем больше подходят другие технологии, структуры данных и алгоритмы.
Примечание
Проблема двойного расходования представляет собой типичный пример нарушения целостности распределенных пиринговых систем, а набор технологий блокчейна является инструментальным средством для решения этой проблемы.
В этой книге термин двойное расходование (double spending) используется для обозначения уязвимости, которая может возникать в полностью распределенных пиринговых системах реестров.
В этой главе рассмотрена проблема двойного расходования и подчеркнута важность технологии блокчейна для обеспечения целостности в полностью распределенных пиринговых системах. В следующей главе основное внимание будет сосредоточено на том, как блокчейн обеспечивает и поддерживает целостность системы.
• Термин двойное расходование (double spending) является неоднозначным; он используется в различных смыслах.
• Термин двойное расходование может обозначать следующее:
– проблему, связанную с копированием цифровой продукции;
– проблему, которая может возникать в распределенных пиринговых системах реестров;
– пример нарушения целостности в полностью распределенных пиринговых системах.
• В этой книге термин двойное расходование используется для обозначения уязвимости, которая может возникать в полностью распределенных пиринговых системах реестров.
• Технология блокчейна является инструментальным средством для решения проблемы двойного расходования.