RU2722285C1 - Authentication method of articles - Google Patents

Authentication method of articles Download PDF

Info

Publication number
RU2722285C1
RU2722285C1 RU2019144325A RU2019144325A RU2722285C1 RU 2722285 C1 RU2722285 C1 RU 2722285C1 RU 2019144325 A RU2019144325 A RU 2019144325A RU 2019144325 A RU2019144325 A RU 2019144325A RU 2722285 C1 RU2722285 C1 RU 2722285C1
Authority
RU
Russia
Prior art keywords
identifier
buyer
product
password
value
Prior art date
Application number
RU2019144325A
Other languages
Russian (ru)
Inventor
Евгений Сергеевич Шишкин
Original Assignee
Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" filed Critical Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы"
Priority to RU2019144325A priority Critical patent/RU2722285C1/en
Application granted granted Critical
Publication of RU2722285C1 publication Critical patent/RU2722285C1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K5/00Methods or arrangements for verifying the correctness of markings on a record carrier; Column detection devices
    • G06K5/02Methods or arrangements for verifying the correctness of markings on a record carrier; Column detection devices the verifying forming a part of the marking action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce

Abstract

FIELD: authentication of articles.
SUBSTANCE: method is realized using a system comprising a database (DB) such as a public blockchain connected to the Internet and configured to assign identifiers to DB users, perform calls to user-programmed data management functions (smart contract), which are capable of performing the following actions: in case the article with the specified identifier is absent in the DB, add product identifier and indicate compliance of this product identifier with manufacturer identifier, to change conformity between product identifier and owner identifier in presence of electronic digital signature (EDS) from current owner of product and EDS of new owner; to change conformity between product identifier and owner identifier when specifying chain of transactions between owners with indication of correct EDS of all intermediate owners, to add smart contracts of users; wherein during the next transfer of the product, the current owner sends the transaction signed by his / her signature directly to the next owner, avoiding the need to perform transaction in the blockchain, providing anonymity to the buyer.
EFFECT: technical result is wider range of means.
1 cl

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Предполагаемое изобретение относится к методам отслеживания подлинности изделия, контроля и уменьшения вероятности появления контрафактных копий.The alleged invention relates to methods for tracking the authenticity of the product, control and reduce the likelihood of counterfeit copies.

Уровень техникиState of the art

В настоящее время известны различные способы проверки подлинности изделий.Various methods for authenticating products are currently known.

Среди перспективных можно отметить способы с использованием записи информации об изделии и текущем владельце в базу данных (БД) типа публичный блокчейн. Далее в тексте под БД будет подразумеваться именно БД типа публичный блокчейнAmong the promising ones, one can note methods using the recording of information about the product and the current owner in a public blockchain-type database (DB). Further in the text, a database will mean exactly a public blockchain type database

Помимо идентификатора самого изделия, в БД записывается идентификатор каждого последующего владельца изделия, образуя непрерывную цепочку. При очередной передаче, участник, желающий принять изделие во владение, может проверить, что изделие, находящееся перед ним, действительно подлинное, путем сравнения информации о текущем владельце по уникальному идентификатору изделия в БД, а также удостовериться, что изделие с данным идентификатором в самом деле было произведено.In addition to the identifier of the product itself, the identifier of each subsequent owner of the product is recorded in the database, forming a continuous chain. At the next transfer, the participant who wants to take possession of the product can verify that the product in front of him is really genuine by comparing the information about the current owner with a unique product identifier in the database, and also make sure that the product with this identifier is actually was produced.

Идентификатор каждого владельца, записанного за изделием, связан с открытым ключом ключевой пары, с помощью которой формируется ЭЦП транзакции в БД, таким образом наличие ключевой пары у человека подтверждает аутентичность всех операций, проведенных в БД.The identifier of each owner recorded behind the product is associated with the public key of the key pair, with the help of which the digital signature of the transaction is generated in the database, so the presence of the key pair in a person confirms the authenticity of all operations performed in the database.

Известен способ проверки подлинности изделий (патент РФ №2679545, приоритет от 24.04.2018) с использованием технологии блокчейн и технологии смарт-контрактов на ее основе. Применение известного способа обеспечивает возможность сохранения всей истории владения, при этом существенно сокращая количество проводимых транзакций в БД, за счет этого достигается более высокая скорость обработки и снижение стоимости эксплуатации системы.A known method of authenticating products (RF patent No. 2679545, priority of 04.24.2018) using blockchain technology and smart contract technology based on it. The application of the known method provides the ability to save the entire history of ownership, while significantly reducing the number of transactions in the database, due to this, a higher processing speed and lower cost of operating the system are achieved.

При использовании технологии блокчейн, тем не менее, у ряда пользователей, в силу различных обстоятельств и желаний, возникает потребность сохранения анонимности при совершении сделок.When using blockchain technology, however, a number of users, due to various circumstances and desires, have a need to maintain anonymity when making transactions.

Однако, известный способ не позволяет обеспечить анонимность при совершении сделок, что является его недостатком.However, the known method does not allow for anonymity in transactions, which is its drawback.

