Перейти к основному содержанию
Перейти к основному контенту
Пресс-релизы
Blockchain

Введение в проект Bletchley. Часть 1

Технология Blockchain (цепочка блоков транзакций) привлекает все более пристальное внимание бизнес-пользователей и технических специалистов и стремительно приближается к пику своего развития наряду с другими развивающимися технологиями. Тем не менее Blockchain существенно отличается от других тем, что в ее основе лежит не новая технология, а, скорее, комплекс уже апробированных технологий, составляющих основу криптовалюты Bitcoin. Если вы уже знакомы с технологией Blockchain, то можете пропустить введение и сразу перейти ко второй части, которая посвящена Blockchain-архитектуре от Microsoft.

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

Проект Bletchley — это реализация архитектурного подхода Microsoft к созданию экосистемы Enterprise Consortium Blockchain. Сразу оговоримся, что это не новый Blockchain-стек. Этот подход Microsoft к внедрению в организациях распределенных реестров (Blockchain) предлагает реальные решения существующих бизнес-проблем и обеспечивает при этом открытость самой платформы.

bletchley-inline

Определения

Активы с криптографическими токенами

открытый ключ Blockchain Токен — электронный ключ для доступа к чему-либо. Использование криптографических однонаправленных хеш-функций (хешей) позволяет для любого актива (цифрового или физического) создать защищенный ключ-идентификатор — токен.

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

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

хеш-функцияНапример, вам как уникальному индивидууму часто присваиваются идентификаторы, которые обычно состоят из неизменных исходных данных, таких как имя пользователя, дата рождения и, например, номер СНИЛС. Эти свойства (имя пользователя + дата рождения + СНИЛС) используются в качестве входных данных для криптографической однонаправленной хеш-функции. Этот хеш генерирует токен, в котором представлены все входные данные посредством математических алгоритмов. Чтобы обеспечить полную анонимность, можно создать произвольный закрытый ключ, который не привязан к реальным персональным данным человека. Для криптографической однонаправленной хеш-функции характерна предопределенность результата, то есть он будет одинаков для одних и тех же входных данных. Любое незначительное изменение входных данных приводит к кардинальным изменениям результата их обработки. Любой пользователь может проверить ваш токен на достоверность в любое время и на любом компьютере, запросив ваши исходные данные и сравнив полученный хеш с тем, который вы предоставили первоначально. Если какие-либо входные данные не совпадут, то не совпадут и данные хеша, в результате идентификация не будет пройдена. Алгоритмы хеширования разработаны с учетом однонаправленности, что делает невозможным распознавание изначальных входных параметров на основании выходных данных. Вполне обычным предметам, например, сотовым телефонам, компьютерам и товарам различного потребительского назначения, также присваивают идентификационные номера. Это, как правило, серийные номера. Но серийные номера будут уникальными только для конкретного производителя, то есть сотовый телефон и отвертка могут иметь одинаковые серийные номера. Чтобы отслеживать такие неуникальные объекты, необходимо знать производителя. Если указать серийный номер и производителя, то возможно точно идентифицировать объект.

Токены используются в сочетании с ключевой парой (закрытый + открытый ключи) и их цифровыми подписями, которые подтверждают подлинность сделок с токенизированным активом. У каждого токена есть открытый ключ. Поскольку открытые ключи формируются на основе закрытого ключа с защитой, который хранится в секрете, вы можете доказать право собственности, если у вас есть соответствующий закрытый ключ. Итак, цифровой маркер состоит из двух частей: идентификатора (Identity) и доказательства подлинности (Proof).

Информация о владельце токена — это математический алгоритм, который дублируется с помощью закрытого ключа. Например, в цифровом мире вам присваивается идентификатор. Этот идентификатор содержит ваши неизменные данные, такие как имя пользователя, дата рождения и номер СНИЛС (возможно все эти данные будут ненастоящими). Эта информация хранится отдельно от достоверных данных владельца токена. Доказательство подлинности, как правило, состоит из двух значений — имени пользователя и пароля, на основе которых формируется хеш-пароль, который используется в качестве доказательства вашей идентификации. Криптографические однонаправленные хеши могут принимать любые сведения в качестве входных данных, поэтому в наше время внедряются новые способы защиты, такие как: использование ПИН-кодов, карт с ключами и биометрических данных (например, отпечаток пальца собственника). Эти новые элементы добавляются к данным об идентификации и обычно называются многофакторной проверкой подлинности. Поскольку в качестве доказательства идентификации используются данные о владельце токена, это дает возможность передавать данные о владельце другому субъекту.

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

Токенизация и подписывание с помощью пар открытых и закрытых ключей в среде Blockchain помогают установить происхождение актива, начиная с момента его регистрации. Открытый ключ можно использовать в процессе покупки, продажи, торговли, страхования и отслеживания различных объектов по организациям, создавая таким образом полноценный след, ведущий к происхождению токенизированного объекта.

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

Это позволило бы отслеживать активы по отдельности и вместе в различных организациях, что на данный момент просто невозможно при использовании распространенных сейчас серийных номеров и кодов товара (SKU).

Токены могут использоваться для идентификации любых объектов, включая людей, учреждения, товары, соглашения и даже цифровые валюты, суверенные или фиатные валюты с привязкой к существующим фиатным валютам (фиатные деньги — это валюта, которую правительство позиционирует как единственное законное платежное средство. Их внутренняя стоимость или очень маленькая, или вообще отсутствует. В настоящее время большая часть бумажных денег является фиатной. Их стоимость гарантируется авторитетом государства. Фиатная валюта не привязана к золоту. Она вообще ничем не обеспечена). Список токенизируемых сущностей можно продолжить: акции, облигации, страхование, кредиты, алмазы, автомобили, запчасти и т. д.

Blockchain = криптографически подлинный распределенный реестр

  • Криптографически подлинный: используется апробированная технология на основе открытой и закрытой подписи, которая стала основой современной электронной коммерции и электронных подписей. Токенизация с использованием этой технологии позволяет создавать защищенные удостоверения и подтверждать сделки, а общий механизм обеспечения доверия предотвращает мошенничество.
  • Общий механизм: Blockchain нецелесообразно использовать в пределах одной организации или компании. Ценность технологии Blockchain прямо пропорциональна количеству использующих ее участников. Даже в условиях жесточайшей конкурентной борьбы соперникам выгодно участвовать в расширении этой общей распределенной базы данных. Цепочки Blockchain могут представлять собой открытые сообщения или сообщения только для участников, с помощью которых можно проверить подлинность без посредников.
  • Распределенный механизм: существует множество копий базы данных Blockchain, но никто из участников не контролирует саму базу. Фактически чем больше копий, тем выше достоверность и безопасность данных. Если кто-то интересуется безопасностью Blockchain, в ответ обычно указывается количество узлов в сети.
  • Реестр: к базе данных предоставляется доступ для многократного чтения и однократной записи, поэтому в базе навсегда фиксируются все транзакции. Не предусматриваются ни обновление, ни удаление данных, как в традиционной базе данных. Так же как в бухгалтерском учете, здесь нельзя удалить запись, если в ней была допущена ошибка. Для корректировки используется компенсирующая транзакция. То есть спрятать концы в воду не удастся.

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

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

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

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

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

Это общая база данных. Управление ею децентрализовано, данные неизменны. Вы создаете единый «источник правды», позволяющий отследить все процессы с участием различных людей, что дает возможность избежать кропотливой ручной работы, сверяя данные. Такой подход не только избавляет от ненужной траты времени на сверки (но иногда сверки все же нужны), но и упрощает поиск данных в случае, если они запрашиваются регулирующими или правоохранительными органами. Полный аудиторский след формируется в режиме реального времени в процессе обработки транзакции как побочный продукт использования технологии Blockchain. Аудитор получает доступ ко всей необходимой информации в режиме реального времени. Преимущества перед существующими трудоемкими операциями очевидны.

Современная экосистема и эволюция технологии Blockchain

Повторяемость истории и эволюция

Как когда-то двухуровневая технология клиент-сервер превратилась в трехуровневую с появлением промежуточного программного обеспечения (J2EE, COM+), экосистема Blockchain также эволюционирует.

Blockchain 1.0Blockchain системы Bitcoin часто именуется Blockchain 1.0. Это простая база данных или реестр, в котором последовательно записываются транзакции и регистрируется состояние сети в любой текущий момент. Эту технологию также можно сравнить с первыми реляционными базами, одной из главных задач которых было обеспечение целостности с помощью первичных ключей (PK) и внешних ключей (FK). Bitcoin, Hyperledger, Bitcoin Forks и платформы UTXO относятся к версии Blockchain 1.0.

Blockchain 2.0Реляционные системы управления базами данных (РСУБД) в дальнейшем стали поддерживать логику в виде хранения истории процедур, что позволило выполнять более сложные операции с данными. В распределенных реестрах также со временем появился логический уровень – дополнительный код – реализованный в виде SmartContract («умных» контрактов). Этот код находится в базе вместе с данными. Эту версию можно назвать Blockchain 2.0. Платформы Ethereum, Eris и им подобные относятся к Blockchain 2.0.

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

Blockchain 2.0 и 1.0 имеют различия с точки зрения токенизации и транзакций.

SmartContract — это реестр внутри распределенного реестра. Токенизированные активы находятся в самих SmartContract. Базы данных UTXO версии 1.0 обращаются непосредственно к токенизированным активам и «неиспользованным выходам транзакции» (UTXO). Оба типа систем будут существовать параллельно, и оба типа необходимы. В качестве примера можно привести токенизацию людей, организаций, активов, товаров, записи о которых создаются в цепочке блоков UTXO. При этом приложения или контракты, которые работают с этими элементами, создаются в системах на основе технологии SmartContract. Открытый ключ или хеш, созданный в базе данных UTXO, обычно записывается в базу данных SmartContract.

Первые Blockchain-приложения были подключены через серверы с использованием сервиса оракул. Оракулы могут встраивать события из реального мира в базу данных Blockchain, например, чтобы указать текущую цену, согласованное время или процентную ставку. Тем не менее участие оракулов в системах 1.0 и 2.0 нарушает логику предопределенности, внося элементы случайности и ненадежности. Насколько безопасна сама среда, где присутствуют оракулы и встраиваемые в Blockchain значения?

Читать далее: Часть 2. Обзор проекта Bletchley