Настоящее изобретение относится к способу генерирования транзакции блокчейна и способу проверки действительности блока блокчейна.
Блокчейны становятся все более популярными в различных приложениях. Блокчейн представляет собой распределенную базу данных, в которой информация записывается в открытый регистр транзакций (то есть блокчейн).
Например, блокчейны могут использоваться для предоставления валюты, например, в виде "цифровых денег". Одним из хорошо известных примеров такой валюты является биткойн, который является криптовалютой, основанной на одноранговой сети. Другие цифровые валюты включают Litecoin или Primecoin.
Для перевода денежных сумм (или "монет") такой валюты в рамках блокчейна используются транзакции. Транзакции обычно распределяются по узлам блокчейна. Узлы проверяют транзакцию на правильность. Затем правильные транзакции могут быть собраны в блоки, в которых транзакции становятся действительными только в тех случаях, если они включены в один или более действительных блоков блокчейна.
Оценка действительности транзакции и проверка блока могут выполняться узлом блокчейна. Однако если узел, оценивающий транзакцию или проверяющий блок, является вредоносным, или если множество или даже большинство узлов блокчейна являются вредоносными, целостность блокчейна может быть поставлена под угрозу, и блокчейн может быть уязвимым для различных атак.
Таким образом, задача настоящего изобретения состоит в том, чтобы выполнить способ, который позволил бы повысить безопасность блокчейна.
Эта задача решена способом по п.1 и 2 формулы изобретения.
П.1 формулы изобретения относится к способу генерирования, или создания или проверки действительности транзакции блокчейна, в котором
транзакция создается или генерируется первым узлом блокчейна,
криптографическая подпись, использующая закрытый ключ первого узла, добавляется к транзакции, тем самым создавая подписанную транзакцию,
подписанная транзакция передается множеству других узлов блокчейна, причем другие узлы проверяют криптографическую подпись подписанной транзакции с использованием открытого ключа первого узла, при этом другие узлы сверяются с доверенным объектом, является ли открытый ключ первого узла действительным.
П.2 формулы изобретения относится к способу проверки действительности блока блокчейна, в котором
блок создается или генерируется первым узлом блокчейна, причем блок содержит одну или более транзакций,
криптографическая подпись, использующая закрытый ключ первого узла, добавляется к блоку, тем самым создавая подписанный блок,
подписанный блок передается множеству других узлов блокчейна, причем другие узлы проверяют криптографическую подпись подписанного блока с использованием открытого ключа первого узла, при этом другие узлы сверяются с доверенным объектом, является ли открытый ключ первого узла действительным.
В случае если открытый ключ первого узла является действительным, другие узлы могут принять транзакцию и/или блок, сгенерированный первым узлом. Однако если открытый ключ первого узла не будет действительным, то другие узлы отклонят транзакцию и/или блок, сгенерированный первым узлом. В связи с использованием доверенного объекта можно аннулировать и/или признать недействительным открытый ключ узла блокчейна, что приводит к тому, что узел, для которого открытый ключ был признан недействительным, не может больше производить действительные транзакции и/или блоки. Таким образом, доверенный объект может исключить, например, вредоносные узлы из генерирования правильных транзакций и/или из проверки действительности блоков блокчейна. Следовательно, эти вредоносные узлы больше не могут вмешиваться в блокчейн. Таким образом, риск, создаваемый вредоносными узлами, может быть устранен, что значительно повышает безопасность блокчейна.
Доверенный объект позволяет централизованно управлять децентрализованным блокчейном. Чтобы разрешить управление доверенным объектом, верификация или проверка открытого ключа с доверенным объектом могут быть включены в протокол блокчейна (и таким образом выполняться всеми узлами блокчейна).
Короче говоря, транзакция и/или блок рассматриваются как полезная нагрузка, которая защищена криптографической подписью.
В общем, подписанная транзакция и/или подписанный блок может быть также передан только одному другому узлу блокчейна, причем другой узел проверяет криптографическую подпись подписанной транзакции с использованием открытого ключа первого узла, при этом другой узел сверяется с доверенным объектом, является ли открытый ключ первого узла действительным.
Ниже более подробно описаны дополнительные аспекты изобретения.
Блокчейн может содержать первый узел и вышеупомянутые другие узлы, при этом узлы могут быть частью Интернета или сети передачи данных. Узлы могут иметь информационное соединение с доверенным объектом и могут быть также связаны между собой с использованием информационных соединений. В частности, все узлы могут быть идентичны первому узлу.
Узел может содержать только программное обеспечение, которое позволяет одному пользователю (то есть участнику рынка) управлять учетной записью. Узел может быть сформирован экземпляром, который содержит закрытый ключ (например, закрытый ключ пользователя). Программное обеспечение или узел не обязаны содержать копию блокчейна.
Закрытый ключ и открытый ключ первого узла могут образовывать пару ключей (то есть закрытый и открытый ключ соответствуют друг другу). Закрытый ключ, используемый для добавления криптографической подписи, может, например, быть закрытым ключом пользователя, закрытым ключом узлового устройства или закрытым ключом, связанным с определенной учетной записью.
В частности, узлы могут быть одноранговыми узлами. Узлы могут быть независимыми друг от друга и/или могут управляться независимыми объектами и/или лицами. Каждый узел может представлять собой отдельный компьютером, имеющий специализированный процессор, устройства памяти и/или устройства ввода/вывода для взаимодействия с другими узлами. Первый узел и/или другие узлы могут быть устройством кошелька, причем устройство кошелька может быть персональным компьютером (PC), портативным компьютером или смартфоном. Устройство кошелька может также называться электронным кошельком или криптокошельком.
Блокчейн может хранить каждую транзакцию, начиная с источника блокчейна, где полная или частичная копия истории транзакций может храниться по меньшей мере некоторыми узлами (например, по меньшей мере 50% или 80% узлов) или всеми узлами. Узлы могут работать вместе, чтобы создавать и/или проверять действительность дополнительных блоков блокчейна. Вместе с тем, множество узлов может представлять собой и/или формировать блокчейн.
В случае если транзакции используются для перечисления цифровых денег или цифровой валюты, транзакции могут содержать один или несколько входов или "неизрасходованных" входов, которые указывают количество валюты, которой обладает узел (или пользователь, управляющий узлом) (то есть кредитовый баланс). Другими словами, входы определяют, сколько пользователь может потратить на транзакцию. Эти входы могут быть получены от одного из узлов блокчейна. Кроме того, транзакция может содержать один или более выходов. Каждый выход указывает, сколько валюты должно быть перечислено на конкретный счет (то есть к другому узлу). Например, каждый выход может указать один номер счета, и количество валюты, которая должна быть перечислена на соответствующий номер счета. Транзакция может содержать комиссионные за транзакцию, которая присуждается узлу, проверяющему блок, который содержит транзакцию. Транзакция может содержать или быть одной из специальных транзакций (как упомянуто ниже). Транзакция может также содержать подпись транзакции, например, дополнительную криптографическую подпись, которая используется для подписи самой транзакции. Дополнительная криптографическая подпись может, например, основываться на личном ключе пользователя, который хочет перевести цифровые деньги другому пользователю. Дополнительная криптографическая подпись может основываться на хеш-значении транзакции, которое зашифровано с помощью закрытого ключа, например, пользователя. Например, этот закрытый ключ может представлять электронный кошелек. Дополнительная криптографическая подпись может также называться "внутренней" криптографической подписью, так как криптографическая подпись, которая добавляется после генерирования транзакции, может также основываться по меньшей мере частично на внутренней криптографической подписи. Криптографическая подпись, которая добавляется для генерирования подписанной транзакции (которая используется в данном документе), может, соответственно, называться "внешней" криптографической подписью. В качестве альтернативы, криптографическая подпись, которая добавляется для генерирования подписанной транзакции, может быть также внутренней криптографической подписью.
После того, как транзакция была выработана, и например, содержит вышеупомянутые входы и выходы, (внешняя) криптографическая подпись может быть добавлена к транзакции. В данном документе комбинация из транзакции и криптографической подписи называется подписанной транзакцией. Для того чтобы генерировать криптографическую подпись, по меньшей мере часть информации, содержащейся в транзакции, может быть зашифрована с использованием закрытого ключа. Зашифрованная информация может быть также хеширована перед шифрованием, как объяснено ниже.
Соответственно, чтобы генерировать криптографическую подпись для блока, по меньшей мере часть информации, содержащейся в блоке, может быть зашифрована с использованием закрытого ключа. Зашифрованная информация может также хешироваться перед шифрованием, как объяснено ниже.
Транзакции могут быть сгруппированы в блоки. Например, все транзакции могут быть сгруппированы в блоки по одной минуте или блоки по десять минут. Это означает, что все транзакции, которые были сгенерированы за последние одну или десять минут, сгруппированы в один блок. Во избежание сомнений следует отметить, что блок может содержать только транзакции (т.е. без вышеупомянутой криптографической подписи), только подписанные транзакции (то есть транзакции с вышеупомянутой криптографической подписью) или смесь транзакций и подписанных транзакций. Таким образом, подписанный блок может содержать одну или несколько подписанных транзакций.
Другими словами, транзакция и/или блок могут быть дополнены криптографической подписью. Так как криптографическая подпись проверяется с использованием открытого ключа (который может быть отменен доверенным объектом), доверенный объект реализует повышенный уровень безопасности.
Предпочтительно, инфраструктура открытых ключей (PKI) используется для того, чтобы проверить, является ли действительным открытый ключ первого узла. PKI позволяет создавать, управлять, распределять, использовать, хранить и/или аннулировать ключи шифрования, в частности, открытые ключи. Для этой цели PKI может использовать набор фиксированных политик и процедур. PKI может содержать несколько вычислительных объектов, которые могут располагаться отделено друг от друга и которые выполняют функции PKI. Использование PKI позволяет легко и безопасно реализовать механизмы, необходимые для проверки того, является ли действительным открытый ключ (то есть открытый ключ первого узла). Благодаря стандартам безопасности, реализованным в PKI, безопасность блокчейна может быть дополнительно повышена.
Преимущественно, доверенный объект является частью PKI. В частности, доверенный объект содержит центр сертификации (CA), и/или центр регистрации (RA) и/или центр проверки (VA) PKI.
Еще одним преимуществом является то, что доверенный объект является узлом блокчейна, поэтому, например, по меньшей мере VA может быть включен в один или несколько узлов блокчейна. В связи с этим доверенный объект может выполнять двойную функцию, причем доверенный объект позволяет определять действительность открытых ключей узлов блокчейна и в то же время обеспечивает функциональные возможности блокчейна. Альтернативно, доверенный объект может располагаться отдельно от узлов блокчейна. Таким образом, доверенный объект в меньшей степени подвержен атакам.
Предпочтительно, закрытый и/или открытый ключ первого узла являются частью сертификата. Первый узел может восстановить сертификат от доверенного объекта. Первый узел может использовать сертификат для предоставления криптографической подписи, то есть для подписания транзакции и/или блока. Сертификат может быть сертификатом открытого ключа, который подтверждает право собственности на открытый ключ. Другими словами, сертификат может доказать, что его открытый ключ принадлежит первому узлу блокчейна (то есть открытый ключ является ключом устройства). Сертификат может включать в себя информацию о ключе, информацию о первом узле блокчейна, сам ключ (то есть открытый ключ) и/или цифровую подпись объекта PKI, который проверил содержимое сертификата. Сертификат может быть выдан центром сертификации (CA). Сертификат может также содержать серийный номер, то есть уникальный идентификатор. CA может предоставить список с аннулированными/недействительными сертификатами на основе их серийных номеров для VA, тем самым исключая определенные узлы от создания правильных/действительных транзакций и/или от участия в проверке блоков блокчейна.
Центр регистрации может использоваться для подтверждения идентификатора узлов, запрашивающих цифровой сертификат от CA. Центр проверки может быть объектом, который предоставляет услугу для проверки действительности сертификата (и тем самым действительности открытого ключа). VA может сверить с CA то, остаются ли все еще действительными сертификаты или открытый ключ.
Было бы предпочтительным, если бы блокчейн использовался для криптовалюты, и если бы транзакции использовались для перечисления монет криптовалюты. "Монета" может представлять собой единицу криптовалюты.
Как правило, криптографическая подпись может содержать некоторые данные, относящиеся к транзакции, которая была зашифрована с использованием закрытого ключа. Предпочтительно, криптографическая подпись содержит значение хеш-функции по меньшей мере части информации, содержащейся в транзакции, причем значение хеш-функции зашифровано с помощью закрытого ключа первого узла.
Соответственно, криптографическая подпись может содержать некоторые данные, относящиеся к блоку, который был зашифрован с использованием закрытого ключа. Предпочтительно, криптографическая подпись содержит значение хеш-функции по меньшей мере части информации, содержащейся в блоке, причем значение хеш-функции зашифровано с помощью закрытого ключа первого узла.
Другими словами, информация о подписи (то есть криптографическая подпись) может быть добавлена к транзакции и/или блоку первым узлом, тем самым генерируя подписанную транзакцию и/или подписанный блок. Эта информация о подписи может содержать значение хеш-функции для всей информации, содержащейся в транзакции и/или блоке, причем значение хеш-функции предпочтительно создается с использованием криптографической хеш-функции, такой как SHA-2, MD5 и т.п.
Преимущественно транзакция и/или блок генерируются с использованием концепции доказательства доли владения (Proof-of-Stake, PoS). При генерировании блока с использованием PoS может использоваться специальная транзакция (так называемая транзакция Coinstake), в которой первый узел производит специальную транзакцию, которая перечисляет определенное количество монет себе (то есть первому узлу), тем самым генерируя блок для блокчейна. Специальная транзакция может содержать комиссионные за транзакцию для всех транзакций, включенных в блоке. Комиссионные за транзакцию могут быть перечислены первому узлу. Генерирование блока может предоставить первому узлу привилегию создавать новые монеты, тем самым увеличивая его количество монет. Например, для каждого успешно сгенерированного блока 1%, 5% или 10% монет, которыми владеет первый узел, могут быть присуждены в качестве вознаграждения или бонуса, причем предпочтительно вознаграждение или бонус рассчитывается раз в год. Бонус может быть также включен в специальную транзакцию. Таким образом, в среднем по статистике каждый узел (или пользователь) может получать 1%, 5% или 10% своих монет, соответственно, в год. Первый узел может отправлять себе монеты, созданные во время генерирования блока.
Если один узел не был награжден ожидаемым бонусом (например, 10%), протокол блокчейна может затем позволить узлу создавать новые монеты (то есть количество монет, соответствующих ожидаемому бонусу), без успешной проверки действительности блока. Альтернативно или дополнительно, один узел блокчейна может перечислять монеты узлу, который не получил ожидаемый бонус для того, чтобы предоставить бонус.
Вероятность успешной проверки действительности блока может возрасти с количеством монет, которыми обладает узел, и/или с промежутком времени, в течение которого монеты были доступны узлу. Предпочтительно, шанс или вероятность успешной проверки действительности блока зависят от произведения количества монет на промежуток времени, в течение которого монета находилась в узле. Когда узел успешно проверил действительность блока, промежуток времени может быть сброшен (то есть установлен в ноль), и/или узел может быть исключен из проверяющих блоков в течение заданного промежутка времени. Промежуток времени может зависеть от количества монет, которыми обладает узел.
Предпочтительно, транзакция и/или блок (например, специальная транзакция, содержащаяся в блоке) содержит информацию о количестве монет, которыми обладает первый узел, и информацию о том, как долго этими монетами обладал первый узел. Другими словами, транзакция и/или блок могут содержать POS-информацию. Следовательно, криптографическая подпись может зависеть от POS-информации.
Чтобы определить, какому узлу разрешено проверять действительность блока, может проводиться процедура голосования в рамках блокчейна. Для этой процедуры голосования каждый узел в блокчейне стохастически определяет один узел, которому должна быть разрешена проверка действительности блока на основе, например, вышеупомянутого произведения (то есть произведения количества монет, которыми обладает соответствующий узел, на промежуток времени, в течение которого эти монеты были у соответствующего узла). Вероятность того, что узел будет стохастически выбран, может быть тем выше, тем выше произведение количества монет, на промежуток времени, в течение которого этими монетами обладал (первый) узел. Один узел, набравший наибольшее количество голосов, затем может проверить действительность блока и выполнять генерирование новых монет (то есть выполнить создание монет).
Кроме того, предпочтительно, чтобы транзакция и/или блок генерировались с использованием концепции доказательства выполнения работы (Proof-of-Work, PoW). Концепция PoW основана на решении сложной задачи, которая требует большого количества энергии и вычислительной мощности. Узлу, генерирующему блок, может быть присуждено заранее определенное количество монет в качестве вознаграждения за генерирование блока с использованием PoW. Блок может содержать PoW-информацию, которую создал первый узел. Транзакция, которая содержит PoW-информацию, которую создал первый узел, может быть транзакцией Coinbase.
Может быть предпочтительным разрешить генерирование блоков с использованием параллельно PoS и PoW. Например, первая транзакция в блоке может содержать PoW-информацию, и/или вторая транзакция в том же самом блоке может содержать PoS-информацию. Первая и вторая транзакция могут быть специальными транзакциями. Специальные транзакции могут быть также дополнены криптографической подписью и, таким образом, рассматриваются как "обычные" транзакции. Предпочтительно, действительность открытого ключа первого узла проверяется только для транзакций, сгенерированных на основе PoS. Это позволяет выполнить откат к блокчейну, основываясь только на PoW, в случае отмены всех открытых ключей блокчейна.
Вознаграждение за генерирование блока с использованием PoW может быть небольшим по сравнению с вознаграждением за генерирование блока с использованием PoS, так как генерирование блоков с использованием PoW нежелательна из-за большого количества энергии, потребляемой для блоков POW и возможности атак на основе только PoW (например, так называемая "51%-ая атака").
Изобретение также относится к системе для блокчейна, содержащей
первый узел,
множество других узлов и
доверенный объект,
где
узлы и доверенный объект соединены друг с другом с использованием информационных соединений, и
где первый узел выполнен с возможностью:
генерирования транзакции блокчейна,
добавления криптографической подписи с использованием закрытого ключа первого узла к транзакции, тем самым создавая подписанную транзакцию,
передачи подписанной транзакции в другие узлы, причем другие узлы выполнены с возможностью проверки криптографической подписи подписанной транзакции с использованием открытого ключа первого узла, при этом другие узлы сверяются с доверенным объектом, является ли открытый ключ первого узла действительным,
и/или где первый узел выполнен с возможностью:
генерирования блока блокчейна, причем блок содержит одну или более транзакций,
добавления криптографической подписи с использованием закрытого ключа первого узла к блоку, тем самым создавая подписанный блок,
передачи подписанного блока в другие узлы,
причем другие узлы выполнены с возможностью подтверждения криптографической подписи подписанного блока с использованием открытого ключа первого узла, при этом другие узлы сверяются с доверенным объектом, является ли открытый ключ первого узла действительным.
Изобретение дополнительно относится к узловому устройству блокчейна, в котором
узловое устройство выполнено с возможностью:
генерирования транзакции блокчейна,
добавления криптографической подписи к транзакции с использованием закрытого ключа, тем самым создавая подписанную транзакцию,
передачи подписанной транзакции в другие узлы,
и/или где
узловое устройство выполнено с возможностью:
генерирования блока блокчейна, причем блок содержит одну или более транзакций,
добавления криптографической подписи к блоку с использованием закрытого ключа, тем самым создавая подписанный блок,
передачи подписанного блока в другие узлы.
Узловое устройство может быть выполнено с возможностью проверки криптографической подписи подписанной транзакции и/или подписанного блока с использованием открытого ключа соответствующего узла, причем узловое устройство сверяется с доверенным объектом, является ли открытый ключ соответствующего узла действительным. В частности, узловое устройство может выполнить верификацию криптографической подписи после приема подписанной транзакции и/или подписанного блока из другого узла.
Узловое устройство может сформировать первый узел, как объяснено выше. Узловое устройство может содержать блок управления (например, центральный процессор (CPU)) и память, например, для хранения закрытого ключа и/или блоков блокчейна. Узловое устройство может быть персональным компьютером (PC), карманным компьютером или смартфоном.
Раскрытие, относящееся к способам изобретения, также относится к заявляемой системе и заявляемому узловому устройству. Это, особенно верно ввиду преимуществ и предпочтительных вариантов осуществления, упомянутых выше.
Различные признаки и преимущества настоящего изобретения станут более очевидными из следующего описания и сопроводительных чертежей, на которых:
на фиг.1 показано схематичное представление принципа работы блокчейна при выработке и распределении транзакции; и
на фиг.2 показано схематичное представление принципа работы блокчейна, когда блок является действительным.
На фиг.1 показаны первый узел 10, второй узел 12, третий узел 14 и четвертый узел 16. Узлы 10-16 выполняют функции блокчейна. Узлы 10-16 соединены между собой с использованием информационных соединений 18 (например, Ethernet-соединений). Узлы 10-16 могут быть идентичными экземплярами одного и того же вида узла 10-16, где далее первый узел 10 будет описан более подробно в качестве примера.
Информационные соединения 18 также соединяют узлы 10-16 с доверенным объектом 20, который содержит центр сертификации (CA) 22 и центр проверки (VA) 24. CA 22 и VA 24 являются частью инфраструктуры открытого ключа (PKI), при этом CA 22 выполнен с возможностью выдачи сертификата для открытых и/или закрытых ключей и для отзыва открытых и/или закрытых ключей. VA 24 может быть также включен в каждый из узлов 10-16.
На фиг.1 показана транзакция 25, которая генерируется первым узлом 10 для того, чтобы перечислить количество монет криптовалюты с одного счета на другой.
Информация транзакции 25 хэшируется с использованием криптографической хеш-функции (не показана), в которой результат хеш-функции шифруется с использованием закрытого ключа 28. Данные, зашифрованные с помощью закрытого ключа 28, образуют цифровую подпись 30 (то есть криптографическую подпись). Цифровая подпись 30 также содержит открытый ключ 32 первого узла 10. Открытый ключ 32 и закрытый ключ 28 образуют пару ключей.
Транзакция 25 совместно с цифровой подписью 30 образует подписанную транзакцию 33. Подписанная транзакция 33 передается от первого узла 10 ко всем другим узлам 12, 14, 16 с использованием информационных соединений 18.
Затем другие узлы 12-16 проверяют действительность цифровой подписи 30. Кроме того, другие узлы 12-16 связываются с VA 24, чтобы проверить, является ли открытый ключ 32 первого узла 10 действительным или был ли он аннулирован.
Только в том случае, если транзакция 25 является правильной, цифровая подпись 30 является правильной, если открытый ключ 32 первого узла 10 является действительным, другие узлы 12-16 принимают транзакцию 25.
Несколько из транзакций 25 и/или подписанных транзакций 33 могут быть собраны в течение предварительно определенного интервала времени, равного одной минуте. Транзакции 25 и/или подписанные транзакции 33 могут быть собраны в один блок 26, как показано на фиг.2.
Как показано на фиг.2, первый узел 10 также добавляет две специальные транзакции 27 к блоку 26. Первая специальная транзакция 27 может содержать информацию о доказательстве работы (PoW), достигнутой первым узлом 10, или может быть пустой транзакцией. Вторая специальная транзакция 27 содержит информацию о количестве монет первого узла 10 и промежутке времени, в течение которого первый узел 10 обладал монетами (то есть содержит информация о доказательстве доли (PoS)). Специальные транзакции 27 также перечисляют комиссионные за транзакцию и бонус в размере 10% монет первого узла 10 к первому узлу 10. Специальные транзакции 27 также могут быть основой для подписанной транзакции 33. Кроме того, также возможно, что блок 26 содержит по меньшей мере несколько подписанных транзакций 33 вместо показанных транзакций 25, 27.
Информация блока 26 хэшируется с использованием криптографической хеш-функции (не показана), в которой результат хеш-функции шифруется с использованием закрытого ключа 28. Данные, зашифрованные с помощью закрытого ключа 28, образуют цифровую подпись 30 блока 26. Цифровая подпись 30 также содержит открытый ключ 32 первого узла 10.
Блок 26 совместно с цифровой подписью 30 рассматривается как подписанный блок 34.
Затем подписанный блок 34 передается от первого узла 10 ко всем остальным узлам 12, 14, 16 с использованием информационных соединений 18.
Аналогично процедуре, касающейся транзакции 25, другие узлы 12-16 затем проверяют цифровую подпись 30. Кроме того, другие узлы 12-16 связываются с VA 24, чтобы проверить, является ли открытый ключ 32 первого узла 10 действительным или был аннулирован.
Только в случае, если блок 26 является правильным, цифровая подпись 30 является правильной, и если открытый ключ 32 первого узла 10 является действительным, другие узлы 12-16 принимают блок 26. Тем самым блок 26 вводится в блокчейн.
В случае, если злоумышленник получает контроль над первым узлом 10, доверенный объект 20 может аннулировать сертификат, который содержит открытый ключ 32 первого узла 10. Это заставит VA 24 информировать другие узлы 12-16 о том, что открытый ключ 32 первого узла 10 был аннулирован, что приводит к непринятию транзакций 25, специальных транзакций 27 и/или блока 26 первого узла 10. Следовательно, злоумышленник не может манипулировать блокчейном, что приводит к повышенной безопасности блокчейна.
Перечень ссылочных позиций
10 - первый узел
12 - второй узел
14 - третий узел
16 - четвертый узел
18 - информационное соединение
20 - доверенный объект
22 - центр сертификации (CA)
24 - центр проверки (VA)
25 - транзакция
26 - блок
27 - специальная транзакция
28 - закрытый ключ
30 - цифровая подпись
32 - открытый ключ
33 - подписанная транзакция
34 - подписанный блок.
Изобретение относится к способам, системе и устройству генерирования транзакции блокчейна и проверке действительности блока блокчейна. Технический результат заключается в повышении надежности проверки сгенерированного блока и транзакции блокчейна. В способе генерируют транзакцию первым узлом блокчейна, добавляют к транзакции криптографическую подпись с использованием закрытого ключа первого узла, тем самым создавая подписанную транзакцию, широковещательно передают подписанную транзакцию множеству других узлов блокчейна, причем другие узлы проверяют криптографическую подпись подписанной транзакции с использованием открытого ключа первого узла, при этом указанные другие узлы сверяются с доверенным объектом, является ли открытый ключ первого узла действительным, причем доверенный объект является узлом блокчейна, при этом, если открытый ключ не является действительным, указанные другие узлы отклоняют транзакцию, сгенерированную первым узлом. 4 н. и 8 з.п. ф-лы, 2 ил.
1. Способ генерирования транзакции (25, 27) блокчейна, содержащий этапы, на которых:
генерируют транзакцию (25, 27) первым узлом (10) блокчейна,
добавляют к транзакции (25, 27) криптографическую подпись (30) с использованием закрытого ключа (28) первого узла (10), тем самым создавая подписанную транзакцию (33),
широковещательно передают подписанную транзакцию (33) множеству других узлов (12, 14, 16) блокчейна, причем другие узлы (12, 14, 16) проверяют криптографическую подпись (30) подписанной транзакции (33) с использованием открытого ключа (32) первого узла (10), при этом указанные другие узлы (12, 14, 16) сверяются с доверенным объектом (20), является ли открытый ключ (32) первого узла (10) действительным,
причем доверенный объект (20) является узлом блокчейна,
при этом, если открытый ключ (32) не является действительным, указанные другие узлы (12, 14, 16) отклоняют транзакцию (25, 27), сгенерированную первым узлом (10).
2. Способ проверки действительности блока (26) блокчейна, содержащий этапы, на которых:
генерируют блок (26) первым узлом (10) блокчейна, причем блок (26) содержит одну или более транзакций (25, 27),
добавляют к блоку (26) криптографическую подпись (30) с использованием закрытого ключа (28) первого узла (10), тем самым создавая подписанный блок (34),
передают подписанный блок (34) множеству других узлов (12, 14, 16) блокчейна, причем другие узлы (12, 14, 16) проверяют криптографическую подпись (30) подписанного блока (34) с использованием открытого ключа (32) первого узла (10), при этом указанные другие узлы (12, 14, 16) сверяются с доверенным объектом (20), является ли открытый ключ (32) первого узла (10) действительным,
причем доверенный объект (20) является узлом блокчейна,
при этом, если открытый ключ (32) не является действительным, указанные другие узлы (12, 14, 16) отклоняют блок (26, 34), сгенерированный первым узлом (10).
3. Способ по п. 1 или 2, дополнительно содержащий этап, на котором используют инфраструктуру открытых ключей (PKI) для проверки, является ли действительным открытый ключ (32) первого узла (10).
4. Способ по п. 3, в котором доверенный объект (20) является частью PKI.
5. Способ по п. 3 или 4, в котором доверенный объект (20) содержит центр сертификации (CA) (22), и/или центр регистрации (RA), и/или центр проверки (VA) (24) PKI.
6. Способ по меньшей мере по одному из пп. 1-5, в котором закрытый и/или открытый ключ (28, 32) первого узла (10) являются частью сертификата.
7. Способ по меньшей мере по одному из пп. 1-6, в котором блокчейн используется для криптовалюты, и транзакции (25, 27) используются для перевода монет криптовалюты.
8. Способ по меньшей мере по одному из пп. 1-7, в котором криптографическая подпись (30) содержит значение хеш-функции информации, содержащейся в транзакции (25, 27) и/или блоке (26), причем значение хеш-функции зашифровано закрытым ключом (28) первого узла (10).
9. Способ по меньшей мере по одному из пп. 1-8, в котором транзакцию (25, 27) и/или блок (26) вырабатывают с использованием концепции доказательства доли владения (Proof-of-Stake, PoS) .
10. Способ по меньшей мере по одному из пп. 1-9, в котором транзакцию (25, 27) и/или блок (26) вырабатывают с использованием концепции доказательства выполнения работы (Proof-of-Work, PoW) .
11. Система для блокчейна, содержащая
первый узел (10),
множество других узлов (12, 14, 16) и
доверенный объект (20), при этом
узлы (10, 12, 14, 16) и доверенный объект (20) соединены друг с другом с использованием информационных соединений (18),
причем первый узел (10) выполнен с возможностью:
генерирования транзакции (25, 27) блокчейна,
добавления к транзакции (25, 27) криптографической подписи (30) с использованием закрытого ключа (28) первого узла (10), тем самым создавая подписанную транзакцию (33),
передачи подписанной транзакции (33) другим узлам (12, 14, 16), причем другие узлы (12, 14, 16) выполнены с возможностью проверки криптографической подписи (30) подписанной транзакции (33) с использованием открытого ключа (32) первого узла (10), при этом указанные другие узлы (12, 14, 16) сверяются с доверенным объектом (20), является ли открытый ключ (32) первого узла (10) действительным,
причем доверенный объект (20) является узлом блокчейна,
при этом, если открытый ключ (32) не является действительным, указанные другие узлы (12, 14, 16) отклоняют транзакцию (25, 27), сгенерированную первым узлом (10),
и/или первый узел (10) выполнен с возможностью:
генерирования блока (26) блокчейна, причем блок (26) содержит одну или более транзакций (25, 27),
добавления к блоку (26) криптографической подписи (30), использующей закрытый ключ (28) первого узла (10), тем самым создавая подписанный блок (34) передачи подписанного блока (34) другим узлам (12, 14, 16), причем другие узлы (12, 14, 16) выполнены с возможностью проверки криптографической подписи (30) подписанного блока (34) с использованием открытого ключа (32) первого узла (10), при этом указанные другие узлы (12, 14, 16) сверяются с доверенным объектом (20), является ли открытый ключ (32) первого узла (10) действительным,
причем доверенный объект (20) является узлом блокчейна,
при этом, если открытый ключ (32) не является действительным, указанные другие узлы (12, 14, 16) отклоняют блок (26, 34), сгенерированный первым узлом (10).
12. Устройство (10, 12, 14, 16) узла блокчейна, характеризующееся тем, что устройство (10, 12, 14, 16) узла выполнено с возможностью:
генерирования транзакции (25, 27) блокчейна,
добавления к транзакции (25, 27) криптографической подписи (30) с использованием закрытого ключа (28), тем самым создавая подписанную транзакцию (33),
передачи подписанной транзакции (33) другим узлам (12, 14, 16), причем другие узлы (12, 14, 16) выполнены с возможностью проверки криптографической подписи (30) подписанной транзакции (33) с использованием открытого ключа (32) первого узла (10), при этом указанные другие узлы (12, 14, 16) сверяются с доверенным объектом (20), является ли открытый ключ (32) первого узла (10) действительным,
причем доверенный объект (20) является узлом блокчейна,
при этом, если открытый ключ (32) не является действительным, указанные другие узлы (12, 14, 16) отклоняют транзакцию (25, 27), сгенерированную первым узлом (10),
и/или
выполнено с возможностью:
генерирования блока (26) блокчейна, причем блок (26) содержит одну или более транзакций (25, 27),
добавления к блоку (26) криптографической подписи (30) с использованием закрытого ключа (28), тем самым создавая подписанный блок (34),
передачи подписанного блока (34) другим узлам (12, 14, 16), причем другие узлы (12, 14, 16) выполнены с возможностью проверки криптографической подписи (30) подписанного блока (34) с использованием открытого ключа (32) первого узла (10), при этом указанные другие узлы (12, 14, 16) сверяются с доверенным объектом (20), является ли открытый ключ (32) первого узла (10) действительным,
причем доверенный объект (20) является узлом блокчейна,
при этом, если открытый ключ (32) не является действительным, указанные другие узлы (12, 14, 16) отклоняют блок (26, 34), сгенерированный первым узлом (10).
Авторы
Даты
2023-03-14—Публикация
2018-06-21—Подача