Известен также способ с использованием БД типа блокчейн (Погружение в технологию блокчейн: борьба с контрафактными товарами - статья по адресу https://habrahabr.ru/company/microsoft/blog/312054/), согласно которомуThere is also a method using a blockchain type database (Immersion in blockchain technology: the fight against counterfeit goods - article at https://habrahabr.ru/company/microsoft/blog/312054/), according to which

Figure 00000001
при производстве очередного изделия, назначают уникальный идентификатор;
Figure 00000001
in the manufacture of the next product, a unique identifier is assigned;

Figure 00000002
наносят назначенный идентификатор на изделие;
Figure 00000002
put the assigned identifier on the product;

Figure 00000003
ставят в соответствие идентификатору произведенного изделия публично известный идентификатор производителя изделий, и записывают данное соответствие в БД блокчейн;
Figure 00000003
put in accordance with the identifier of the manufactured product the publicly known identifier of the manufacturer of the products, and record this correspondence in the blockchain database;

Figure 00000004
(А) при передаче изделия следующему владельцу, передающая сторона посылает в блокчейн транзакцию о передаче прав на изделие следующему владельцу, указывая при этом идентификатор нового владельца;
Figure 00000004
(A) when transferring the product to the next owner, the transferring party sends to the blockchain a transaction on the transfer of rights to the product to the next owner, indicating the identifier of the new owner;

Figure 00000005
посылают транзакцию в блокчейн от принимающей стороны о согласии на принятие изделия во владение; ставят в соответствие идентификатору изделия идентификатор нового владельца и записывают данное соответствие в базу данных блокчейн;
Figure 00000005
send the transaction to the blockchain from the receiving party about the consent to take possession of the product; match the identifier of the product with the identifier of the new owner and record this correspondence in the blockchain database;

Figure 00000006
при последующих передачах переходят к пункту А.
Figure 00000006
in subsequent gears go to point A.

Данный способ принят за прототип.This method is adopted as a prototype.

Тем не менее, известный способ также имеет недостаток - отсутствие возможности для покупателя остаться анонимным.However, the known method also has a drawback - the inability for the buyer to remain anonymous.

Раскрытие сущности изобретенияDisclosure of the invention

Техническим результатом является обеспечение возможности для владельцев изделий, при их желании, остаться анонимными.The technical result is to provide opportunities for product owners, if they wish, to remain anonymous.

Для этого предлагается способ проверки подлинности изделий, реализуемый с использованием системы, содержащейTo this end, a method of authentication of products is proposed, implemented using a system containing

Figure 00000007
базу данных (БД) типа публичный блокчейн, связанную с сетью Интернет и выполненную с возможностью
Figure 00000007
a public blockchain-type database (DB) connected to the Internet and configured to

Figure 00000008
назначать идентификаторы пользователям БД;
Figure 00000008
assign identifiers to database users;

Figure 00000009
осуществлять вызовы запрограммированных пользователями функций по управлению данными (смарт-контракт), которые способны выполнять следующие действия:
Figure 00000009
make calls of data management functions programmed by users (smart contract), which are able to perform the following actions:

Figure 00000010
производить вычисление выбранной владельцем смарт-контракта функции А(х), где х - натуральное число;
Figure 00000010
calculate the function A (x) chosen by the owner of the smart contract, where x is a natural number;

Figure 00000011
в случае, если изделие с заданным идентификатором отсутствует в БД, добавлять идентификатор изделия и указывать соответствие этого идентификатора изделия идентификатору производителя;
Figure 00000011
if the product with the given identifier is not in the database, add the product identifier and indicate the correspondence of this product identifier to the manufacturer’s identifier;

Figure 00000012
получать идентификатор владельца по заданному идентификатору изделия;
Figure 00000012
Get the owner’s identifier by the specified product identifier;

Figure 00000013
получать значение слепка пароля по заданному идентификатору изделия
Figure 00000013
get the value of the password nugget for the given product identifier

Figure 00000014
посылать запрос на изменение соответствия идентификатора изделия идентификатору текущего владельца на идентификатор нового владельца при наличии электронной цифровой подписи (ЭЦП) текущего владельца;
Figure 00000014
send a request to change the correspondence of the product identifier to the identifier of the current owner to the identifier of the new owner if there is an electronic digital signature (EDS) of the current owner;

Figure 00000015
подтверждать изменение соответствия между идентификатором изделия и идентификатором владельца на соответствие идентификатору нового владельца при наличии ЭЦП нового владельца;
Figure 00000015
Confirm the change in correspondence between the product identifier and the owner identifier to match the identifier of the new owner in the presence of a digital signature of the new owner;

Figure 00000016
отменять изменение соответствия идентификатора изделия идентификатору текущего владельца на идентификатор нового владельца при наличии ЭЦП текущего владельца;
Figure 00000016
cancel the change in the correspondence of the product identifier to the identifier of the current owner to the identifier of the new owner if there is an electronic digital signature of the current owner;

Figure 00000017
изменять соответствие между идентификатором изделия и значением маски пароля с одновременным обнулением значения идентификатора текущего владельца изделия при наличии ЭЦП текущего владельца;
Figure 00000017
change the correspondence between the product identifier and the password mask value while resetting the value of the identifier of the current owner of the product if there is an electronic digital signature of the current owner;

Figure 00000018
изменять соответствие между идентификатором изделия и производным значением пароля на новое производное значение пароля при предъявлении искомого действующего пароля
Figure 00000018
change the correspondence between the product identifier and the derived password value to the new derived password value upon presentation of the required valid password

Figure 00000019
изменять соответствие между идентификатором изделия и идентификатором владельца при наличии пароля r, значение от которого А(r) соответствует сохраненному ранее производному значению пароля
Figure 00000019
change the correspondence between the product identifier and the owner identifier if there is a password r, the value from which A (r) corresponds to the previously derived derived password value

Figure 00000020
добавлять смарт-контракты пользователей;
Figure 00000020
Add user smart contracts

Figure 00000021
средство формирования доказательства вычисления без разглашения (далее СФДВ), выполненное с возможностью:
Figure 00000021
means for generating proof of calculation without disclosure (hereinafter SFDV), made with the possibility of:

Figure 00000022
формировать ключ построения доказательства pk и ключ проверки доказательства vk с использованием функции А(х) в качестве параметра;
Figure 00000022
generate a proof construction key pk and proof verification key vk using the function A (x) as a parameter;

Figure 00000023
формировать блок данных доказательства Prf и численное значение b с использованием функции А(х) в качестве параметра, ключа формирования доказательств pk и численного значения d, причем А(d)=b
Figure 00000023
generate a proof data block Prf and a numerical value b using the function A (x) as a parameter, a key for generating evidence pk and a numerical value d, with A (d) = b

Figure 00000024
верифицировать блок данных доказательства Prf с использованием функции А(х) в качестве параметра, ключа проверки доказательств vk и значения b,
Figure 00000024
verify the evidence data block Prf using function A (x) as a parameter, evidence verification key vk and value b,

Figure 00000025
получать и передавать данные; способ заключается в том, что
Figure 00000025
Receive and transmit data the way is that

Figure 00000026
выбирают функцию А(х), такую, что вычислительно трудно определить значение b по заданному значению с, причем А(b)=с;
Figure 00000026
choose a function A (x) such that it is computationally difficult to determine the value of b from a given value of c, with A (b) = c;

Figure 00000027
формируют ЭЦП производителя;
Figure 00000027
form the EDS of the manufacturer;

Figure 00000028
назначают в БД уникальный идентификатор производителя;
Figure 00000028
assign a unique identifier of the manufacturer to the database;

Figure 00000029
формируют в СФД В ключ проверки доказательства vk и ключ построения доказательств pk с использованием функции А(х);
Figure 00000029
form the proof verification key vk and the proof construction key pk using the function A (x) in SFD B;

Figure 00000030
формируют смарт-контракт в БД, содержащий функцию А(х), идентификатор производителя, значения ключа построения доказательств pk и ключа проверки доказательств vk;
Figure 00000030
form a smart contract in the database containing the function A (x), the identifier of the manufacturer, the values of the evidence construction key pk and the evidence verification key vk;

Figure 00000031
если произведено новое изделие, то
Figure 00000031
if a new product is made, then

Figure 00000032
назначают уникальный идентификатор изделию;
Figure 00000032
assign a unique identifier to the product;

Figure 00000033
наносят назначенный идентификатор на изделие;
Figure 00000033
put the assigned identifier on the product;

Figure 00000034
записывают в БД через смарт-контракт данные о соответствии идентификатора изделия идентификатору производителя; при необходимости передать изделие от производителя покупателю,
Figure 00000034
write to the database through a smart contract data on the correspondence of the product identifier to the manufacturer’s identifier; if necessary, transfer the product from the manufacturer to the buyer,

Figure 00000035
формируют ЭЦП покупателя;
Figure 00000035
form the digital signature of the buyer;

Figure 00000036
в случае, если покупатель желает закрепить свой статус владения в БД выполняют следующие действия:
Figure 00000036
if the buyer wishes to consolidate his ownership status in the database, perform the following actions:

Figure 00000037
если у покупателя отсутствует идентификатор в БД, назначают в БД уникальный идентификатор покупателю;
Figure 00000037
if the buyer does not have an identifier in the database, a unique identifier is assigned to the buyer in the database;

Figure 00000038
на стороне производителя, через смарт-контракт, посылают запрос на изменение соответствия идентификатора передаваемого изделия идентификатору покупателя, подписывая запрос ЭЦП производителя;
Figure 00000038
on the manufacturer’s side, through a smart contract, they send a request to change the correspondence of the identifier of the transferred product to the buyer’s identifier, signing a request for a digital signature of the manufacturer;

Figure 00000039
на стороне покупателя, через смарт-контракт, подтверждают изменение соответствия между идентификатором передаваемого изделия и идентификатором покупателя, подписывая запрос ЭЦП покупателя;
Figure 00000039
on the buyer's side, through a smart contract, they confirm a change in the correspondence between the identifier of the transferred product and the identifier of the buyer by signing a request for an electronic digital signature of the buyer;

Figure 00000040
производят передачу изделия от производителя покупателю;
Figure 00000040
transferring the product from the manufacturer to the buyer;

Figure 00000041
в случае, если покупатель желает остаться анонимным, выполняют следующие действия:
Figure 00000041
in case the buyer wishes to remain anonymous, perform the following actions:

Figure 00000042
на стороне покупателя, производят проверку соответствия идентификатора изделия идентификатору производителя через БД
Figure 00000042
on the buyer's side, they check the conformity of the product identifier to the manufacturer identifier through the database

Figure 00000043
на стороне покупателя, генерируют пароль r и вычисляют производное значение пароля h=А(r);
Figure 00000043
on the buyer's side, the password r is generated and the derivative password value h = A (r) is calculated;

Figure 00000044
на стороне покупателя, сохраняют пароль r;
Figure 00000044
on the buyer's side, save the password r;

Figure 00000045
передают значение h от покупателя производителю;
Figure 00000045
transmit the value of h from the buyer to the manufacturer;

Figure 00000046
на стороне покупателя, выполняют условие завершения сделки;
Figure 00000046
on the buyer's side, fulfill the condition for completing the transaction;

Figure 00000047
на стороне производителя, через смарт-контракт, изменяют соответствие идентификатора изделия производному значению пароля h, подписывая транзакцию ЭЦП производителя;
Figure 00000047
on the manufacturer’s side, through a smart contract, they change the correspondence of the product identifier to the derivative value of the password h, signing the manufacturer’s EDS transaction;

Figure 00000048
на стороне покупателя, через смарт-контракт, получают текущее значение производного значения пароля hp для передаваемого изделия
Figure 00000048
on the buyer's side, through a smart contract, receive the current value of the derivative hp password value for the transferred product

Figure 00000049
если значение hp не равно h, то прерывают сделку;
Figure 00000049
if hp is not equal to h, then abort the deal;

Figure 00000050
производят передачу изделия от производителя покупателю; при необходимости передать изделие от продавца покупателю,
Figure 00000050
transferring the product from the manufacturer to the buyer; if necessary, transfer the product from the seller to the buyer,

Figure 00000051
формируют ЭЦП покупателя;
Figure 00000051
form the digital signature of the buyer;

Figure 00000052
формируют ЭЦП продавца;
Figure 00000052
form the EDS of the seller;

Figure 00000053
в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца зафиксировано в БД, и покупатель желает также закрепить свой статус владения в БД, то выполняют следующие действия:
Figure 00000053
if the correspondence of the identifier of the transferred product to the identifier of the seller is fixed in the database, and the buyer also wants to fix his ownership status in the database, then perform the following steps:

Figure 00000054
если у покупателя отсутствует идентификатор в БД, назначают уникальный идентификатор покупателю в БД;
Figure 00000054
if the buyer does not have an identifier in the database, a unique identifier is assigned to the buyer in the database;

Figure 00000055
на стороне продавца, через смарт-контракт, формируют запрос на изменение соответствия идентификатора передаваемого изделия идентификатору покупателя, подписывая запрос ЭЦП продавца;
Figure 00000055
on the seller’s side, through a smart contract, they formulate a request for changing the correspondence of the identifier of the transferred product to the buyer’s identifier by signing the seller’s digital signature request;

Figure 00000056
на стороне покупателя, через смарт-контракт, подтверждают изменение соответствия идентификатора изделия идентификатору покупателя, подписывая транзакцию ЭЦП покупателя;
Figure 00000056
on the buyer's side, through a smart contract, confirm the change in the correspondence of the product identifier to the buyer's identifier by signing the buyer’s EDS transaction;

Figure 00000057
производят передачу изделия от продавца покупателю;
Figure 00000057
transferring the product from the seller to the buyer;

Figure 00000058
в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца зафиксировано в БД, а покупатель желает остаться анонимным, то выполняют следующие действия:
Figure 00000058
if the correspondence of the identifier of the transferred product to the identifier of the seller is fixed in the database, and the buyer wishes to remain anonymous, then perform the following steps:

Figure 00000059
проверяют подлинность изделия путем сравнения идентификатора текущего владельца передаваемого изделия, записанного в БД и идентификатора продавца;
Figure 00000059
verify the authenticity of the product by comparing the identifier of the current owner of the transferred product recorded in the database and the identifier of the seller;

Figure 00000060
если идентификаторы не совпали, то прерывают сделку;
Figure 00000060
if the identifiers do not match, then terminate the transaction;

Figure 00000061
на стороне покупателя, генерируют пароль r1 и вычисляют производное значение пароля h1=A(r1);
Figure 00000061
on the buyer's side, the password r1 is generated and the derivative password value h1 = A (r1) is calculated;

Figure 00000062
сохраняют пароль r1 на стороне покупателя;
Figure 00000062
save the password r1 on the buyer's side;

Figure 00000063
передают значение h1 от покупателя продавцу;
Figure 00000063
transmit the value of h1 from the buyer to the seller;

Figure 00000064
на стороне покупателя, выполняют условие завершения сделки;
Figure 00000064
on the buyer's side, fulfill the condition for completing the transaction;

Figure 00000065
на стороне продавца, в смарт-контракте, меняют соответствие между идентификатором изделия и производным значением пароля на новое значение h1, подписывая транзакцию с помощью ЭЦП продавца;
Figure 00000065
on the seller’s side, in the smart contract, they change the correspondence between the product identifier and the derived password value to the new value h1, signing the transaction using the seller’s digital signature;

Figure 00000066
на стороне покупателя, через смарт-контракт, получают текущее производное значение пароля h2, соответствующее идентификатору передаваемого изделия;
Figure 00000066
on the buyer's side, through a smart contract, they receive the current derived password value h2 corresponding to the identifier of the transferred product;

Figure 00000067
если значение h2 не равно h1, то прерывают сделку;
Figure 00000067
if the value of h2 is not equal to h1, then the deal is terminated;

Figure 00000068
производят передачу изделия от продавца покупателю;
Figure 00000068
transferring the product from the seller to the buyer;

Figure 00000069
в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца не зафиксировано в БД, и покупатель желает остаться анонимным, то выполняют следующие действия:
Figure 00000069
if the correspondence of the identifier of the transferred product to the identifier of the seller is not fixed in the database, and the buyer wishes to remain anonymous, then perform the following steps:

Figure 00000070
на стороне продавца, запрашивают из смарт-контракта ключ построением доказательств pk;
Figure 00000070
on the seller’s side, they request a key from the smart contract by building evidence pk;

Figure 00000071
на стороне продавца, используя СФДВ, формируют блок доказательства prf2 с использованием функции А(х), пароля r, сохраненного на стороне продавца, и ключа построения доказательств pk;
Figure 00000071
on the seller’s side, using SFDV, form the proof block prf2 using the function A (x), the password r stored on the seller’s side, and the evidence construction key pk;

Figure 00000072
передают блок доказательства prf2 от продавца покупателю;
Figure 00000072
transmitting the proof block prf2 from the seller to the buyer;

Figure 00000073
на стороне покупателя, запрашивают из БД ключ проверки доказательств vk;
Figure 00000073
on the buyer's side, request a vk evidence verification key from the database;

Figure 00000074
на стороне покупателя, через смарт-контракт, получают производное значение пароля h, соответствующее передаваемому изделию;
Figure 00000074
on the buyer's side, through a smart contract, receive the derivative value of the password h corresponding to the transmitted product;

Figure 00000075
на стороне покупателя, используя СФДВ, производят проверку блока доказательства prf2 с использованием функции А(х), производного значения пароля h и ключа vk;
Figure 00000075
on the buyer's side, using SFDV, they check the proof block prf2 using the function A (x), the derived value of the password h and the key vk;

Figure 00000076
если проверка неуспешна, то прерывают сделку;
Figure 00000076
if the check is unsuccessful, then they terminate the transaction;

Figure 00000077
на стороне покупателя, формируют пароль r2;
Figure 00000077
on the buyer's side, form a password r2;

Figure 00000078
на стороне покупателя, вычисляют производное значение пароля h2=А(r2);
Figure 00000078
on the buyer's side, the derivative value of the password h2 = A (r2) is calculated;

Figure 00000079
на стороне покупателя, сохраняют пароль r2;
Figure 00000079
on the buyer's side, save the r2 password;

Figure 00000080
отправляют значение h2 от покупателя продавцу;
Figure 00000080
send the h2 value from the buyer to the seller;

Figure 00000081
на стороне покупателя, выполняют условие завершения сделки;
Figure 00000081
on the buyer's side, fulfill the condition for completing the transaction;

Figure 00000082
на стороне продавца, отправляют производителю запрос на изменение соответствия идентификатора изделия новому производному значению пароля h2, передавая текущий пароль r;
Figure 00000082
on the seller’s side, send the manufacturer a request to change the correspondence of the product identifier to the new derived password value h2, passing the current password r;

Figure 00000083
на стороне производителя, через смарт-контракт меняют соответствие между идентификатором передаваемого изделия и производным значением пароля на новое значение h2, предъявляя текущий пароль r и подписывая транзакцию ЭЦП производителя;
Figure 00000083
on the manufacturer’s side, through a smart contract, they change the correspondence between the identifier of the transferred product and the derived password value to the new value h2, presenting the current password r and signing the manufacturer’s digital signature transaction;

Figure 00000084
если покупатель устанавливает, что производное значение пароля для передаваемого изделия не изменилось в БД, или изменилось, но не равно h2, то прерывают сделку;
Figure 00000084
if the buyer determines that the derivative password value for the transferred product has not changed in the database, or has changed, but is not equal to h2, then the transaction is terminated;

Figure 00000085
производят передачу изделия от продавца покупателю;
Figure 00000085
transferring the product from the seller to the buyer;

Figure 00000086
в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца не зафиксировано в БД, а покупатель желает закрепить свой статус владения в БД, то выполняют следующие действия:
Figure 00000086
if the correspondence of the identifier of the transferred product to the identifier of the seller is not fixed in the database, and the buyer wants to fix his ownership status in the database, then perform the following steps:

Figure 00000087
если у покупателя отсутствует идентификатор в БД, назначают уникальный идентификатор покупателю;
Figure 00000087
if the buyer does not have an identifier in the database, a unique identifier is assigned to the buyer;

Figure 00000088
если у покупателя отсутствует ЭЦП, формируют ЭЦП покупателя;
Figure 00000088
if the buyer does not have an EDS, form the EDS of the buyer;

Figure 00000089
на стороне продавца, в смарт-контракте, запрашивают ключ построения доказательства pk,
Figure 00000089
on the seller’s side, in a smart contract, they request a pk proof building key,

Figure 00000090
на стороне продавца, используя СФДВ, формируют блок данных доказательства prf3, используя в качества параметров функцию А(х), ключ построения доказательств pk и пароля r3;
Figure 00000090
on the seller’s side, using SFDV, form a proof data block prf3, using the function A (x), the proof construction key pk and password r3 as parameters;

Figure 00000091
производят передачу блока доказательства prf3 от продавца покупателю;
Figure 00000091
transferring the proof block prf3 from the seller to the buyer;

Figure 00000092
на стороне покупателя, в смарт-контракте, запрашивают ключ проверки доказательства vk;
Figure 00000092
on the buyer's side, in a smart contract, they request a vk proof verification key;

Figure 00000093
на стороне покупателя, в смарт-контракте, запрашивают производное значение от пароля h3, соответствующую передаваемому изделию;
Figure 00000093
on the buyer's side, in a smart contract, they request a derivative value from the password h3 corresponding to the transmitted product;

Figure 00000094
на стороне покупателя, используя СФДВ, производят проверку блока доказательства, используя в качестве параметров функцию А(х), ключ проверки доказательств vk, производное значение от пароля h3 и блок данных доказательства prf3;
Figure 00000094
on the buyer’s side, using SFDV, the proof block is checked using the function A (x), the proof verification key vk, the derivative of the password h3 and the proof data block prf3 as parameters;

Figure 00000095
если проверка неуспешна, то прерывают сделку;
Figure 00000095
if the check is unsuccessful, then they terminate the transaction;

Figure 00000096
на стороне покупателя, выполняют условие завершения сделки;
Figure 00000096
on the buyer's side, fulfill the condition for completing the transaction;

Figure 00000097
передают пароль r3 от продавца покупателю;
Figure 00000097
pass the r3 password from the seller to the buyer;

Figure 00000098
на стороне покупателя, через смарт-контракт, меняют соответствие идентификатора изделия идентификатору покупателя, используя переданный пароль r3;
Figure 00000098
on the buyer's side, through a smart contract, they change the correspondence of the product identifier to the customer identifier using the transferred password r3;

Figure 00000099
передают изделие от продавца покупателю.
Figure 00000099
transfer the product from the seller to the buyer.

В качестве функции А(х) может быть выбрана криптографическая хэш-функция.As a function A (x), a cryptographic hash function can be selected.

Способ в своей основе опирается на ряд предположений о мотивации и поведении участников системы:The method basically relies on a number of assumptions about the motivation and behavior of participants in the system:

Figure 00000100
у каждого изделия и владельца имеется уникальный идентификатор;
Figure 00000100
each product and owner has a unique identifier;

Figure 00000101
изделие нельзя передать сразу нескольким владельцам;
Figure 00000101
the product cannot be transferred to several owners at once;

Figure 00000102
участник - владелец изделия - должен иметь возможность доказать другому участнику, что изделие с данным идентификатором действительно принадлежит именно ему;
Figure 00000102
the participant - the owner of the product - should be able to prove to the other participant that the product with this identifier really belongs to him;

Figure 00000103
статус владения изделием должен меняться только в случае фактической передачи изделия от одного участника к другому, с обоюдного согласия каждой стороны;
Figure 00000103
the ownership status of the product should only change if the product is actually transferred from one participant to another, with the mutual consent of each party;

Figure 00000104
должна быть возможность скрыть факт владения изделием, но при этом сохранена возможность дальнейшей передачи изделия, с возможностью установить факт аутентичности изделия.
Figure 00000104
it should be possible to hide the fact of ownership of the product, but at the same time, the possibility of further transfer of the product, with the ability to establish the fact of authenticity of the product, is preserved.

Для обеспечения работы предлагаемого способа должно быть предварительно создано и введено в действие средство формирования доказательства вычисления без разглашения (СФДВ).To ensure the operation of the proposed method must be previously created and put into place a means of generating evidence of calculation without disclosure (SFDV).

Средство СФДВ может быть выполнено в программном, программно-аппаратном или полностью аппаратном виде, но предпочтительным является вариант программного исполнения в виде ПО, которое устанавливается на вычислительное устройство производителя изделий и покупателей.The SFDV tool can be implemented in software, software-hardware or fully hardware form, but the preferred option is software execution in the form of software that is installed on the computing device of the manufacturer of products and customers.

Предполагается, что у производителя изделий есть мотивация к корректной надежной работе такой системы (борьба с контрафактом снижает потенциальные убытки).It is assumed that the manufacturer of the products has the motivation for the correct reliable operation of such a system (the fight against counterfeiting reduces potential losses).

Очередной участник - владелец изделия - может быть заинтересован в публикации факта владения в открытом источнике, но может и предпочитать оставаться анонимным: система должна позволять реализовывать оба сценария.Another participant - the owner of the product - may be interested in publishing the fact of ownership in an open source, but may also prefer to remain anonymous: the system should allow both scenarios to be implemented.

При передаче изделия от текущего владельца к следующему, участники ведут себя рационально, т.е. делают все, чтобы с минимальными издержками прийти к желаемой цели.When transferring a product from the current owner to the next, the participants behave rationally, i.e. they do everything in order to reach the desired goal with minimal costs.

Идентификатор владельца не меняется со временем. У владельца имеется только один, закрепленный именно за ним, идентификатор.Owner ID does not change over time. The owner has only one identifier assigned to him.

Из-за требования о неизменяемости данных, централизованные решения, основанные на классических базах данных, здесь не подходят. Нецелесообразно передавать все полномочия по управлению данными и бизнес-логикой в руки одной стороны либо даже консорциума, поэтому в качестве платформы выбрана БД типа публичный блокчейн: БД этого типа дает гарантии на неизменность и высокую доступность сохраняемой информации без необходимости доверять управление третьим лицам.Due to the requirement of data immutability, centralized solutions based on classic databases are not suitable here. It is inappropriate to transfer all powers to manage data and business logic into the hands of one party or even a consortium, therefore a public blockchain type database is chosen as a platform: this type of database provides guarantees for the invariability and high availability of stored information without the need to trust third parties to manage it.

Для того, чтобы обеспечить всем участникам процесса одинаковую осведомленность об изменениях данных в системе, а также гарантировать, что правила, по которым данные преобразуются, не могут поменяться, бизнес-логика управления цепочкой владения оформляется в виде смарт-контракта с доступным для всех открытым кодом.In order to ensure that all participants in the process are equally aware of data changes in the system, and also to ensure that the rules by which data is converted cannot be changed, the business logic of managing the ownership chain is framed in the form of a smart contract with open source code available to everyone .

Чтобы система была устойчивой к возможным DDoS-атакам, ее размещают на блокчейн-платформе с большим количеством участвующий вычислительных узлов.To make the system resistant to possible DDoS attacks, it is placed on a blockchain platform with a large number of participating computing nodes.

Подобное решение было предложено, например, в способе-прототипе. Решение покрывает большую часть заявленных требований, но есть и недостатки.A similar solution was proposed, for example, in the prototype method. The solution covers most of the stated requirements, but there are also disadvantages.

Недостатком способа-прототипа при этом можно также считать отсутствие возможности сокрытия какой-то части цепочки владения: например, бывает так, что логистика является одной из составных частей конкурентного преимущества бизнеса, и публикация идентификаторов контрагентов может выдать эту информацию заинтересованным лицам. Или же человек, принимающий во владение какую-то вещь, не желает по каким-либо своим причинам фиксировать факт владения в общественно доступной БД.The disadvantage of the prototype method can also be considered the lack of the possibility of hiding some part of the ownership chain: for example, it happens that logistics is one of the components of the competitive advantage of a business, and the publication of counterparty identifiers can give this information to interested parties. Or, a person who takes possession of a thing does not want for some reason to record the fact of ownership in a publicly accessible database.

Если участник, принимающий изделие во владение, будет посылать транзакцию в блокчейн, это неизбежно приведет к публикации его идентификатора (на данный момент, большинство блокчейн-платформ не поддерживают анонимные транзакции).If the participant accepting the product will send the transaction to the blockchain, this will inevitably lead to the publication of its identifier (at the moment, most blockchain platforms do not support anonymous transactions).

Для решения проблемы приватных передач изделий между владельцами в предлагаемом способе используется криптографический протокол неинтерактивного доказательства с нулевым разглашением, реализованный в средстве СФДВ.To solve the problem of private transfers of products between owners, the proposed method uses a cryptographic protocol of non-interactive evidence with zero disclosure, implemented in the SFDV tool.

Доказательство с нулевым разглашением - это совокупное название способов, позволяющих доказать факт обладания решением какой-то вычислительной задачи другой стороне, без необходимости предъявлять решение проверяющей стороне. Например, такой задачей может быть поиск прообраза хэш-функции по заданному образу.Zero-disclosure proof is the collective name of the ways to prove the fact of having a solution to some computational problem to the other side, without having to present the solution to the relying party. For example, such a task could be to search for the inverse image of a hash function in a given image.

Изначальное развертывание системы выполняет производитель изделий, выполняя следующие действия.The initial deployment of the system is performed by the manufacturer of the products by performing the following steps.

1. Производитель изделий выбирает всюду определенную функцию А(х), такую, чтобы отыскать прообраз по заданному образу было вычислительно трудно. Например, положим А(х) = SHA256(x), где SHA256(x) - криптографическая хэш-функция. Здесь и далее, мы будем называть пару значений r и h, таких, что A(r) = h, следующими терминами: значение r - паролем, значение h - производным значением от пароля r.1. The manufacturer of products selects everywhere a certain function A (x), such that it was computationally difficult to find a prototype from a given image. For example, put A (x) = SHA256 (x), where SHA256 (x) is a cryptographic hash function. Hereinafter, we will call a pair of r and h values, such that A (r) = h, in the following terms: the value r is the password, the value h is the derivative value of the password r.

2. Производитель изделий, используя средство СФДВ, генерирует ключ построения доказательств pk и ключ проверки доказательств vk для функции А(х).2. The manufacturer of the products, using the SFDV tool, generates a proof construction key pk and evidence proof key vk for function A (x).

3. Производитель публикует ключи pk и vk в открытом общедоступном источнике, таком как веб-сайт или публичной БД типа блокчейн.3. The manufacturer publishes the pk and vk keys in an open, public source, such as a website or a public blockchain-type database.

4. Производитель изделий создает смарт-контракт в БД.4. The product manufacturer creates a smart contract in the database.

Смарт-контракт содержит следующие функции:A smart contract contains the following functions:

Figure 00000105
функцию, вычисляющая выбранную функцию А(х); в рассматриваемом примере эта функция совпадает с функцией SHA256(x);
Figure 00000105
a function that calculates the selected function A (x); in this example, this function coincides with the function SHA256 (x);

Figure 00000106
addltem (itemId): добавляет изделие с идентификатором itemId в БД; в качестве владельца назначается идентификатор производителя изделий;
Figure 00000106
addltem (itemId): adds a product with the itemId identifier to the database; as the owner is assigned the identifier of the manufacturer of the products;

Figure 00000107
requestChangeHolder (itemId, newHolder): начинает процедуру передачи прав на изделие itemId от текущего владельца владельцу с идентификатором newHolder; для завершения процедуры передачи требуется, чтобы участник с идентификатором newHolder вызвал функцию ackChangeHolder, таким образом, подтвердив свое желание получить изделие во владение;
Figure 00000107
requestChangeHolder (itemId, newHolder): starts the transfer of rights to the product itemId from the current owner to the owner with the identifier newHolder; To complete the transfer procedure, it is required that the participant with the identifier newHolder calls the ackChangeHolder function, thus confirming his desire to own the product;

Figure 00000108
ackChangeHolder (itemId): подтвердить намерение оформления изделия itemId во владение;
Figure 00000108
ackChangeHolder (itemId): confirm the intention to own the itemId;

Figure 00000109
cancelChangeHolder (itemId): отменить ранее инициированную процедуру передачи изделия;
Figure 00000109
cancelChangeHolder (itemId): cancel the previously initiated product transfer procedure;

Figure 00000110
getltemHolder (itemId): возвращает идентификатор владельца изделия с номером itemId;
Figure 00000110
getltemHolder (itemId): returns the product owner ID with itemId;

Figure 00000111
anonymizeltem (itemId, Н): поставить значение текущего владельца для изделия с номером itemId в значение undefined (т.е. не определено), установив при этом производное значение пароля для данного изделия равным H;
Figure 00000111
anonymizeltem (itemId, Н): set the value of the current owner for the item with itemId to undefined (i.e. not defined), setting the derived password for this product to H;

Figure 00000112
changeHashKey (itemId, R, Н): установить новое производное значение от пароля Н для изделия itemId, предварительно предъявив пароль R, производное значение от которого равно текущему производному значению пароля для данного изделия;
Figure 00000112
changeHashKey (itemId, R, Н): set a new derived value from the password N for the itemId item, having previously presented the password R, the derived value of which is equal to the current derived password value for this product;

Figure 00000113
changeHolderByKey (itemId, R, newHolder): для изделия с идентификатором itemId, в случае, если текущий владелец изделия не выставлен (т.е. значение undefined), и, если производное значение переданного пароля R равно текущему производному значению пароля для изделия itemId, установить идентификатор текущего владельца равным newHolder.
Figure 00000113
changeHolderByKey (itemId, R, newHolder): for a product with the itemId identifier, if the current owner of the product is not set (i.e. undefined), and if the derived value of the transmitted password R is equal to the current derived password value for the itemId, set the current owner ID to newHolder.

5. Добавлять идентификаторы изделий по мере необходимости5. Add product identifiers as needed

Все произведенные изделия изначально числятся за производителем, чей идентификатор заранее известен.All manufactured products are initially attributed to the manufacturer, whose identifier is known in advance.

Известной реализацией средства СФДВ можно считать алгоритмы семейства zkSNARK. Рассмотрим принцип их работы с прикладной точки зрения. Описание внутреннего устройства алгоритмов раскрывается (Описание криптографического протокола zkSNARK - статья по адресу https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof).Algorithms of the zkSNARK family can be considered a well-known implementation of the SFDV tool. Consider the principle of their work from an applied point of view. A description of the internal structure of the algorithms is disclosed (Description of the cryptographic protocol zkSNARK - article at https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof).

Пусть имеется вычислительная задача, заданная функцией С(х). Функция С(х) известна обоим участникам протокола. Допустим, участник А желает доказать участнику В факт того, что знает такое значение w, что C(w) удовлетворяет какому-либо критерию, например, C(w) = а, но при этом не желает предъявлять само значение w в открытом виде, а значение а известно обоим участникам.Let there be a computational problem defined by the function C (x). Function C (x) is known to both participants in the protocol. Suppose participant A wants to prove to participant B the fact that he knows such a value of w that C (w) satisfies some criterion, for example, C (w) = a , but does not want to present the value of w in an open form, and the value of a is known to both participants.

Метод zkSNARK состоит из следующих шагов.The zkSNARK method consists of the following steps.

1. Доверенная 3-я сторона запускает функцию-генератор POC_GEN для заданной функции С(х), получая на выходе пару значений: pk - ключ доказательства, vk - ключ проверки:1. The trusted 3rd party starts the POC_GEN generator function for the given function C (x), receiving a couple of values at the output: pk is the proof key, vk is the verification key:

POC_GEN(C(x))=(pk, vk)POC_GEN (C (x)) = (pk, vk)

Значения pk и vk могут быть опубликованы в общедоступном месте, например, на веб-сайте компании-произодителя. Можно обратить внимание на тот факт, что функция-генератор POC_GEN на вход принимает некоторую всюду определенную вычислимую функцию. Способ описания функции может быть различным, в зависимости от реализации метода, например, в виде арифметических схем.The pk and vk values can be published in a public place, for example, on the website of the manufacturer. You can pay attention to the fact that the POC_GEN generator function takes an input for some everywhere defined computable function. The method for describing a function can be different, depending on the implementation of the method, for example, in the form of arithmetic schemes.

2. Участник А выполняет построение блока данных доказательства prf, выполняя функцию построения блока доказательства POC_PROOF:2. Member A performs the construction of the proof data block prf, performing the function of constructing the proof block POC_PROOF:

POC_PROOF (С(х), pk, а, w) = prfPOC_PROOF (C (x), pk, a , w) = prf

Блок данных доказательства prf передается стороне В.The prf proof data block is transferred to side B.

3. Участник В проверяет блок данных доказательства prf выполняя функцию проверки блока доказательства POC_VERIFY.3. Member B checks the proof data block prf by performing the function of checking the proof block POC_VERIFY.

ЕслиIf

POC_VERIFY (С(х), vk, a, prf) = Истина,POC_VERIFY (C (x), vk, a , prf) = True,

то доказательство считается состоятельным, и участник А действительно обладает значением w, таким что C(w) = а.then the proof is considered valid, and participant A really has a value w such that C (w) = a .

Специализированные функции POC_GEN, POC_PROOF, POC_VERIFY образуют ядро метода zkSNARK.The specialized functions POC_GEN, POC_PROOF, POC_VERIFY form the core of the zkSNARK method.

Параметры pk и vk для функции С(х) генерируются доверенной 3-й стороной в виде переменных смарт-контракта и не меняются со временем. В нашем случае это делает производитель изделий, при размещении смарт-контракта в БД.The parameters pk and vk for the function C (x) are generated by the trusted 3rd party in the form of smart contract variables and do not change with time. In our case, the manufacturer of the products does this when placing a smart contract in the database.

Рассмотрим возможные сценарии передачи изделия от одного участника к следующему участнику. Под участником понимается владелец изделия, покупатель изделия или производитель изделий. Здесь, в качестве функции С(х) используется SHA256(x).Consider the possible scenarios of transferring the product from one participant to the next participant. Participant means the owner of the product, the buyer of the product, or the manufacturer of the product. Here, as a function of C (x), SHA256 (x) is used.

Сценарий 1. Передача изделия от публичного участника А другому участнику В, желающему остаться анонимным.Scenario 1. Transfer of the product from public participant A to another participant B who wishes to remain anonymous.

1. Участник В проверяет подлинность изделия путем проверки соответствия идентификатора изделия идентификатору участника А, который тот предъявляет В, например, путем формирования электронной цифровой подписи (ЭЦП) для блока данных, содержащего идентификатор изделия, и посылки подписанного блока данных от А к В. Участник В извлекается из подписанного блока данных публичный ключ подписавшей стороны.1. Participant B verifies the authenticity of the product by checking that the product identifier matches the identifier of participant A, which he presents to B, for example, by generating an electronic digital signature (EDS) for a data block containing the product identifier and sending a signed data block from A to B. The public key of the signatory is extracted from the signed data block.

В качестве алгоритма ЭЦП может использоваться, например, алгоритм ECDSA с эллиптической кривой secp256k1 (Стандарт NIST на протокол ECDSA - статья по адресу https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf). Данный алгоритм позволяет узнать публичный ключ подписавшей стороны, если известна подписываемая информация.As an EDS algorithm, for example, an ECDSA algorithm with an elliptic curve secp256k1 can be used (NIST standard for ECDSA protocol - article at https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf). This algorithm allows you to find out the public key of the signatory, if the signed information is known.

В случае, если в качестве БД используется система Ethereum, то идентификатор пользователя - владельца публичного ключа вычисляется какIf the Ethereum system is used as the database, then the identifier of the user who owns the public key is calculated as

Userld=SHA256 (PubKey)Userld = SHA256 (PubKey)

2. Участник В генерирует пароль RB и вычисляет производное значение пароля HB=SHA256(RB), сохраняя RB в надежном месте.2. Member B generates a password R B and calculates the derived password value H B = SHA256 (R B ), keeping R B in a safe place.

3. Участник В передает предоплату стороне А за изделие.3. Member B transfers the prepayment to party A for the product.

4. Участник В передает стороне А значение HB с требованием поменять производное значение пароля для изделия в БД путем выполнения транзакции anonymizeltem (itemId, HB), при этом публичный адрес текущего владельца изделия выставляется как undefined. Транзакция проводится от участника А, поэтому подписывается ЭЦП участника А.4. Participant B transfers to party A the value of H B with the requirement to change the derivative value of the password for the product in the database by executing the transaction anonymizeltem (itemId, H B ), while the public address of the current owner of the product is set as undefined. The transaction is conducted from participant A, therefore, the digital signature of participant A is signed.

5. Участник В убеждается в изменении производного значения для изделия в БД, после чего участники А и В обмениваются ценностями: остаток оплаты меняется на изделие.5. Participant B is convinced of a change in the derivative value for the product in the database, after which participants A and B exchange values: the remaining payment is changed to the product.

Сценарий 2: Передача изделия между анонимным участником В и участником С, желающим также остаться анонимным. Роль доверенного лица играет третий участник - например, производитель изделий.Scenario 2: Transfer of the product between anonymous member B and member C who also wants to remain anonymous. The role of the trustee is played by a third party - for example, a manufacturer of products.

1. Участник В, используя средство СФДВ и известный ключ построения доказательств, генерирует блок данных доказательства обладания паролем Rc для передаваемого изделия.1. Participant B, using the SFDV tool and a well-known evidence-building key, generates a data block of proof of possession of the password R c for the transferred product.

2. Участник В передает блок данных доказательства участнику С.2. Participant B transfers the evidence data block to Participant C.

3. Участник С, используя средство СФД В и известный ключ проверки доказательств, проводить проверку переданного блока данных доказательства.3. Participant C, using the SFD B tool and the well-known evidence verification key, verify the transferred evidence data block.

4. Участник С формирует пароль RC такой, что HC=SHA256 (RC).4. Member C generates a password R C such that H C = SHA256 (R C ).

5. Участник С вносит предоплату за изделие.5. Participant C makes an advance payment for the product.

6. Участник С отправляет участнику В значение HC, сохраняя RC в надежном месте.6. Participant C sends to participant B the value of H C , keeping R C in a safe place.

7. Участник В обращается к производителю изделий с запросом о замене производного значения пароля изделия HC, используя как доказательство владения пароль RB (участник В обладает паролем согласно сценарию 1).7. Member B requests the product manufacturer to replace the derived value of the product password H C using password R B as evidence of ownership (participant B has a password in accordance with scenario 1).

8. Производитель вызывает транзакцию changeHashKey (itemId, Rb, HC), изменяя устанавливая соответствие изделию нового производного значения пароля НС, предъявляя для этого пароль Rb.8. The manufacturer calls the transaction changeHashKey (itemId, Rb, H C ), changing by setting the product to match the new derived password value H C , presenting the password R b for this.

9. Участники С и В обмениваются ценностями: участник В получает оставшуюся часть оплаты, а участник С получает изделие.9. Participants C and B exchange values: participant B receives the remainder of the payment, and participant C receives the product.

Заметим, что ни участник В, ни участник С не производят транзакций в смарт-контракте, но при этом на каждом этапе у участников есть возможность предъявить и проверить доказательство владения изделием. Закрепить право на изделие без необходимости прямого вызова в БД возможно благодаря наличию надежного посредника в лице участника А, который проводит транзакцию от своего имени. Таким участником может выступать, например, производитель изделия.Note that neither participant B nor participant C make transactions in a smart contract, but at the same time, at each stage, participants have the opportunity to present and verify proof of ownership of the product. To secure the right to a product without the need for a direct call to the database is possible due to the presence of a reliable intermediary in the person of participant A, who conducts the transaction on his behalf. Such a participant may be, for example, the manufacturer of the product.

Сценарий 3: Передача изделия происходит между анонимным участником С и участником D, желающим записать свой статус владельца в БД.Scenario 3: The transfer of the product takes place between the anonymous member C and member D who wants to record their owner status in the database.

1. Участник В, используя средство СФДВ и известный ключ построения доказательств, генерирует блок данных доказательства обладания паролем Rc для передаваемого изделия.1. Participant B, using the SFDV tool and a well-known evidence-building key, generates a data block of proof of possession of the password R c for the transferred product.

2. Участник В передает блок данных доказательства участнику С.2. Participant B transfers the evidence data block to Participant C.

3. Участник С, используя средство СФДВ и известный ключ проверки доказательств, проводить проверку переданного блока данных доказательства.3. Participant C, using the SFDV tool and the well-known evidence verification key, verify the transferred evidence data block.

4. Участник D вносит предоплату за изделие.4. Member D prepays the product.

5. Участник С передает D пароль RC.5. Participant C transmits D password R C.

6. Участник D выполняет транзакцию changeHolderByKey (itemId, RC, D), предъявляя текущий пароль RC и устанавливая в результате идентификатор текущего владельца изделия itemId равным D.6. Member D performs the changeHolderByKey transaction (itemId, R C , D), presenting the current password R C and setting the current item owner ID of itemId to D.

7. Участники завершают сделку, производя обмен изделия на оставшуюся часть оплаты.7. Participants complete the transaction by exchanging the product for the remainder of the payment.

Сценарий 4: Передача изделия происходит между публичным владельцем А и участником В, желающим также закрепить свой статус в БД.Scenario 4: The transfer of the product takes place between public owner A and participant B, who also wants to consolidate their status in the database.

1. Участник В вносит предоплату.1. Participant B makes an advance payment.

2. Участник А вызывает requestChangeHolder (itemId, В), тем самым запрашивая у участника В разрешение на передачу статуса владения изделием itemId.2. Member A calls requestChangeHolder (itemId, B), thereby requesting from Member B permission to transfer ownership of itemId.

3. Участник В вызывает ackChangeHolder (itemId), подтверждая согласие на обладание изделием.3. Member B calls ackChangeHolder (itemId), confirming consent to the possession of the product.

4. Участники завершают сделку, производя обмен изделия на оставшуюся часть оплаты.4. Participants complete the transaction by exchanging the product for the remainder of the payment.

Далее предлагаемый способ проанализирован с точки зрения возможного поведения участников в рамках заданного представления об их мотивах. Анализируются только те шаги, где происходит взаимодействие между участниками.Further, the proposed method is analyzed from the point of view of the possible behavior of participants in the framework of a given idea of their motives. Only those steps are analyzed where the interaction between the participants occurs.

Сценарий 1: Передача изделия происходит от участника А участнику В, желающему оставаться анонимным.Scenario 1: The transfer of the product occurs from participant A to participant B who wishes to remain anonymous.

Шаг 1. Участник А располагает изделием с идентификатором itemId. Принадлежность изделия данному владельцу устанавливается с помощью вызова функции getItemHolder (itemId). Данная функция работает на чтение, поэтому транзакцию проводить в БД не нужно, достаточно иметь локальную копию актуальной версии БД. Отсутствие транзакции в БД важно для участника В, так как тот желает оставаться анонимным.Step 1. Member A holds the item ID itemId. The ownership of the product to this owner is established by calling the getItemHolder (itemId) function. This function works for reading, therefore, it is not necessary to conduct a transaction in the database, it is enough to have a local copy of the current version of the database. The lack of a transaction in the database is important for participant B, since he wants to remain anonymous.

Шаг 3. Предоплата необходима для того, чтобы обезопасить А от пустой потери статуса владельца: на шаге 5, участник А фактически передает статус владельца В, но от В до сих пор не поступила полная оплата за изделие.Step 3. Prepayment is necessary in order to protect A from the empty loss of owner status: in step 5, participant A actually transfers the status of owner B, but B still has not received full payment for the product.

Шаги 4, 5. Участник А получает от В значение HB, которое будет использовано для установки производного значения пароля на изделие. Участник А обладает предоплатой за изделие. Если А срывает сделку в данной точке, то В теряет свои деньги. Решить эту проблему можно, используя помощь надежного посредника.Steps 4, 5. Participant A receives from B the value H B , which will be used to set the derived password value for the product. Member A has a prepayment for the product. If A breaks a deal at a given point, then B loses his money. You can solve this problem using the help of a reliable intermediary.

Шаг 6. Прочитывая актуальную информацию из БД, участник В убеждается, что статус у изделия изменился, и что на изделие установили производное значение пароля, пароль которого известен только В. К данному моменту, у участника А уже нет возможности вернуть себе статус владельца, а у участника В есть статус, но нет изделия, поэтому обе стороны мотивированы завершить сделку.Step 6. By reading up-to-date information from the database, participant B makes sure that the status of the product has changed, and that the derivative value of the password is set on the product, the password of which is known only to B. At this time, participant A no longer has the opportunity to regain the owner’s status, and participant B has a status but no product, therefore both parties are motivated to complete the transaction.

Сценарий 2: Передача изделия происходит между анонимным участником В и другим участником С, который также желает оставаться анонимным. Роль доверенного 3-го лица играет некоторый участник А, например, производитель изделий или иной субъект с возможностью проводить транзакции в БД.Scenario 2: Product transfer occurs between anonymous member B and another member C, who also wishes to remain anonymous. The role of a trusted 3rd party is played by a certain participant A, for example, a manufacturer of products or another entity with the ability to conduct transactions in the database.

Шаг 1. Участник В считывает публично известный ключ построения доказательств pk, формирует блок данных доказательства prf обладания паролем RB, таким, чтоStep 1. The Member reads the publicly known key pk of building evidence, forms a block of data prove possession of the password prf R B, such that

SHA256(RB) = HB,SHA256 (R B ) = H B ,

и передает это доказательство участнику С. Участник С получает из общедоступного места публично известный ключ проверки доказательств vk и производное значение пароля HB для изделия, далее выполняет проверкуand transmits this evidence to participant C. Member C receives from a public place a publicly known evidence verification key vk and the derived password value H B for the product, then checks

POC_VERIFY(SHA256(x), HB, prf, vk) = ИстинаPOC_VERIFY (SHA256 (x), H B , prf, vk) = True

Шаг 3. Предоплата нужна для того, чтобы после выполнения шага 6 (изменение производного значения пароля на новое значение), у участника С была мотивация к завершению сделки.Step 3. Prepayment is necessary so that after completing step 6 (changing the derived password value to a new value), participant C has the motivation to complete the transaction.

Шаг 4, 5. Для того, чтобы завершить сделку, В необходимо провести через А изменение производного значения пароля для изделия. Участник В не может сам вызвать эту транзакцию, так как потеряет анонимность. Поэтому, участник В обращается к производителю с запросом на вызов транзакцииStep 4, 5. In order to complete the transaction, B needs to conduct through A a change in the derived password value for the product. Member B cannot itself invoke this transaction, as it will lose anonymity. Therefore, participant B contacts the manufacturer with a request to call the transaction

changeHashKey(itemId, RB, НС).changeHashKey (itemId, R B , H C ).

Шаг 7. После проведения транзакции changeHashKey, участник В утратил доказательство обладания изделием, а С, наоборот, обладает таким доказательством. Участники мотивированы завершить сделку.Step 7. After the changeHashKey transaction, participant B has lost proof of ownership of the product, while C, on the contrary, has such proof. The participants are motivated to complete the transaction.

Сценарий 3. Передача изделия происходит между анонимным участником С и другим участником D, который также желает оставаться анонимным. Роль доверенного 3-го лица играет производитель изделий.Scenario 3. The transfer of the product takes place between anonymous member C and another member D, who also wishes to remain anonymous. The role of a trusted 3rd party is played by the manufacturer of the products.

Шаг 1. Доказательство происходит аналогично сценарию 2.Step 1. The proof is similar to scenario 2.

Шаг 2. Предоплата нужна для того, чтобы после шага 3, у участника D была мотивация завершить сделку.Step 2. Prepayment is needed so that after step 3, participant D has the motivation to complete the transaction.

Шаги 3 и 4. Участник D получает официальный статус владельца изделием itemId.Steps 3 and 4. Member D receives the official status of the owner with itemId.

Шаг 5. Участник D обладает статусом, но не изделием. У участников есть мотивация к тому, чтобы завершить сделку.Step 5. Member D has the status, but not the product. Participants have the motivation to complete the transaction.

Сценарий 4: Передача изделия происходит между участником А и другим участником В, также желающим закрепить свой статус в БД.Scenario 4: The transfer of the product occurs between participant A and another participant B, who also wants to consolidate their status in the database.

Шаг 1. Предоплата нужна для того, чтобы у участника В была мотивация к завершению сделки после выполнения requestChangeHolder участником А на шаге 2. В смарт-контракте есть функция, позволяющая "отменить" передачу изделия cancelChangeHolder, но участник В может успеть вызвать ackChangeHolder до этого, и тогда А потеряет статус владения.Step 1. Prepayment is needed so that participant B has the motivation to complete the transaction after requestChangeHolder is executed by participant A in step 2. There is a function in the smart contract that allows you to "cancel" the transfer of the product cancelChangeHolder, but participant B can manage to call ackChangeHolder before , and then A will lose ownership status.

После этого оба участника мотивированы завершить сделку.After that, both participants are motivated to complete the transaction.

Под условием завершения сделки понимается совокупность действий и факторов, мотивирующих участников добросовестно следовать предложенному способу. Таким условием может быть частичная оплата (предоплата) за изделие до окончания сделки различными способами, использование услуг доверенного посредника и т.д. Предпочтительным вариантом является частичная оплата изделия после проверки его подлинности.Under the condition of completion of the transaction is understood a set of actions and factors motivating participants to conscientiously follow the proposed method. Such a condition may be a partial payment (prepayment) for the product until the transaction is completed in various ways, using the services of a trusted intermediary, etc. The preferred option is to partially pay for the product after checking its authenticity.

Таким образом, предложенный способ позволяет обеспечить возможности для покупателя остаться анонимным, даже при использовании БД типа публичный блокчейн.Thus, the proposed method allows providing the opportunity for the buyer to remain anonymous, even when using a database such as a public blockchain.

Осуществление изобретенияThe implementation of the invention

Реализацию предложенного способа можно продемонстрировать на примере системы проверки подлинности драгоценных камней.The implementation of the proposed method can be demonstrated by the example of a gemstone authentication system.

В качестве БД типа публичной блокчейн с поддержкой функции смарт-контрактов может быть выбрана блокчейн-платформа Ethereum (Блокчейн платформа Ethereum - статья по адресу https://www.ethereum.org) и ее общественная сеть Ethereum Mainnet (Обозреватель блоков основной сети Ethereum - статья по адресу https://etherscan.io/).Ethereum blockchain platform (Ethereum blockchain platform - article at https://www.ethereum.org) and its Ethereum Mainnet public network (Ethereum core network block browser - can be selected as a public blockchain type database with support for smart contracts function) article at https://etherscan.io/).

В качестве средства построения неинтерактивных доказательств с нулевым разглашением используется программная реализация алгоритмов zkSNARK под названием Zokrates (Библиотека ZoKrates для реализации криптографических схем неинтерактивных доказательств с нулевым разглашением - статья по адресу https://github.com/Zokrates/ZoKrates), способная по описанию вычислительной функции, оформленной на специальном языке, генерировать ключи pk, vk, а также функции построения доказательств POC_PROOF и проверки доказательств РОС_VERIFY, в виде функций на языке Solidity (Язык программирования Solidity - статья по адресу https://www.solidity.readthedocs.io/en/v0.4.21/). Таким образом, эти функции могут быть записаны в БД и использованы внешними пользователями.As a means of constructing non-interactive evidence with zero disclosure, a software implementation of zkSNARK algorithms called Zokrates is used (ZoKrates library for implementing cryptographic schemes of non-interactive evidence with zero disclosure - an article at https://github.com/Zokrates/ZoKrates), capable of describing computational functions in a special language, generate keys pk, vk, as well as functions for constructing evidence POC_PROOF and proof testing POC_VERIFY, in the form of functions in the Solidity language (Solidity programming language - article at https://www.solidity.readthedocs.io/ en / v0.4.21 /). Thus, these functions can be written to the database and used by external users.

Производитель ценных изделий, например, драгоценных камней, создает ключевую пару, идентификатор в публичной БД Ethereum: в данном случае, идентификатором является значение хэш-функции от открытого ключа производителя; закрытый ключ сохраняется у производителя.The manufacturer of valuable products, for example, precious stones, creates a key pair, an identifier in the Ethereum public database: in this case, the identifier is the value of the hash function from the manufacturer’s public key; the private key is retained by the manufacturer.

Производитель, используя средство построения неинтерактивных доказательств с нулевым разглашением и подавая в качестве параметра функцию А(х)=SHA256(x), получает два значения: pk - ключ построения доказательств и vk - ключ проверки доказательств, а также функции POC_PROOF и POC_VERIFY.The manufacturer, using the non-interactive evidence building tool with zero disclosure and giving the function A (x) = SHA256 (x) as a parameter, gets two values: pk is the evidence building key and vk is the evidence verification key, as well as the POC_PROOF and POC_VERIFY functions.

Производитель публикует ключи pk и vk, реализации функций POC_PROOF, POC_VERIFY, а также описание выбранной функции SHA256(x) в открытом доступе, например, на своем сайте в сети Интернет, или записывая в БД.The manufacturer publishes pk and vk keys, implementations of the POC_PROOF, POC_VERIFY functions, as well as a description of the selected SHA256 (x) function in the public domain, for example, on its website on the Internet, or by writing to the database.

Производитель записывает в БД смарт-контракт, реализованный на языке программирования Solidity, выполненный с возможностью:The manufacturer writes to the database a smart contract implemented in the programming language Solidity, made with the possibility of:

Figure 00000114
вычислять функцию SHA256(x) (данная функция является встроенной для языка Solidity),
Figure 00000114
calculate the SHA256 (x) function (this function is built-in for the Solidity language),

Figure 00000115
добавлять изделие с идентификатором itemId в БД; в качестве владельца назначается идентификатор производителя изделий,
Figure 00000115
Add item ID itemId to the database; as the owner is assigned the identifier of the manufacturer of the products,

Figure 00000116
инициировать процедуру передачи прав на изделие itemId от текущего владельца владельцу с идентификатором newHolder; для завершения процедуры передачи требуется, чтобы участник с идентификатором newHolder вызвал соответствующую функцию, таким образом подтвердив свое желание получить изделие во владение,
Figure 00000116
initiate the transfer of rights to the itemId product from the current owner to the owner with the identifier newHolder; To complete the transfer procedure, it is required that the participant with the identifier newHolder calls the corresponding function, thus confirming his desire to get the product in possession,

Figure 00000117
подтверждать передачу изделия itemId во владение новым владельцем,
Figure 00000117
Confirm the transfer of the itemId product to the new owner,

Figure 00000118
отменить ранее инициированную процедуру передачи изделия
Figure 00000118
cancel the previously initiated product transfer procedure

Figure 00000119
считывать идентификатор владельца изделия с номером itemId,
Figure 00000119
read product owner identifier with itemId number,

Figure 00000120
поставить значение текущего владельца для изделия с номером itemId в значение undefined (т.е. не определено), установив при этом производное значение пароля для данного изделия равным Н,
Figure 00000120
set the current owner value for the product with itemId number to undefined (i.e. not defined), setting the derived password value for this product to H,

Figure 00000121
установить новое производное значение от пароля Н для изделия itemId, предварительно предъявив пароль R, производное значение от которого равно текущему установленному производному значению пароля для данного изделия,
Figure 00000121
set a new derived value from the password H for the itemId product, having previously presented the password R, the derived value of which is equal to the current set derived password value for the given product,

Figure 00000122
для изделия с идентификатором itemId, в случае, если текущий владелец изделия не выставлен (т.е. значение undefined), и, если производное значение переданного на вход пароля равно текущему производному значению пароля для изделия itemId, установить идентификатор текущего владельца равным newHolder.
Figure 00000122
for a product with the identifier itemId, if the current owner of the product is not set (i.e. undefined), and if the derived value of the password passed to the input is equal to the current derived password for the itemId, set the current owner ID to newHolder.

При производстве драгоценности, изделию назначают уникальный идентификатор и наносят его на изделие, например, известным методом гравировки. После этого, записывают через смарт-контракт соответствие идентификатора изделия идентификатору производителя. Идентификатор производителя публично известен, например, опубликован на официальном сайте производителя. Таким образом, любой желающий может убедиться, что изделие было произведено данным производителем.In the manufacture of jewelry, a unique identifier is assigned to the product and applied to the product, for example, by the famous engraving method. After that, the correspondence of the product identifier to the manufacturer identifier is recorded through a smart contract. The manufacturer’s identifier is publicly known, for example, published on the manufacturer’s official website. Thus, anyone can make sure that the product was manufactured by this manufacturer.

При покупке нового изделия, если покупатель желает закрепить свой статус владения в БД, то выполняют описанные в сценариях шаги. При этом, если у покупателя нет ключевой пары и соответствующей этой ключевой паре учетной записи в БД Ethereum, генерируют ключевую пару, например, используя приложение MetaMask (Приложение MetaMask - статья по адресу https://metamask.io/). Идентификатор учетной записи получается путем хэширования значения публичного ключа функцией SHA256.When buying a new product, if the buyer wants to consolidate his ownership status in the database, then the steps described in the scripts are followed. Moreover, if the buyer does not have a key pair and an account corresponding to this key pair in the Ethereum database, a key pair is generated, for example, using the MetaMask application (MetaMask Application - article at https://metamask.io/). The account identifier is obtained by hashing the value of the public key with the SHA256 function.

Программное обеспечение, осуществляющее посылку транзакций в БД, можно реализовать, используя в качестве программной библиотеки - библиотеку web3.js или ethers.js (Библиотека web3.js - статья по адресу https://web3js.readthedocs.io/en/v1.2.4/; Библиотека Ethers.js - статья по адресу https://docs.ethers.io/ethers.js/html/), в качестве шлюза в блокчейн - сервис infura.io (Шлюз Infura.io - статья по адресу https://infura.io).The software that sends transactions to the database can be implemented using the web3.js or ethers.js library as the program library (web3.js library - article at https://web3js.readthedocs.io/en/v1.2.4 /; Ethers.js library - article at https://docs.ethers.io/ethers.js/html/), as a gateway to the blockchain - service infura.io (Gateway Infura.io - article at https: / /infura.io).

В некоторых сценариях пользователям требуется вычислить пароль и производное значение пароля. Пароль r и производное значение можно вычислить, используя стандартные программные средства: генератор псевдослучайных чисел, например, библиотеки random и hashlib языка программирования Python (Библиотека Random языка программирования Python - статья по адресу https://docs.python.org/3/library/random.html; Библиотека Hashlib языка программирования Python - статья по адресу https://docs.python.org/3/library/hashlib.html), позволяют это сделать. Важно, чтобы случайная величина г была равномерно распределена в диапазоне 1…2256 для обеспечения достаточной устойчивости к атаке перебором.In some scenarios, users need to calculate the password and the derived password value. The password r and the derived value can be calculated using standard software: a pseudo-random number generator, for example, the random and hashlib libraries of the Python programming language (Random Library of the Python programming language - article at https://docs.python.org/3/library/ random.html; Hashlib library of the Python programming language - article at https://docs.python.org/3/library/hashlib.html), allow you to do this. It is important that the random variable r is evenly distributed in the range 1 ... 2 256 to ensure sufficient resistance to brute force attack.

Покупатель сохраняет выбранный пароль r в надежном месте, например, в долговременную память имеющегося у него вычислительного устройства.The customer saves the selected password r in a safe place, for example, in the long-term memory of his computing device.

Покупатель передает производно значение пароля h производителю. Осуществить это можно с помощью любого программного средства, реализующего функцию передачи сообщений с аутентификацией получателя.The buyer passes the derivative password h to the manufacturer. This can be done using any software tool that implements the function of sending messages with recipient authentication.

Описанный в способе протокол реализуется с помощью указанных программных средств.The protocol described in the method is implemented using these software tools.

Claims (88)

1. Способ проверки подлинности изделий, реализуемый с использованием системы, содержащей1. The method of authentication of products implemented using a system containing базу данных (БД) типа публичный блокчейн, связанную с сетью Интернет и выполненную с возможностью:a public blockchain-type database (DB) associated with the Internet and made with the possibility of: назначать идентификаторы пользователям БД;assign identifiers to database users; осуществлять вызовы запрограммированных пользователями функций по управлению данными (смарт-контракт), которые способны выполнять следующие действия:make calls of data management functions programmed by users (smart contract), which are able to perform the following actions: производить вычисление выбранной владельцем смарт-контракта функции А(х), где х - натуральное число;calculate the function A (x) chosen by the owner of the smart contract, where x is a natural number; в случае, если изделие с заданным идентификатором отсутствует в БД, добавлять идентификатор изделия и указывать соответствие этого идентификатора изделия идентификатору производителя;if the product with the given identifier is not in the database, add the product identifier and indicate the correspondence of this product identifier to the manufacturer’s identifier; получать идентификатор владельца по заданному идентификатору изделия;Get the owner’s identifier by the specified product identifier; получать значение слепка пароля по заданному идентификатору изделия;Get the value of the password cast using the given product identifier; посылать запрос на изменение соответствия идентификатора изделия идентификатору текущего владельца на идентификатор нового владельца при наличии электронной цифровой подписи (ЭЦП) текущего владельца;send a request to change the correspondence of the product identifier to the identifier of the current owner to the identifier of the new owner if there is an electronic digital signature (EDS) of the current owner; подтверждать изменение соответствия между идентификатором изделия и идентификатором владельца на соответствие идентификатору нового владельца при наличии ЭЦП нового владельца; отменять изменение соответствия идентификатора изделия идентификатору текущего владельца на идентификатор нового владельца при наличии ЭЦП текущего владельца;Confirm the change in correspondence between the product identifier and the owner identifier to match the identifier of the new owner in the presence of a digital signature of the new owner cancel the change in the correspondence of the product identifier to the identifier of the current owner to the identifier of the new owner if there is an electronic digital signature of the current owner; изменять соответствие между идентификатором изделия и значением маски пароля с одновременным обнулением значения идентификатора текущего владельца изделия при наличии ЭЦП текущего владельца;change the correspondence between the product identifier and the password mask value while resetting the value of the identifier of the current owner of the product if there is an electronic digital signature of the current owner; изменять соответствие между идентификатором изделия и производным значением пароля на новое производное значение пароля при предъявлении искомого действующего пароля изменять соответствие между идентификатором изделия и идентификатором владельца при наличии пароля r, значение от которого А(r) соответствует сохраненному ранее производному значению пароля;change the correspondence between the product identifier and the derived password value to a new derived password value upon presentation of the desired valid password; change the correspondence between the product identifier and the owner identifier if password r exists, the value from which A (r) corresponds to the previously saved derived password value; добавлять смарт-контракты пользователей;Add user smart contracts средство формирования доказательства вычисления без разглашения (далее СФДВ), выполненное с возможностью:means for generating proof of calculation without disclosure (hereinafter SFDV), made with the possibility of: формировать ключ построения доказательства pk и ключ проверки доказательства vk с использованием функции А(х) в качестве параметра;generate a proof construction key pk and proof verification key vk using the function A (x) as a parameter; формировать блок данных доказательства Prf и численное значение b с использованием функции А(х) в качестве параметра, ключа формирования доказательств pk и численного значения d, причем A(d)=b;generate a proof data block Prf and a numerical value b using function A (x) as a parameter, a key for generating evidence pk and a numerical value d, with A (d) = b; верифицировать блок данных доказательства Prf с использованием функции А(х) в качестве параметра, ключа проверки доказательств vk и значения b;Verify the evidence data block Prf using function A (x) as a parameter, evidence proof key vk, and value b; получать и передавать данные;Receive and transmit data способ заключается в том, чтоthe way is that выбирают функцию А(х), такую, что вычислительно трудно определить значение b по заданному значению с, причем А(b)=с;choose a function A (x) such that it is computationally difficult to determine the value of b from a given value of c, with A (b) = c; формируют ЭЦП производителя;form the EDS of the manufacturer; назначают в БД уникальный идентификатор производителя;assign a unique identifier of the manufacturer to the database; формируют в СФДВ ключ проверки доказательства vk и ключ построения доказательств pk с использованием функции А(х);form the proof verification key vk and the proof construction key pk using the function A (x); формируют смарт-контракт в БД, содержащий функцию А(х), идентификатор производителя, значения ключа построения доказательств pk и ключа проверки доказательств vk;form a smart contract in the database containing the function A (x), the identifier of the manufacturer, the values of the evidence construction key pk and the evidence verification key vk; если произведено новое изделие, тоif a new product is made, then назначают уникальный идентификатор изделию;assign a unique identifier to the product; наносят назначенный идентификатор на изделие;put the assigned identifier on the product; записывают в БД через смарт-контракт данные о соответствии идентификатора изделия идентификатору производителя; при необходимости передать изделие от производителя покупателю,write to the database through a smart contract data on the correspondence of the product identifier to the manufacturer’s identifier; if necessary, transfer the product from the manufacturer to the buyer, формируют ЭЦП покупателя;form the digital signature of the buyer; в случае, если покупатель желает закрепить свой статус владения в БД выполняют следующие действия:if the buyer wishes to consolidate his ownership status in the database, perform the following actions: если у покупателя отсутствует идентификатор в БД, назначают в БД уникальный идентификатор покупателю;if the buyer does not have an identifier in the database, a unique identifier is assigned to the buyer in the database; на стороне производителя, через смарт-контракт, посылают запрос на изменение соответствия идентификатора передаваемого изделия идентификатору покупателя, подписывая запрос ЭЦП производителя; на стороне покупателя, через смарт-контракт, подтверждают изменение соответствия между идентификатором передаваемого изделия и идентификатором покупателя, подписывая запрос ЭЦП покупателя; производят передачу изделия от производителя покупателю;on the manufacturer’s side, through a smart contract, they send a request to change the correspondence of the identifier of the transferred product to the buyer’s identifier, signing a request for a digital signature of the manufacturer; on the buyer's side, through a smart contract, they confirm a change in the correspondence between the identifier of the transferred product and the identifier of the buyer by signing a request for an electronic digital signature of the buyer; transferring the product from the manufacturer to the buyer; в случае, если покупатель желает остаться анонимным, выполняют следующие действия:in case the buyer wishes to remain anonymous, perform the following actions: на стороне покупателя, производят проверку соответствия идентификатора изделия идентификатору производителя через БД;on the buyer's side, they check the compliance of the product identifier with the manufacturer’s identifier through the database; на стороне покупателя, генерируют пароль r и вычисляют производное значение пароля h=A(r);on the buyer's side, the password r is generated and the derivative password value h = A (r) is calculated; на стороне покупателя, сохраняют пароль r;on the buyer's side, save the password r; передают значение h от покупателя производителю;transmit the value of h from the buyer to the manufacturer; на стороне покупателя, выполняют условие завершения сделки;on the buyer's side, fulfill the condition for completing the transaction; на стороне производителя, через смарт-контракт, изменяют соответствие идентификатора изделия производному значению пароля h, подписывая транзакцию ЭЦП производителя;on the manufacturer’s side, through a smart contract, they change the correspondence of the product identifier to the derivative value of the password h, signing the manufacturer’s EDS transaction; на стороне покупателя, через смарт-контракт, получают текущее значение производного значения пароля hp для передаваемого изделия если значение hp не равно h, то прерывают сделку;on the buyer's side, through a smart contract, they receive the current value of the derivative value of the hp password for the transferred product; if the hp value is not equal to h, then they terminate the transaction; производят передачу изделия от производителя покупателю;transferring the product from the manufacturer to the buyer; при необходимости передать изделие от продавца покупателю,if necessary, transfer the product from the seller to the buyer, формируют ЭЦП покупателя;form the digital signature of the buyer; формируют ЭЦП продавца;form the EDS of the seller; в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца зафиксировано в БД, и покупатель желает также закрепить свой статус владения в БД, то выполняют следующие действия:if the correspondence of the identifier of the transferred product to the identifier of the seller is fixed in the database, and the buyer also wants to fix his ownership status in the database, then perform the following steps: если у покупателя отсутствует идентификатор в БД, назначают уникальный идентификатор покупателю в БД;if the buyer does not have an identifier in the database, a unique identifier is assigned to the buyer in the database; на стороне продавца, через смарт-контракт, формируют запрос на изменение соответствия идентификатора передаваемого изделия идентификатору покупателя, подписывая запрос ЭЦП продавца;on the seller’s side, through a smart contract, they formulate a request for changing the correspondence of the identifier of the transferred product to the buyer’s identifier by signing the seller’s digital signature request; на стороне покупателя, через смарт-контракт, подтверждают изменение соответствия идентификатора изделия идентификатору покупателя, подписывая транзакцию ЭЦП покупателя;on the buyer's side, through a smart contract, confirm the change in the correspondence of the product identifier to the buyer's identifier by signing the buyer’s EDS transaction; производят передачу изделия от продавца покупателю;transferring the product from the seller to the buyer; в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца зафиксировано в БД, а покупатель желает остаться анонимным, то выполняют следующие действия:if the correspondence of the identifier of the transferred product to the identifier of the seller is fixed in the database, and the buyer wishes to remain anonymous, then perform the following steps: проверяют подлинность изделия путем сравнения идентификатора текущего владельца передаваемого изделия, записанного в БД и идентификатора продавца;verify the authenticity of the product by comparing the identifier of the current owner of the transferred product recorded in the database and the identifier of the seller; если идентификаторы не совпали, то прерывают сделку;if the identifiers do not match, then terminate the transaction; на стороне покупателя, генерируют пароль r1 и вычисляют производное значение пароля h1=A(r1);on the buyer's side, the password r1 is generated and the derivative password value h1 = A (r1) is calculated; сохраняют пароль r1 на стороне покупателя;save the password r1 on the buyer's side; передают значение h1 от покупателя продавцу;transmit the value of h1 from the buyer to the seller; на стороне покупателя, выполняют условие завершения сделки;on the buyer's side, fulfill the condition for completing the transaction; на стороне продавца, в смарт-контракте, меняют соответствие между идентификатором изделия и производным значением пароля на новое значение h1, подписывая транзакцию с помощью ЭЦП продавца;on the seller’s side, in the smart contract, they change the correspondence between the product identifier and the derived password value to the new value h1, signing the transaction using the seller’s digital signature; на стороне покупателя, через смарт-контракт, получают текущее производное значение пароля h2, соответствующее идентификатору передаваемого изделия;on the buyer's side, through a smart contract, they receive the current derived password value h2 corresponding to the identifier of the transferred product; если значение h2 не равно h1, то прерывают сделку;if the value of h2 is not equal to h1, then the deal is terminated; производят передачу изделия от продавца покупателю;transferring the product from the seller to the buyer; в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца не зафиксировано в БД, и покупатель желает остаться анонимным, то выполняют следующие действия:if the correspondence of the identifier of the transferred product to the identifier of the seller is not fixed in the database, and the buyer wishes to remain anonymous, then perform the following steps: на стороне продавца, запрашивают из смарт-контракта ключ построением доказательств pk;on the seller’s side, they request a key from the smart contract by building evidence pk; на стороне продавца, используя СФДВ, формируют блок доказательства prf2 с использованием функции А(х), пароля r, сохраненного на стороне продавца, и ключа построения доказательств pk;on the seller’s side, using SFDV, form the proof block prf2 using the function A (x), the password r stored on the seller’s side, and the evidence construction key pk; передают блок доказательства prf2 от продавца покупателю; на стороне покупателя, запрашивают из БД ключ проверки доказательств vk;transmitting the proof block prf2 from the seller to the buyer; on the buyer's side, request a vk evidence verification key from the database; на стороне покупателя, через смарт-контракт, получают производное значение пароля h, соответствующее передаваемому изделию;on the buyer's side, through a smart contract, receive the derivative value of the password h corresponding to the transmitted product; на стороне покупателя, используя СФДВ, производят проверку блока доказательства prf2 с использованием функции А(х), производного значения пароля h и ключа vk;on the buyer's side, using SFDV, they check the proof block prf2 using the function A (x), the derived value of the password h and the key vk; если проверка неуспешна, то прерывают сделку;if the check is unsuccessful, then they terminate the transaction; на стороне покупателя, формируют пароль r2;on the buyer's side, form a password r2; на стороне покупателя, вычисляют производное значение пароля h2=A(r2);on the buyer's side, the derivative password value h2 = A (r2) is calculated; на стороне покупателя, сохраняют пароль r2;on the buyer's side, save the r2 password; отправляют значение h2 от покупателя продавцу;send the h2 value from the buyer to the seller; на стороне покупателя, выполняют условие завершения сделки;on the buyer's side, fulfill the condition for completing the transaction; на стороне продавца, отправляют производителю запрос на изменение соответствия идентификатора изделия новому производному значению пароля h2, передавая текущий пароль r;on the seller’s side, send the manufacturer a request to change the correspondence of the product identifier to the new derived password value h2, passing the current password r; на стороне производителя, через смарт-контракт меняют соответствие между идентификатором передаваемого изделия и производным значением пароля на новое значение h2, предъявляя текущий пароль r и подписывая транзакцию ЭЦП производителя;on the manufacturer’s side, through a smart contract, they change the correspondence between the identifier of the transferred product and the derived password value to the new value h2, presenting the current password r and signing the manufacturer’s digital signature transaction; если покупатель устанавливает, что производное значение пароля для передаваемого изделия не изменилось в БД, или изменилось, но не равно h2, то прерывают сделку;if the buyer determines that the derivative password value for the transferred product has not changed in the database, or has changed, but is not equal to h2, then the transaction is terminated; производят передачу изделия от продавца покупателю;transferring the product from the seller to the buyer; в случае, если соответствие идентификатора передаваемого изделия идентификатору продавца не зафиксировано в БД, а покупатель желает закрепить свой статус владения в БД, то выполняют следующие действия:if the correspondence of the identifier of the transferred product to the identifier of the seller is not fixed in the database, and the buyer wants to fix his ownership status in the database, then perform the following steps: если у покупателя отсутствует идентификатор в БД, назначают уникальный идентификатор покупателю;if the buyer does not have an identifier in the database, a unique identifier is assigned to the buyer; если у покупателя отсутствует ЭЦП, формируют ЭЦП покупателя; на стороне продавца, в смарт-контракте, запрашивают ключ построения доказательства pk;if the buyer does not have an EDS, form the EDS of the buyer; on the seller’s side, in a smart contract, they request a pk proof building key; на стороне продавца, используя СФДВ, формируют блок данных доказательства prf3, используя в качества параметров функцию А(х), ключ построения доказательств pk и пароля r3;on the seller’s side, using SFDV, form a proof data block prf3, using the function A (x), the proof construction key pk and password r3 as parameters; производят передачу блока доказательства prf3 от продавца покупателю;transferring the proof block prf3 from the seller to the buyer; на стороне покупателя, в смарт-контракте, запрашивают ключ проверки доказательства vk;on the buyer's side, in a smart contract, they request a vk proof verification key; на стороне покупателя, в смарт-контракте, запрашивают производное значение от пароля h3, соответствующую передаваемому изделию;on the buyer's side, in a smart contract, they request a derivative value from the password h3 corresponding to the transmitted product; на стороне покупателя, используя СФДВ, производят проверку блока доказательства, используя в качестве параметров функцию A(x), ключ проверки доказательств vk, производное значение от пароля h3 и блок данных доказательства prf3;on the buyer’s side, using SFDV, the proof block is checked using the function A (x), the proof verification key vk, the derivative of the password h3 and the proof data block prf3 as parameters; если проверка неуспешна, то прерывают сделку; на стороне покупателя, выполняют условие завершения сделки; передают пароль r3 от продавца покупателю;if the check is unsuccessful, then they terminate the transaction; on the buyer's side, fulfill the condition for completing the transaction; pass the r3 password from the seller to the buyer; на стороне покупателя, через смарт-контракт, меняют соответствие идентификатора изделия идентификатору покупателя, используя переданный пароль r3;on the buyer's side, through a smart contract, they change the correspondence of the product identifier to the customer identifier using the transferred password r3; передают изделие от продавца покупателю.transfer the product from the seller to the buyer. 2. Способ по п. 1, в котором в качестве функции А(х) выбирают криптографическую хэш-функцию.2. The method according to claim 1, wherein a cryptographic hash function is selected as the function A (x).
RU2019144325A 2019-12-27 2019-12-27 Authentication method of articles RU2722285C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2019144325A RU2722285C1 (en) 2019-12-27 2019-12-27 Authentication method of articles

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019144325A RU2722285C1 (en) 2019-12-27 2019-12-27 Authentication method of articles

Publications (1)

Publication Number Publication Date
RU2722285C1 true RU2722285C1 (en) 2020-05-28

Family

ID=71067876

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019144325A RU2722285C1 (en) 2019-12-27 2019-12-27 Authentication method of articles

Country Status (1)

Country Link
RU (1) RU2722285C1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2639015C1 (en) * 2017-01-26 2017-12-19 Игорь Сан-Сенович Дю Authenticity and quality control procedure of production in the process of manufacture and implementation
RU2643503C1 (en) * 2017-05-12 2018-02-01 Арташес Валерьевич Икономов Method of verification of the authenticity of goods or services
US20180094953A1 (en) * 2016-10-01 2018-04-05 Shay C. Colson Distributed Manufacturing
RU2679545C1 (en) * 2018-04-24 2019-02-11 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Products authenticity verification method
RU2709288C1 (en) * 2019-03-04 2019-12-17 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Secure method of access to database

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180094953A1 (en) * 2016-10-01 2018-04-05 Shay C. Colson Distributed Manufacturing
RU2639015C1 (en) * 2017-01-26 2017-12-19 Игорь Сан-Сенович Дю Authenticity and quality control procedure of production in the process of manufacture and implementation
RU2643503C1 (en) * 2017-05-12 2018-02-01 Арташес Валерьевич Икономов Method of verification of the authenticity of goods or services
RU2679545C1 (en) * 2018-04-24 2019-02-11 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Products authenticity verification method
RU2709288C1 (en) * 2019-03-04 2019-12-17 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Secure method of access to database

Similar Documents

Publication Publication Date Title
US11861606B2 (en) Blockchain system for confidential and anonymous smart contracts
JP6986519B2 (en) Distributed transaction propagation and validation system
Asgaonkar et al. Solving the buyer and seller’s dilemma: A dual-deposit escrow smart contract for provably cheat-proof delivery and payment for a digital good without a trusted mediator
CN109417465B (en) Registration and automatic management method of intelligent contracts executed by block chains
CN109242675B (en) Asset publishing method and device based on block chain and electronic equipment
JP2021518685A (en) Computer-implemented systems and methods for exchanging data
JP7075393B2 (en) Systems and methods realized by blockchain
CN110473094A (en) Data grant method and device based on block chain
CN110457875A (en) Data grant method and device based on block chain
CN109544129B (en) Block chain transaction method and device and electronic equipment
WO2020051710A1 (en) System and process for managing digitized security tokens
JPWO2019180588A5 (en)
TW202016819A (en) Block-chain transaction method and device and electronic device
CN110728576A (en) Decentralized anonymous data transaction method based on zero knowledge proof
CN110458708A (en) Asset allocation method and device competition-based in block chain network
Bhatia et al. WorkerRep: Building trust on crowdsourcing platform using blockchain
US20220393871A1 (en) Multifactor authentication using blockchain transactions
CN112884562B (en) Mortgage processing method and device based on blockchain and readable storage medium
RU2722285C1 (en) Authentication method of articles
CN111383008B (en) Block chain transfer method and device based on account model
CN112861184A (en) Asset certification verification and generation method and device and electronic equipment
Alabdali et al. Bitcoin and double-spending: How paving the way for betterment leads to exploitation
Li et al. A Decentrlized Trading Model Based on Public Blockchain with Regulatable Bi-Tierred Identities
Yen The Oracle Problem: Unlocking the Potential of Blockchain
Prabhu et al. Enhancing retail business and customer experience using blockchain approach

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner