WO2020158953A1 - 分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム - Google Patents

分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム Download PDF

Info

Publication number
WO2020158953A1
WO2020158953A1 PCT/JP2020/003840 JP2020003840W WO2020158953A1 WO 2020158953 A1 WO2020158953 A1 WO 2020158953A1 JP 2020003840 W JP2020003840 W JP 2020003840W WO 2020158953 A1 WO2020158953 A1 WO 2020158953A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
network
transfer
block
asset
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2020/003840
Other languages
English (en)
French (fr)
Inventor
峰史 小宮山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BitFlyer Blockchain Inc
Original Assignee
BitFlyer Blockchain Inc
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 BitFlyer Blockchain Inc filed Critical BitFlyer Blockchain Inc
Priority to US17/428,232 priority Critical patent/US20220172180A1/en
Priority to EP20748648.1A priority patent/EP3920464A4/en
Priority to CN202080026817.XA priority patent/CN113661683B/zh
Publication of WO2020158953A1 publication Critical patent/WO2020158953A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the present invention relates to a method for storing a transaction representing asset transfer in a distributed network having a plurality of nodes, a program therefor, and nodes for configuring the distributed network.
  • a blockchain network that builds a database on a distributed network consisting of multiple nodes has high tamper resistance due to its decentralized nature. This is because it is difficult to rewrite the entire distributed network even if the database is tampered with at any node.
  • the block chains stored in each node function as a database in synchronization with each other.
  • the present invention has been made in view of the above problems, and an object of the present invention is to configure a method for storing a transaction representing a transfer of assets in a distributed network having a plurality of nodes, a program therefor, and the distributed network. In the node for doing so, it is to greatly improve the transaction processing speed per unit time.
  • a first aspect of the present invention is a method of storing a transaction representing transfer of assets in a distributed network having a plurality of sub-networks, wherein A first transaction in which a node constituting the first partial network represents transfer of an asset from a transfer source identifier processable in the first partial network to a transfer destination identifier not processable in the first partial network. Receiving, the step of generating a block containing the first transaction, and the step of updating the state of the asset of the source identifier after consensus formation in the first sub-network for adoption of the block.
  • a second aspect of the present invention is characterized in that, in the first aspect, the first transaction is added with a signature by the private key of the transfer source identifier.
  • a third aspect of the present invention is characterized in that, in the first or second aspect, the amount of the transferred asset is a positive value.
  • the second transaction is added with a signature indicating that consensus is formed in the first partial network. It is characterized by being
  • the fifth aspect of the present invention is characterized in that, in the fourth aspect, the signature of the second transaction is a single signature.
  • a sixth aspect of the present invention is the mark of a Merkle tree according to the fourth or fifth aspect, wherein the signature of the second transaction is based on a plurality of transactions including the first transaction in the block. It is characterized in that it is a signature for a block header including a route.
  • a seventh aspect of the present invention is a method of storing a transaction representing an asset transfer in a distributed network having a plurality of partial networks in a node forming a first partial network of a plurality of partial networks.
  • an eighth aspect of the present invention is a node constituting a first partial network of the plurality of partial networks for storing a transaction representing the transfer of assets in a distributed network having a plurality of partial networks. And receiving a first transaction representing a transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network, the first transaction being received. Generating a block including the transaction of the transaction, updating the state of the asset of the transfer source identifier after consensus formation in the first partial network for adoption of the block, and the first partial network for adoption of the block.
  • the second transaction for reflecting the transfer of the asset to the transfer destination identifier represented by the first transaction is transferred from the transfer source that matches the transfer destination identifier of the first transaction. It is characterized in that the identifier is transmitted to a second subnetwork capable of processing.
  • a ninth aspect of the present invention is a method of storing a transaction representing asset transfer in a distributed network having a plurality of partial networks, which constitutes a first partial network of the plurality of partial networks.
  • the node receiving a first transaction representing a transfer of an asset from a source identifier processable in the first partial network to a destination identifier not processable in the first partial network; Generating a first block containing one transaction, updating the state of the asset of the source identifier after consensus formation in the first sub-network for adoption of the first block, After consensus formation in the first sub-network for adoption of the first block, a second transaction for reflecting the transfer of the asset to the transferee identifier represented by the first transaction is Transmitting a transfer source identifier that matches the transfer destination identifier of the first transaction to a processable second partial network, wherein a node configuring the second partial network executes the second transaction.
  • a tenth aspect of the present invention is a distributed network having a plurality of partial networks for storing a transaction indicating transfer of assets, wherein the first partial network and the second partial network of the plurality of partial networks are included.
  • the first partial network and the second partial network of the plurality of partial networks are included.
  • the transfer source After receiving a first transaction representing a transfer, generating a first block containing the first transaction, and after consensus in the first sub-network for adoption of the first block, the transfer source Updating the status of the asset of the identifier and reflecting the transfer of the asset to the transferee identifier represented by the first transaction after consensus formation in the first sub-network for adoption of the first block; A second transaction for transmitting the second transaction to the second partial network capable of processing the transfer source identifier that matches the transfer destination identifier of the first transaction, and the node configuring the second partial network, The second transaction is received after receiving the second transaction, generating a second block containing the second transaction, and after forming a consensus in the second sub-network for adoption of the second block.
  • the state of the asset of the transfer destination identifier of is updated.
  • a distributed network is configured by a plurality of partial networks, and a transfer source identifier that can be processed in each partial network is defined, thereby performing parallel processing of transactions and simultaneously processing a plurality of transactions. Becomes feasible.
  • FIG. 7 is a flowchart of a key generation method for consensus building according to an embodiment of the present invention. 6 is a flowchart of a method for determining block adoption according to an embodiment of the present invention. It is a schematic diagram of a peg transaction according to another embodiment of the present invention. It is a figure for demonstrating the Merkle tree data concerning another embodiment of the present invention. It is a schematic diagram of a peg transaction according to another embodiment of the present invention.
  • FIG. 1 shows a distributed network according to an embodiment of the present invention.
  • the distributed network 100 has a plurality of partial networks that operate differently depending on the transfer source of the asset in the transaction to be stored in the database constructed on the distributed network 100.
  • FIG. 1 shows the first partial network 110, the second partial network 120, and the third partial network 130, the number of partial networks is not limited to three.
  • Each partial network is composed of a plurality of nodes, and each node includes a communication unit 111A such as a communication interface, a processing unit 111B such as a processor and a CPU, and a storage device or a storage medium such as a memory and a hard disk. It can be configured by including a unit 111C and executing a program for performing each process.
  • Each node may include one or more devices or servers, the program may include one or more programs, and a non-transitory program recorded in a computer-readable storage medium. Can be a product.
  • a transaction representing a transfer from the transfer source identifier 201 such as the transfer source address of the asset 203 to the transfer destination identifier 202 such as the transfer destination address is generated.
  • An application for generating such a transaction is installed in the user terminal 140 or is available in the user terminal 140 via a computer network such as the Internet.
  • the transaction 200 representing the transfer of the asset 203 such as virtual currency from the transfer source identifier 201 to the transfer destination identifier 202 is generated in the user terminal 140 (S301).
  • the transfer source identifier 201, the transfer destination identifier 202, and the amount of the transferred asset 203 are described, and the signature 204 with the secret key associated with the transfer source identifier 201 is added.
  • the private key of the transfer source identifier 201 is managed so that only the user terminal 140 or the user of the user terminal 140 can access it, and only that user can legitimately transfer the asset from the transfer destination identifier 201. ..
  • the user terminal 140 transmits a request for recording the transaction 200 to the distributed network 100 (S302).
  • a value or range of a transfer source identifier capable of processing the received transaction by itself is set in each partial network.
  • the application of the user terminal 140 can process the transfer source identifier and each partial network.
  • the transmission destination of the recording request request of the transaction 200 is determined by referring to the correspondence with the value or range of the transfer source identifier. In the example of FIGS. 1 and 2, the first partial network 110 will receive the transaction 200.
  • the transaction 200 when transmitting the transaction 200 to the first partial network 110, the transaction 200 is transmitted to one or a plurality of nodes forming the first partial network 110.
  • the node 111 that has received the transaction 200 stores the transaction 200 in the storage unit 111C or a storage medium or storage device accessible from the node for subsequent processing.
  • the node 111 which has received the transaction 200 as necessary, transmits the transaction 200 to the other nodes configuring the first partial network 110, and among the plurality of nodes configuring the first partial network 110, the block selection is performed. It will be stored in the nodes that participate in consensus building.
  • one of the nodes 111 configuring the first partial network 110 generates a block including one or a plurality of transactions stored so far, and the first partial network 110 for the adoption thereof.
  • a consensus building process is performed (S303). When the consensus is formed, each node participating in the consensus formation adds the block to the block chain stored in each node.
  • Each node of the first partial network 110 stores the public key corresponding to the private key of the transfer source identifier processable in the first partial network 110, and the signature 204 of the signature 204 is received when a transaction is received or a block is generated. It is possible to verify the effectiveness.
  • the details of the consensus building process performed in the first partial network 110 will be described later.
  • the public key is not stored in advance in each node, but whether the transaction 200 includes the public key corresponding to the private key of the signature 204 added to the transaction 200, or the public key is added to the transaction 200. Or may be calculable from the signature 204.
  • each node stores the association between the asset state and the identifier that holds the state of the asset associated with the transfer source identifier that can be processed by each node, and stores the block in the blockchain.
  • the transfer of the asset from the transfer source identifier described in one or more transactions included in the added block is recorded (S304).
  • the association is not limited to the table format, but may be referred to as an "asset table" for convenience. Further, the association may be stored in a storage medium or a storage device accessible from each node.
  • the transfer source identifier and the transfer destination identifier processable in the distributed network 100 are a 10-digit symbol string starting with “A”, a 10-digit symbol string starting with “B”, and a “C”.
  • the symbol string starts with 10 digits the first partial network 110 has a transfer source identifier that starts with “A”
  • the second partial network 120 has a transfer source identifier that starts with “B”
  • the third partial network 130 has a transfer source identifier that starts with “C”. It is assumed that processing is possible.
  • each node 111 of the first partial network 110 stores The asset balance of the identifier “A13afb3sdf” in the asset table to be updated is updated. Specifically, the asset balance of the transfer source identifier “A13afb3sdf” is reduced by 10 BTC.
  • the node that generated the added block or the other node of the first partial network can process the transfer destination identifier in the first partial network 110 among the one or more transactions included in the added block.
  • the transaction 400 corresponding to the transaction that does not match the transfer source identifier is transmitted to the partial network in which the transfer destination identifier matches the transfer source identifier that can be processed in the own network (S305).
  • the transaction 400 is generated after the asset table is updated, but these can be reversed. If the consensus building process (S303) includes verification that the amount of assets transferred from the transfer source identifier of each transaction included in the block is equal to or more than the balance of the transfer source identifier, the order may be reversed. If it is not included, the asset table update process (S304) includes the verification that the amount of the transferred asset is equal to or more than the balance, and the transaction 400 of the transaction 400 is provided on the condition that the verification result is positive. The transmission may be executed.
  • the transaction 400 indicates the transfer of the asset 203 represented by the transaction 200 stored in the first partial network 110 to the transfer destination identifier 202. Is to be reflected in the processable second partial network 120, and the amounts of the transfer source identifier 401, the transfer destination identifier 402, and the assets 403 to be transferred are described.
  • the added signature 404 indicates that the block containing the transaction 200 has been agreed upon for its adoption in the first partial network 110, ie, the block. It is a signature indicating that it has been added to the chain.
  • the signature 404 is shown as “A”. Details of the signature 404 will be described later.
  • the transaction 400 since the transaction 400 is for maintaining the consistency of the asset state between the partial networks and is what is called peg, it may be called a “peg transaction”, and the signature 404 is a “peg signature”. Sometimes called.
  • the second partial network 120 that has received the peg transaction 400, one of the nodes generates a block including the peg transaction 400, and after the consensus forming process (S306) for adoption of the block is performed, the block chain of each node Added to.
  • Each node of the second partial network 120 stores the public key corresponding to the secret key of the transfer source identifier processable by the second partial network 120, and the public key associated with the peg signature by another partial network. I remember. By verifying the peg signature 404 of the transaction 400 as valid with the public key, it is possible to determine that the transaction 400 is a peg transaction.
  • the public key is not stored in advance in each node, but whether the peg transaction 400 includes the public key corresponding to the private key of the signature 404 added to the transaction 400, or whether the public key is included in the transaction 200. It may be added. In any case, in each partial network, in other words, in which partial network the public key corresponding to the private key of the signature 404 added to the peg transaction 400 corresponds to the private key that can be signed. It is possible to confirm which partial network the so-called holder of the public key belongs to.
  • the transaction received by a certain partial network is the normal transaction 200 or the peg transaction 400
  • each node updates the asset balance of the transfer destination identifier 402 of the peg transaction 400 and records the transfer of the asset 203 (S307).
  • the asset balance of the transfer source identifier 201 of the asset 203 is updated as described above, while in the peg transaction 400, the asset balance of the transfer destination identifier 402 is updated.
  • the transfer destination identifier 402 of the peg transaction 400 matches any of the transfer source identifiers that can be processed by the second partial network 120, and each node of the second partial network 120 can be accessed from the storage unit of each node or each node. It is possible to update the storage medium or storage device by referring to the correspondence between the transfer source identifier processable in the own network and the state of the asset associated with the identifier.
  • the distributed network by configuring the distributed network with a plurality of partial networks and determining transfer source identifiers that can be processed in each partial network, it is possible to perform parallel processing of transactions and simultaneously execute processing of multiple transactions. Become. Therefore, the transaction processing speed per unit time can be significantly improved.
  • the destination of the recording request request of the transaction 200 is determined by referring to the correspondence between the transfer source identifier and the value or range of the processable transfer source identifier.
  • the transaction 200 may be transmitted to one or a plurality of partial networks, and the transaction 200 may be transferred to the partial network which can be processed unless the transaction 200 can process itself in the received partial network.
  • a forwarding node (not shown) is provided in the distributed network 100, and the transaction 200 that is first transmitted from the user terminal 140 in the forwarding node can be received, and the transaction 200 can be processed according to the value of the transmission source identifier 201. You may determine a partial network.
  • the destination of the peg transaction 400 is described as being defined in the first partial network 110, but it is possible to perform transmission in the same manner as the destination of the normal transaction 200.
  • the amount of the asset 203 is not particularly limited, but it is preferable to process it as an invalid transaction if the balance is insufficient when verifying the transaction 200 as a positive value.
  • the value is a negative value, that is, when the transfer source identifier 201 receives the asset 203, the asset balance of the transfer destination identifier 202 is not managed by the asset table of the first network 110. Cannot be verified, and the second partial network 120 may be processed as invalid due to insufficient balance of the transfer destination identifier 202 even though the block including the transaction is added in the first partial network 110. Occurs.
  • the network 500 illustrated in FIG. 5 has N of 5 as an example, and includes a first node 510, a second node 520, a third node 530, a fourth node 540, and a fifth node 550.
  • each node includes a communication unit 511 such as a communication interface, a processing unit 512 such as a processor and a CPU, and a storage unit 513 including a storage device or a storage medium such as a memory and a hard disk.
  • a computer equipped with, and each processing described below can be realized by executing a predetermined program.
  • the node 510 may include one or a plurality of devices or servers.
  • One or a plurality of programs may be included, and the program may be recorded in a computer-readable storage medium to provide a non-transitory program product.
  • the hardware configurations of the other nodes are similar.
  • the first node 510 will be mainly described, but similar processing can be performed in other nodes.
  • the network 500 may include nodes that do not participate in consensus building.
  • the predetermined program defines rules related to the agreement algorithm and rules related to setup, and should be stored in a storage device or a storage medium accessible from the storage unit 513 or the first node 510 via the network. You can
  • the setup is started in response to a setup request inside or outside the network 500, and FIG. 5 shows an example in which the request is transmitted from the outside.
  • the request may include the number k of signatures required for consensus formation, and may be set in advance in a rule concerning setup.
  • the request may include designation of N nodes that participate in consensus building, and this designation may be set in advance in a rule relating to setup.
  • each node has one public key assigned to all nodes participating in consensus formation, each node participating in consensus formation. It holds N public key shares assigned to the node and 1 private key share assigned to the node. Further, each node also holds the values of N and k or the value of k/N. The value of N can also be obtained from the number of public key shares.
  • the private key and public key have a relationship that the plaintext signed by the private key can be verified by the public key, and the same applies to the private key share and the corresponding public key share.
  • the “secret key share” is generated so that a signature with a secret key can be generated using a signature with a predetermined number k of secret key shares out of a set of N secret key shares.
  • One of a set of private key shares Therefore, without knowing the secret key, a signature corresponding to the public key can be generated based on k secret key shares, and the signature can be added to the block for which consensus is formed. The added signature can be verified by the public key.
  • one public key assigned to the entire network 500 is PK (Public Key), a private key corresponding to the public key is SK (Secret Key), and the first node 510, the second node 520, the third node 530, the fourth node 540, and the fifth node 550 are assigned public key shares and secret key shares PK1 and SK1, PK2 and SK2, PK3 and SK3, respectively. , PK4 and SK4, PK5 and SK5.
  • the first node stores PK, PK1 to PK5, and SK1 in its storage unit 513 or a storage device or storage medium that can communicate with the node. These stored data will be accessible from the node in the subsequent consensus building process or its confirmation process.
  • the public key PK is necessary for verification of the finally added signature, but may not be generated at the setup stage. This is because the node or device that verifies the signature only needs to have the public key PK at the time of verification, and each node of the network 500 does not necessarily have to have the public key PK at the time of initial setting.
  • FIG. 6 shows the flow of these key generation methods according to this embodiment.
  • f(xi) i is an integer from 1 to N representing the i-th node, and xi is any integer
  • the private key share SKi for the node is assumed.
  • the i-th node determines a (k-1)th degree polynomial fi(x) having aim (m is an integer from 0 to k-1) as a coefficient (S601).
  • Each node can calculate fi(x) by selecting or generating aim and storing it according to a setup rule.
  • the i-th node uses the generator g1 of the cyclic group G1 to transmit the value of aim ⁇ g1 in each m from 0 to k ⁇ 1 or a message including the value to another node (S602). Further, the i-th node transmits a value of fi(xj) or a message including the same to the j-th node (j is an integer from 1 to N).
  • fi(xj) may be transmitted before m and aim ⁇ g1 or may be transmitted at the same time.
  • the generator g1 is stored in each node and is known, or given from one of the nodes to the N nodes participating in consensus formation, each of the N nodes can access and use it. It should be possible.
  • each of the N nodes can access and use it.
  • these values may be stored in a storage unit of each node or a storage device or storage medium accessible from each node.
  • fi(xj) is added for i from 1 to N to calculate f(xj), that is, the secret key share SKj (S604). If the polynomial f(x) is defined as
  • SKj ⁇ g1 is calculated as the public key share PKj according to the following equation. It is possible (S206).
  • the pair of public key share and secret key share obtained in this way is a hash function that gives the hash value h of the block for which consensus is to be formed, which is a mapping from arbitrary data to the cyclic group G2 whose source is g2,
  • SKj ⁇ h obtained by multiplying h by SKj as a signature sj
  • a mapping e from G1 ⁇ G2 to a cyclic group GT whose generator is gT a bilinear mapping satisfying the following equation is defined. It can be seen that Here, a and b are arbitrary integers.
  • the signature sj received from the j-th node can be verified using the known generator g1.
  • the hash value may be calculated from the consensus building block at each node by defining a hash function in the setup rule.
  • the orders of the generators g1 and g2 are preferably prime numbers, and the number of elements of the cyclic groups G1 and G2 generated by each generator is preferably 32 bytes, that is, about 256 bits or more.
  • the operations in the cyclic groups G1 and G2 are described additively.
  • the operation of repeatedly adding the generator g1 a times a is expressed as a ⁇ g1 and is called “multiply a by the generator g1”. ..
  • multiplication of elements of a set of integers such as ax is also used as a notation in this specification, but it should be noted that this is different from multiplication in a cyclic additive group.
  • the signature method is defined in which the value of the (k ⁇ 1)th degree polynomial function f(x) is defined as the secret key share, and the value obtained by multiplying the secret key share by the generator of the cyclic group is the public key share.
  • a signature with a secret key can be generated using signatures with a predetermined number k of secret key shares out of a set of N secret key shares, different signature schemes can be adopted. In this case, instead of giving a set of secret key shares generated by any node of the network 500 or a node outside thereof to each node, each secret key share can be generated in a distributed manner in each node. Is desirable.
  • the public key share PKj and the secret key share SKj in the j-th node have been described as an example, but when describing the processing performed there centering on the i-th node, it is natural. , Addition that the subscripts are changed appropriately.
  • FIG. 7 shows a flow of a confirmation method for block selection according to an embodiment of the present invention.
  • the first node 510 From the state where the setup is completed, the first node 510 generates a block and transmits the first message including the block to the N nodes participating in consensus formation (S701).
  • the transmitting node can also receive the block itself.
  • a message can be directly or indirectly transmitted and received between the nodes, and data related to consensus building can be transmitted to other nodes constituting the network 100 and data can be received from the other nodes. ..
  • Each node that receives the first message evaluates the effectiveness of the block based on the consensus building rules defined in the programs that each node has (S702). Details of effectiveness evaluation include various things such as whether the sender is a legitimate sender node, whether the data format of the block satisfies a certain format and other certain conditions according to the application, whether there is a branch, etc. Rules may be included, and different rules may exist depending on the node. In addition, it may be necessary to send and receive a message with another node in order to evaluate the effectiveness.
  • the node transmits to each node a second message having the signature si for the hash value h of the block for which consensus is to be formed by the secret key share f(xi) accessible by the node ( S703-1).
  • the signature can be performed by multiplying the hash value by the secret key share given to the node.
  • the destination may include its own node. If the block is evaluated as invalid, the block is rejected (S703-2).
  • the node After k signatures are collected at the jth node, the node synthesizes these signatures and generates a signature corresponding to the public key PK (S704). Specifically, each node periodically or intermittently determines whether or not the condition of k/N is satisfied, and if satisfied, receives k or k or more secret key shares.
  • F(0) ⁇ h can be calculated as the signature SK ⁇ h by the private key SK corresponding to the public key PK from the signature by
  • the (k ⁇ 1)th degree polynomial f(x) can be uniquely determined if k or more points (xi, f(xi)) are known, and the value of f(0) is unknown. What is considered to be the value of the secret key SK is used. If k points (xi, f(xi) ⁇ h) are known from k signatures, the function f(x) ⁇ h is determined.
  • the calculation of f(0) ⁇ h can be performed using, for example, Lagrange interpolation
  • the generated single signature SK ⁇ h is broadcast or transmitted to other nodes (S705). Since the effectiveness of k or more nodes has already been evaluated, it may be possible to add the block to the block chain of the node at the time of successful synthesis. Each node may be able to add a block in response to transmitting the combined signature to the node and receiving a predetermined number or more of combined signatures.
  • the case where one secret key share is given to each node is considered, but it is also possible to give multiple shares to one node.
  • the block may include one or a plurality of transactions, or may include any one or a plurality of data. it can. It is also possible to apply the spirit of the present invention to the evaluation of effectiveness by a computer network having a plurality of nodes for one or a plurality of data that do not necessarily form a chain.
  • the peg signature 404 can be generated by an agreement algorithm that is the same as or corresponding to the agreement algorithm used for consensus formation regarding adoption of a block in the first partial network 110. Alternatively, it can be generated by a consensus algorithm different from the consensus algorithm adopted in the selection of the blocks in the first partial network 110.
  • the peg signature 404 can be, for example, one or more signatures using one or more private keys for the hash value of the peg transaction 400 or a part thereof.
  • the second partial network 120 that has received the peg transaction 400 verifies the validity of the peg signature 404 when the peg transaction 400 is received or when a block including the peg transaction 400 is generated.
  • the transfer destination identifier included in the block does not match the transfer source identifier processable in the first partial network 110, even though consensus is once formed for the adoption of the block. For every transaction, a corresponding peg transaction 400 must be generated and consensus formed for each to be signed as the first partial network 110. As the number of partial networks increases, the number of transactions in which the transfer destination identifier does not match the transfer source identifier processable in the first partial network 110 also increases, and the consensus forming process increases.
  • another method uses Merkle tree.
  • a plurality of transactions included in a block added in the first partial network 110 or a transfer source identifier of a transfer destination identifier of the transactions that can be processed in the first partial network 110 Compute the Merkle root of a Merkle tree based on transactions that do not match the identifier.
  • the signature of the Merkle root with the private key is set as the peg signature 404.
  • the peg transaction 400 corresponds to the normal transaction 200 whose transfer destination identifier does not match the transfer source identifier processable by the first partial network 110, and is used to verify the validity of the peg signature 404 in addition to the peg signature 404.
  • Merkle tree data M for one or more necessary nodes is added.
  • the “merkle tree data” is data of one or a plurality of nodes forming the Merkle tree, and specifically, one or a plurality of hash values.
  • the peg transaction 400 is data that matches the normal transaction 200 or includes the normal transaction 200.
  • the peg transaction 400 generates a hash value of the peg transaction 400 or a part thereof, and the Merkle tree data M received together with the hash value and the peg transaction 400.
  • ECDSA can be used as the encryption method.
  • the public key can be calculated from the signature.
  • Fig. 9 shows an example of a Merkle tree. It is assumed that a block including four transactions has been added to the first partial network 110. Then, it is assumed that the peg transaction 400 corresponding to the second transaction tx2 is transmitted to the second partial network 120. In this case, since the hash value of the second transaction tx2 is obtained as the hash value of the peg transaction 400 or a part thereof, the hash value of the node 1 and the hash value of the node 6 are sent to the peg transaction 400 as the Merkle tree data M. If added, the Merkle route of the node 7 can be calculated in the second partial network 120.
  • the signature for the block added in the first partial network 110 is the signature for the block header of the block, and the signature includes the Merkle root of the Merkle tree of the block, the signature for the block remains unchanged. It can be used as the peg signature 404.
  • the peg transaction 400 in addition to the Merkle tree data M, the block header or the data B obtained by removing the Merkle tree root from the block header is added, and the block header is generated in the second partial network 120. Then, it is possible to verify whether or not the peg signature 404 is a signature for the block header by using the public key of the first partial network 110.
  • the entire block added in the first partial network 110 to the second partial network 120 as a peg transaction 400.
  • the block since the block includes a transaction whose transfer destination identifier does not match the transfer source identifier processable by the second partial network 120, unnecessary data will be transmitted, but the first data will be transmitted.
  • the additional signature to the peg transaction 400 in the partial network 110 can be omitted, and the signature added in the consensus formation regarding the block adoption can be directly considered as the peg signature 404.
  • the transfer destination identifier included in the block is a transfer source that can be processed by the second partial network 120.
  • a block (corresponding to a "second block") including one or a plurality of transactions that match the identifier or these corresponding transactions is generated and is an object of consensus formation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

分散ネットワークに資産の移転を表すトランザクションを記憶する方法において、トランザクション処理速度を大幅に向上する。ユーザー端末140において生成された、資産203の移転元識別子201から移転先識別子202への移転を表すトランザクション200を、分散ネットワークを構成する第1の部分ネットワーク110が受信し、トランザクション200を含むブロックを生成して、その採択のための第1の部分ネットワーク110における合意形成処理を行う(S303)。各ノードは、各ノードが処理可能な移転元識別子の資産の状態を記憶しており、合計形成を経て追加されたブロックに含まれる1又は複数のトランザクションに記述された移転元識別子からの資産の移転を記録する(S304)。各部分ネットワークにおいて処理可能な移転元識別子を定めておくことによって、トランザクションの並列処理を行う。

Description

分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム
 本発明は、複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノードに関する。
 データベースを複数のノードによって構成される分散ネットワーク上に構築するブロックチェーンネットワークは、その非中央集権的性格から改ざん耐性が高い。いずれかのノードにおいてデータベースが改ざんされても分散ネットワーク全体を書き換えることは困難だからである。各ノードに記憶されるブロックチェーンが互いに同期してデータベースとして機能している。
 ノード数の増大は改ざん耐性を高める反面、各ノードに同一のブロックチェーンを記憶する必要性からブロックの採択のための処理速度を一般に低下させる。直観的にはノード数を増やすことで単位時間当たりの処理速度を向上可能であるとおもわれるが、ブロックチェーンにおいては逆に低下してしまうことから、ブロックサイズの増大、ブロックに含まれる1又は複数のトランザクションのデータ容量の低減等、さまざまな試みがなされているのが現状である。
 しかしながら、現状のさまざまな試みの中には、拡張性(スケーラビリティ)を大幅に向上可能なものを見出すことは出来ない。特に、仮想通貨、実通貨、株等の資産の移転を分散ネットワーク上のデータベースにおいて管理することを現実的に考えた場合、1秒間に処理可能なトランザクションの数が数件と言われるビットコインを筆頭に、スケーラビリティはブロックチェーンの実用化において喫緊の課題である。
 本発明は、このような問題点に鑑みてなされたものであり、その目的は、複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノードにおいて、単位時間当たりのトランザクション処理速度を大幅に向上することにある。
 このような目的を達成するために、本発明の第1の態様は、複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、前記第1のトランザクションを含むブロックを生成するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含むことを特徴とする。
 また、本発明の第2の態様は、第1の態様において、前記第1のトランザクションは、前記移転元識別子の秘密鍵による署名が付加されていることを特徴とする。
 また、本発明の第3の態様は、第1又は2の態様において、移転される前記資産の額は、正の値であることを特徴とする。
 また、本発明の第4の態様は、第1から第3のいずれかの態様において、前記第2のトランザクションは、前記第1の部分ネットワークにおいて合意形成がなされたことを示す署名が付加されていることを特徴とする。
 また、本発明の第5の態様は、第4の態様において、前記第2のトランザクションの署名は、単一の署名であることを特徴とする。
 また、本発明の第6の態様は、第4又は第5の態様において、前記第2のトランザクションの署名は、前記ブロック内の前記第1のトランザクションを含む複数のトランザクションに基づくマークルツリーのマークルルートを含むブロックヘッダに対する署名であることを特徴とする。
 また、本発明の第7の態様は、複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードに、前記複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法を実行させるためのプログラムであって、前記方法は、前記ノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、前記第1のトランザクションを含むブロックを生成するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含むことを特徴とする。
 また、本発明の第8の態様は、複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶するための、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードであって、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含むブロックを生成し、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信することを特徴とする。
 また、本発明の第9の態様は、複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、前記第1のトランザクションを含む第1のブロックを生成するステップと、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含み、前記第2の部分ネットワークを構成するノードが、前記第2のトランザクションを受信するステップと、前記第2のトランザクションを含む第2のブロックを生成するステップと、前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新するステップとを含むことを特徴とする。
 また、本発明の第10の態様は、資産の移転を表すトランザクションを記憶するための複数の部分ネットワークを有する分散ネットワークであって、前記複数の部分ネットワークのうちの第1の部分ネットワーク及び第2の部分ネットワークを備え、前記第1の部分ネットワークを構成するノードが、前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含む第1のブロックを生成し、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信し、前記第2の部分ネットワークを構成するノードが、前記第2のトランザクションを受信して、前記第2のトランザクションを含む第2のブロックを生成し、前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新することを特徴とする。
 本発明の一態様によれば、分散ネットワークを複数の部分ネットワークにより構成し、各部分ネットワークにおいて処理可能な移転元識別子を定めておくことによって、トランザクションの並列処理を行い、同時に複数のトランザクションの処理が実行可能となる。
本発明の一実施形態にかかる分散ネットワークを示す図である。 本発明の一実施形態にかかる通常トランザクションの模式図である。 本発明の一実施形態にかかるトランザクションを記憶する方法の流れを説明するための図である。 本発明の一実施形態にかかるペグトランザクションの模式図である。 本発明の一実施形態における合意形成処理を説明するための図である。 本発明の一実施形態における合意形成のための鍵生成方法の流れ図である。 本発明の一実施形態におけるブロックの採択についての確定方法の流れ図である。 本発明の別実施形態にかかるペグトランザクションの模式図である。 本発明の別実施形態にかかるマークルツリーデータを説明するための図である。 本発明の別実施形態にかかるペグトランザクションの模式図である。
 以下、図面を参照して本発明の実施形態を詳細に説明する。
 図1は、本発明の一実施形態にかかる分散ネットワークを示す。分散ネットワーク100は、分散ネットワーク100上に構築されたデータベースに記憶すべきトランザクションにおける資産の移転元に応じて動作が異なる複数の部分ネットワークを有する。図1では、第1の部分ネットワーク110と、第2の部分ネットワーク120と、第3の部分ネットワーク130とを示しているが、部分ネットワーク数は3に限られるものではない。
 各部分ネットワークは、複数のノードにより構成されており、各ノードは、通信インターフェースなどの通信部111Aと、プロセッサ、CPU等の処理部111Bと、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部111Cとを備え、各処理を行うためのプログラムを実行することによって構成することができる。各ノードは、1又は複数の装置ないしサーバを含むことがあり、また当該プログラムは1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。
 ユーザー端末140では、資産203の移転元アドレスなどの移転元識別子201から移転先アドレスなどの移転先識別子202への移転を表すトランザクションが生成される。こうしたトランザンクションの生成をするためのアプリケーションがユーザー端末140にインストールされるか、インターネットなどのコンピュータ・ネットワークを介してユーザー端末140において利用可能である。
 図3を参照して、本実施形態にかかる資産の移転を表すトランザクションを記憶する方法を説明する。まず、ユーザー端末140において仮想通貨等の資産203の移転元識別子201から移転先識別子202への移転を表すトランザクション200が生成される(S301)。トランザクション200には、移転元識別子201、移転先識別子202、移転される資産203の額が記述され、移転元識別子201に関連づけられた秘密鍵による署名204が付加される。たとえば、移転元識別子201の秘密鍵は、ユーザー端末140又はユーザー端末140のユーザーのみがアクセス可能に管理されており、当該ユーザーのみが移転先識別子201からの資産の移転を正当に実行可能である。
 次に、ユーザー端末140は、分散ネットワーク100に向けてトランザクション200の記録依頼要求を送信する(S302)。各部分ネットワークには、受け取ったトランザクションを自ら処理可能な移転元識別子の値又は範囲が設定されているところ、本実施形態において、ユーザー端末140のアプリケーションは、移転元識別子と各部分ネットワークが処理可能な移転元識別子の値又は範囲との対応づけを参照して、トランザクション200の記録依頼要求の送信先を判定する。図1及び2の例では、第1の部分ネットワーク110がトランザクション200を受信することとなる。
 より詳細には、第1の部分ネットワーク110にトランザクション200を送信するという場合、第1の部分ネットワーク110を構成する1又は複数のノードに対して送信を行う。トランザクション200を受信したノード111は、その記憶部111C又は当該ノードからアクセス可能な記憶媒体又は記憶装置にトランザクション200をその後処理するため記憶する。必要に応じてトランザクション200を受信したノード111は、第1の部分ネットワーク110を構成するその他のノードにトランザクション200を送信し、第1の部分ネットワーク110を構成する複数のノードのうち、ブロック採択の合意形成に参加するノードにおいて記憶されることとなる。
 そして、第1の部分ネットワーク110を構成するいずれかのノード111が、それまでに記憶したトランザクションのうちの1又は複数のトランザクションを含むブロックを生成し、その採択のための第1の部分ネットワーク110における合意形成処理を行う(S303)。合意形成が行われた場合、合意形成に参加する各ノードは、各ノードが記憶するブロックチェーンに当該ブロックを追加する。第1の部分ネットワーク110の各ノードは、第1の部分ネットワーク110で処理可能な移転元識別子の秘密鍵に対応する公開鍵を記憶しており、トランザクションの受信時又はブロックの生成時に署名204の有効性を検証することが可能である。第1の部分ネットワーク110において行われる合意形成処理の詳細については後述する。公開鍵は、事前に各ノードが記憶しているのではなく、トランザクション200が当該トランザクション200に付加された署名204の秘密鍵に対応する公開鍵を含んでいるか、トランザクション200に当該公開鍵が付加されているか、署名204から計算可能であってもよい。
 各ノードは、ブロックチェーンに加えて、各ノードが処理可能な移転元識別子に関連づけられた資産の状態を保持する識別子と資産の状態との対応づけを記憶しており、ブロックチェーンに当該ブロックを追加した後、追加されたブロックに含まれる1又は複数のトランザクションに記述された移転元識別子からの資産の移転を記録する(S304)。当該対応づけは、テーブル形式に限るものではないが便宜上「アセットテーブル」と呼ぶことがある。また、対応づけは、各ノードからアクセス可能な記憶媒体又は記憶装置に記憶してもよい。
 より詳細には、一例として、分散ネットワーク100で処理可能な移転元識別子及び移転先識別子が「A」で始まる10桁の記号列、「B」で始まる10桁の記号列、そして「C」で始まる10桁の記号列である場合を考える。そして、第1の部分ネットワーク110は「A」で始まる移転元識別子、第2の部分ネットワーク120は「B」で始まる移転元識別子、第3の部分ネットワーク130は「C」で始まる移転元識別子を処理可能と設定されているものとする。第1の部分ネットワーク110において「A13afb3sdf」という移転元識別子201が記述されたトランザクション200を含むブロックに関する合意形成がなされたことを受けて、第1の部分ネットワーク110の各ノード111は、それぞれが記憶するアセットテーブル内の識別子「A13afb3sdf」の資産残高を更新する。具体的には、移転元識別子「A13afb3sdf」の資産残高を10BTC減少させる。
 次いで、追加されたブロックを生成したノード又は第1の部分ネットワークのその他のノードが、追加されたブロックに含まれる1又は複数のトランザクションのうち移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないトランザクションに対応するトランザクション400を、当該移転先識別子が自ネットワークにおいて処理可能な移転元識別子と一致する部分ネットワークに送信する(S305)。
 ここで、トランザクション400の生成がアセットテーブルの更新後に行われるものとして説明したが、これらは逆にすることも考えられる。合意形成処理(S303)に、ブロックに含まれる各トランザクションの移転元識別子から移転される資産の額が当該移転元識別子の残高以上であることの検証が含まれる場合には順序を逆にしてもよいが、含まれない場合にはアセットテーブルの更新処理(S304)に、移転される資産の額が残高以上であることの検証を含め、検証結果が肯定的であることを条件にトランザクション400の送信が実行されるようにしてもよい。
 図2に示したトランザクション200に対応する図4のトランザクション400を例にすると、トランザクション400は、第1の部分ネットワーク110に記憶されたトランザクション200により表される資産203の移転を、移転先識別子202と一致する移転元識別子を処理可能な第2の部分ネットワーク120において反映させるものであり、移転元識別子401、移転先識別子402、移転される資産403の額が記述されている。図2のトランザクション200とは異なり、図4のトランザクション400においては、付加される署名404が、トランザクション200を含むブロックが第1の部分ネットワーク110においてその採択について合意形成がなされたこと、すなわち、ブロックチェーンに追加されたことを示す署名である。図4においては、署名404を「A」として図示している。署名404の詳細は後述する。
 以下において、トランザクション400は部分ネットワーク間での資産の状態の整合性を保つためのものであり、いわゆるペグさせるものであるため、「ペグトランザクション」と呼ぶことがあり、署名404は「ペグ署名」と呼ぶことがある。
 ペグトランザクション400を受信した第2の部分ネットワーク120では、ペグトランザクション400を含むブロックをいずれかのノードが生成し、当該ブロックの採択についての合意形成処理(S306)がなされた後に各ノードのブロックチェーンに追加される。第2の部分ネットワーク120の各ノードは、第2の部分ネットワーク120で処理可能な移転元識別子の秘密鍵に対応する公開鍵を記憶するとともに、他の部分ネットワークによるペグ署名に関連づけられた公開鍵を記憶している。当該公開鍵によってトランザクション400のペグ署名404を有効なものとして検証することで、トランザクション400がペグトランザクションであることを判定することができる。公開鍵は、事前に各ノードが記憶しているのではなく、ペグトランザクション400が当該トランザクション400に付加された署名404の秘密鍵に対応する公開鍵を含んでいるか、トランザクション200に当該公開鍵が付加されていてもよい。いずれにしても、各部分ネットワークは、ペグトランザクション400に付加される署名404の秘密鍵に対応する公開鍵が、いずれの部分ネットワークで署名可能な秘密鍵に対応するものであるのか、換言すれば、公開鍵のいわゆる保有者がいずれの部分ネットワークであるのかを確認可能であるものとする。
 ある部分ネットワークが受信したトランザクションが通常のトランザクション200であるかペグトランザクション400であるかを区別するためには、上記のように署名の検証に用いた公開鍵によって判定することが考えられるが、識別子に基づいて判定することも考えられる。すなわち、移転元識別子が自ネットワークにおいて処理可能な移転元識別子ではなく、移転先識別子が自ネットワークにおいて処理可能な移転元識別子のいずれかと一致する場合、当該トランザクションをペグトランザクション400と判定することが可能である。
 ブロックが追加された後、当該ブロックに含まれるペグトランザクション400について、各ノードはペグトランザクション400の移転先識別子402の資産残高を更新して資産203の移転を記録する(S307)。通常トランザクション200では、上述したように資産203の移転元識別子201の資産残高を更新するところ、ペグトランザクション400では、移転先識別子402の資産残高を更新する。ペグトランザクション400の移転先識別子402は第2の部分ネットワーク120で処理可能な移転元識別子のいずれかと一致し、第2の部分ネットワーク120の各ノードは、各ノードの記憶部又は各ノードからアクセス可能な記憶媒体又は記憶装置に、自ネットワークで処理可能な移転元識別子と当該識別子に関連づけられた資産の状態との対応づけを参照し、更新することができる。
 以上のように、分散ネットワークを複数の部分ネットワークにより構成し、各部分ネットワークにおいて処理可能な移転元識別子を定めておくことによって、トランザクションの並列処理を行い、同時に複数のトランザクションの処理が実行可能となる。よって、単位時間当たりのトランザクション処理速度を大幅に向上させることができる。
 上述の説明では、ユーザー端末140が用いるアプリケーションにおいて、移転元識別子と処理可能な移転元識別子の値又は範囲との対応づけを参照して、トランザクション200の記録依頼要求の送信先を判定するものとして記述したが、1又は複数の部分ネットワークに向けて送信をして、トランザクション200が受信した部分ネットワークにおいて自ら処理可能なトランザクションでなければトランザクション200を処理可能な部分ネットワークに転送してもよい。また、分散ネットワーク100に転送ノード(図示せず)を設けて、転送ノードにおいて最初にユーザー端末140から送信されたトランザクション200を受信し、送信元識別子201の値に応じてトランザクション200を処理可能な部分ネットワークを判定してもよい。
 また、上述の説明では、ペグトランザクション400の送信先を第1の部分ネットワーク110において定めるものとして記述したが、通常トランザクション200の送信先と同様の態様で送信を行うことが考えられる。
 また、上述の説明では、資産203の額は特段制約を課していないが、正の値として、トランザクション200の検証の際に残高不足があれば無効なトランザクションとして処理することが好ましい。負の値とした場合、すなわち移転元識別子201が資産203を受け取る場合には、移転先識別子202の資産残高を第1のネットワーク110のアセットテーブルでは管理していないことから、残高不足か否かを検証することが出来ず、第1の部分ネットワーク110において当該トランザクションを含むブロックが追加されたにも関わらず第2の部分ネットワーク120では移転先識別子202の残高不足によって無効と処理される恐れが生じる。
 なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「aの場合にbする」という記載は、明示した場合を除き、「aの場合に常にbする」ことを必ずしも意味しないことに留意されたい。
 また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム(以下「方法等」)において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。
 合意形成の詳細
 部分ネットワークにおける合意形成は、さまざまな合意アルゴリズムの下で行うことができるところ、一例として、合意形成に参加するN個(Nは2以上の整数)のノードのうちk個(kは2≦k≦Nを満たす整数)のノードによる署名を必要とするものが挙げられる。N=5、k=3の例を考えれば、これは合意形成に参加するノードの過半数による署名が必要となることを意味する。そして、合意形成がなされ、合意形成対象のブロックについてその採択が確定したことを示すためには、根拠としてk個以上の署名を付すことが必要となる。
 このようにk個のノードによる署名が当該合意アルゴリズムにおける所定の条件を満たすことのできるノードの組み合わせはN及びkの値によっては数多く考えられ、このことは、合意が形成されたブロックについて、署名の取り扱いを複雑にしている側面がある。たとえば、あるブロックの署名を事後的に検証(verify)するためには、当該ブロックに付された複数の署名が所定の条件を満たしているか否かを個別に確認しなければならないからである。そこで、以下に述べるような単一の署名によって、部分ネットワークにおいて、ブロックの採択にかかる合意がなされたことを示すことが好ましい。このことは、ブロックの採択についての合意形成だけでなく、ペグトランザクション400にペグ署名404を付加するための合意形成についても同様である。
 図5に示すネットワーク500は、例示としてNが5であり、第1のノード510、第2のノード520、第3のノード530、第4のノード540及び第5のノード550を有する。各ノードは、第1のノード510について図示するように、通信インターフェースなどの通信部511と、プロセッサ、CPU等の処理部512と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部513とを備えるコンピュータであり、所定のプログラムを実行することによって、以下で説明する各処理を実現することができ、当該ノード510は、1又は複数の装置ないしサーバを含むことがあり、また当該プログラムは、1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。その他のノードについても、そのハードウェアの構成は同様である。以下では第1のノード510を中心に説明するが、他のノードにおいても、同様の処理を行い得る。また、合意形成に参加しないノードがネットワーク500に含まれることもある。
 所定のプログラムには、合意アルゴリズムにかかるルール及びセットアップにかかるルールが定められており、記憶部513又は第1のノード510からネットワークを介してアクセス可能な記憶装置又は記憶媒体に記憶しておくことができる。
 合意形成に参加するN個のノードが、互いに通信可能な状態から、ブロックの採択にかかる合意形成を実行可能な状態に遷移するために実行させるべきプロセスを「セットアップ」と呼ぶ。セットアップは、ネットワーク500の外部又は内部においてセットアップの要求を受けて開始され、図5では、外部から当該要求が送信される例を示している。当該要求には、合意形成に必要となる署名の数kを含むことができ、また予めセットアップにかかるルールの中で定めておいてもよい。また、当該要求には、合意形成に参加するN個のノードの指定を含むことができ、またこの指定は予めセットアップにかかるルールの中で定めておいてもよい。
 いずれかの形でN及びkの値が定まり、セットアップ・プロセスの実行が進むと、各ノードは、合意形成に参加するノード全体に割り当てられた1個の公開鍵、合意形成に参加する各ノードに割り当てられたN個の公開鍵シェア、そして当該ノードに割り当てられた1個の秘密鍵シェアを保持することとなる。また、各ノードは、N及びkの値又はk/Nの値も保持することとなる。Nの値は、公開鍵シェアの数から求めることもできる。
 秘密鍵と公開鍵は、当該秘密鍵により署名した平文を当該公開鍵により検証できるという関係にあり、秘密鍵シェアとそれに対応する公開鍵シェアについても同様である。ここで、「秘密鍵シェア」とは、N個の一組の秘密鍵シェアのうち所定の数k個の秘密鍵シェアによる署名を用いて秘密鍵による署名を生成可能であるように、生成された一組の秘密鍵シェアのうちのいずれかを指す。したがって、当該秘密鍵を知ることなく、k個の秘密鍵シェアに基づいて公開鍵に対応する署名を生成し、合意形成の対象であるブロックに当該署名を付加することができる。付加された署名は、公開鍵によってその検証可能である。
 図5の例についてさらに説明すると、ネットワーク500全体に割り当てられる1個の公開鍵をPK(Public Keyの略)、当該公開鍵に対応する秘密鍵をSK(Secret Keyの略)、第1のノード510、第2のノード520、第3のノード530、第4のノード540、第5のノード550のそれぞれに割り当てられる公開鍵シェア及び秘密鍵シェアをそれぞれPK1及びSK1、PK2及びSK2、PK3及びSK3、PK4及びSK4、PK5及びSK5と表記する。セットアップ後には、たとえば第1のノードは、PK、PK1乃至PK5及びSK1をその記憶部513又は当該ノードと通信可能な記憶装置又は記憶媒体に記憶していることになる。記憶されたこれらのデータは、後の合意形成又はその確定プロセスにおいて当該ノードからアクセス可能となる。
 ここで、公開鍵PKは、最終的に付加される署名の検証に必要となるところ、セットアップの段階では生成しない場合もある。署名の検証を行うノード又は装置が検証時に公開鍵PKを有していればよく、初期設定の時点で必ずしもネットワーク500の各ノードが有していることは必要ではないからである。
 図6に、本実施形態にかかるこれらの鍵生成方法の流れを示す。ここでは一例として、(k-1)次多項式f(x)を考え、f(xi)の値(iはi番目のノードを表す1からNの整数であり、xiは任意の整数)を各ノードに対する秘密鍵シェアSKiとするものとする。
 まず、i番目のノードは、aim(mは0からk-1の整数)を係数とする(k-1)次多項式fi(x)を決定する(S601)。各ノードは、セットアップルールに従って、aimを選択ないし生成して記憶することによってfi(x)を計算することができる。
Figure JPOXMLDOC01-appb-M000001
 次に、i番目のノードは、巡回群G1の生成元g1を用いて、0からk-1の各mにおけるaim・g1の値又はそれを含むメッセージを他のノードに送信する(S602)。また、i番目のノードは、j番目のノード(jは1からNの整数)に対して、fi(xj)の値又はそれを含むメッセージを送信する。ここで、fi(xj)の送信は、m及びaim・g1より前に送信してもよく、またこれと同時に送信してもよい。
 生成元g1は、各ノードに記憶されて既知であるか、いずれかのノードから合意形成に参加するN個のノードに与えられることによって、N個のノードそれぞれがアクセス可能であり、用いることができるものとする。同様に、i番目のノードに秘密鍵シェアf(xi)を与える整数xiの値についても、N個のノードそれぞれがアクセス可能であり、用いることができるものとする。たとえば、これらの値は、各ノードの記憶部又は各ノードからアクセス可能な記憶装置又は記憶媒体に記憶しておけばよい。
 そして、j番目のノードにおいて、1からNのiについてfi(xj)を加算して、f(xj)、すなわち秘密鍵シェアSKjを算出する(S604)。多項式f(x)を次式のように定義すれば、
Figure JPOXMLDOC01-appb-M000002
 これは、いずれのノードに対しても知らされていないものの、次式のようにf(xj)を考えることによって、f(x)自体を各ノードが知ることなく、f(xj)の値を各ノードにおいて算出可能である。
Figure JPOXMLDOC01-appb-M000003
 また、各ノードは、m及びaim・g1を自ノードにおいては算出可能であるとともに他ノードのものについては既に受信していることから、次式に従って、公開鍵シェアPKjとしてSKj・g1を算出することができる(S206)。
Figure JPOXMLDOC01-appb-M000004
 この式による公開鍵シェアPKiの算出は、m及びaim・g1並びにxiがすべてのiについて既知であることから、f(x)を知ることなくすべてのノードについて可能である。
 このようにして得られた公開鍵シェアと秘密鍵シェアのペアは、合意形成対象のブロックのハッシュ値hを与えるハッシュ関数を任意のデータからg2を生成元とする巡回群G2への写像とし、hにSKjを乗じたSKj・hを署名sjとして、G1×G2からgTを生成元とする巡回群GTへの写像eであって、次式を満たす双線形写像を定義することによって、暗号方式として成り立つことが分かる。ここで、a及びbは任意の整数である。
Figure JPOXMLDOC01-appb-M000005
 すなわち、i番目のノードにおいて、合意形成対象のブロックのハッシュ値h及び署名sjをj番目のノードより受け取ったとき、上述のアルゴリズムによって既知の公開鍵シェアPKjを用いて、
Figure JPOXMLDOC01-appb-M000006
となるため、既知の生成元g1を用いて、j番目のノードより受け取った署名sjの検証を行うことができる。ハッシュ値は、セットアップルールの中にハッシュ関数を定めておくことで、各ノードにおいて、合意形成対象のブロックから算出してもよい。
 生成元g1、g2の位数は素数であることが好ましく、各生成元により生成される巡回群G1、G2の元の数は一例として32バイト、すなわち256ビット程度以上であることが好ましい。ここで、巡回群G1、G2における演算は加法的に記述しており、たとえば、生成元g1をa回繰り返し加算する演算をa・g1を表記し、「aを生成元g1に乗じる」と呼ぶ。なお、axのように整数の集合の元同士の乗算も本明細書において表記として用いられるが、これは巡回加法群における乗算とは異なるものであることを念のため付言する。
 上述の説明では、(k-1)次多項式関数f(x)の値を秘密鍵シェアとして定め、当該秘密鍵シェアを巡回群の生成元に乗じた値を公開鍵シェアとする署名方式を前提としているところ、N個の一組の秘密鍵シェアのうち所定の数k個の秘密鍵シェアによる署名を用いて秘密鍵による署名を生成可能であれば、異なる署名方式を採用することもできる。また、この際には、ネットワーク500のいずれかのノード又はその外部のノードが生成した一組の秘密鍵シェアを各ノードに与えるのではなく、各秘密鍵シェアが各ノードにおいて分散して生成可能であることが望ましい。
 また、上述の説明では、j番目のノードにおける公開鍵シェアPKj及び秘密鍵シェアSKjを例に説明したが、i番目のノードを中心にそこで行われる処理を記述する場合には、当然ではあるが、添え字が適宜変更されることを付言する。
 図7に、本発明の一実施形態にかかるブロックの採択についての確定方法の流れを示す。セットアップが完了した状態から、第1のノード510が、ブロックを生成して当該ブロックを含む第1のメッセージを合意形成に参加するN個のノードに送信する(S701)。送信ノードも自ら当該ブロックを受信することができる。ここで、ノード間では、メッセージが直接的又は間接的に送受信可能であり、ネットワーク100を構成する他のノードに合意形成に関連するデータを伝え、また、他のノードからデータを受け取ることができる。
 第1のメッセージを受信した各ノードは、それぞれが有するプログラムに定められた合意形成のルールに基づいて、当該ブロックの有効性を評価する(S702)。有効性の評価の詳細は、送信者が正当な送信ノードであるか、ブロックのデータ形式が用途に応じた所定の形式その他の所定の条件を満たしているか、分岐が生じていないかなど、さまざまなルールを含むことができ、ノードによって異なるルールが存在してもよい。また、有効性の評価を行う上で、他のノードとのメッセージの送受信を必要としてもよい。
 有効と評価された場合、当該ノードは、当該ノードがアクセス可能な秘密鍵シェアf(xi)による合意形成対象のブロックのハッシュ値hに対する署名siを有する第2のメッセージを各ノードに送信する(S703-1)。署名は、当該ノードに与えられた秘密鍵シェアをハッシュ値に乗じることによって行うことができる。送信先には、自ノードを含めてもよい。無効と評価された場合には、当該ブロックは却下される(S703-2)。
 j番目のノードにおいてk個の署名が集まった後、当該ノードは、これらの署名を合成して、公開鍵PKに対応する署名を生成する(S704)。具体的には、各ノードは、定期的又は断続的に、k/Nの条件が充足されたか否かを判定し、充足された場合には、受け取ったk個又はk個以上の秘密鍵シェアによる署名から、f(0)・hを公開鍵PKに対応する秘密鍵SKによる署名SK・hとして算出することができる。ここでは、(k-1)次多項式f(x)は、k個以上の点(xi,f(xi))が既知であれば一意に定めることができ、f(0)の値を未知の秘密鍵SKの値と考えられることを用いている。k個の署名からk個の点(xi,f(xi)・h)が既知であれば、関数f(x)・hが定まることになる。f(0)・hの算出は、たとえば、ラグランジュ補間を用いて行うことができる。
 なお、公開鍵PKは、k個以上の点(xj,PKj)=(xj,f(xj)・g1)から、たとえば、ラグランジュ補間によって算出可能であり、これはセットアップの段階で行っておいて必要に応じて配布しておいてもよいし、署名の検証を行うネットワーク500の内部又は外部のノード又は装置が検証時又は検証前にk個の公開鍵シェアPKjに基づいて生成してもよい。
 そして、必要であれば、生成された単一の署名SK・hが他のノードにブロードキャスト乃至送信される(S705)。既にk個以上のノードによる有効性の評価が済んでいることから、合成に成功した時点でブロックを当該ノードが有するブロックチェーンに追加可能としてもよいが、一例として、合成に成功したノードは他のノードに当該合成後の署名を送信し、そして、所定の数以上の合成後の署名を受け取ったことに応じて、各ノードはブロックを追加可能としてもよい。
 最後に、合意形成対象のブロックは、署名SK・hが付加されて各ノードのブロックチェーンに追加される(S706)。これにより、当該ブロックのネットワーク700における採択が確定する。
 上述の説明では、各ノードに1つの秘密鍵シェアが与えられる場合を考えているが、1つのノードに与えるシェア数を複数とすることも考えられる。また、上述の説明では、有効性の評価対象となるブロックの詳細について触れていないが、1又は複数のトランザクションを含むものとすることができ、あるいは、任意の1又は複数のデータを含むとすることもできる。そして、必ずしもチェーンを形成しない1又は複数のデータに対する複数のノードを有するコンピュータ・ネットワークによる有効性の評価につき、本発明の精神を適用することも可能である。
 ペグ署名の詳細
 ペグ署名404は、第1の部分ネットワーク110におけるブロックの採択にかかる合意形成に用いられる合意アルゴリズムと同一又はこれに対応する合意アルゴリズムによって生成することができる。あるいは、第1の部分ネットワーク110におけるブロックの採択で採用される合意アルゴリズムとは異なる合意アルゴリズムによって生成することができる。
 いずれの場合においても、ペグ署名404は、一例として、ペグトランザクション400又はその一部のハッシュ値に対する1又は複数の秘密鍵による1又は複数の署名とすることができる。ペグトランザクション400を受信した第2の部分ネットワーク120では、ペグトランザクション400の受信時又はペグトランザクション400を含むブロックの生成時に、ペグ署名404の有効性を検証する。
 この方式であると、ブロックの採択のために一度合意形成がなされているにもかかわらず、当該ブロックに含まれる、移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないすべてのトランザクションについて、それらに対応するペグトランザクション400を生成し、それぞれについて第1の部分ネットワーク110として署名するための合意形成を行わなければならない。部分ネットワークの数が増えれば増えるほど、移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないトランザクションの数も増え、合意形成処理が増加することとなる。
 そのため、別方式では、マークルツリーを用いる。ペグ署名404を生成するために、まず、第1の部分ネットワーク110において追加されたブロックに含まれる複数のトランザクション又は当該トランザクションのうちの移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しないトランザクションに基づくマークルツリーのマークルルートを算出する。そして、当該マークルルートに対する秘密鍵による署名をペグ署名404とする。
 ペグトランザクション400は、移転先識別子が第1の部分ネットワーク110で処理可能な移転元識別子に一致しない通常トランザクション200に対応し、ペグ署名404に加えて、ペグ署名404の有効性を検証するために必要な1又は複数のノードにかかるマークルツリーデータMが付加される。ここで、本明細書において「マークルツリーデータ」とは、マークルツリーを構成する1又は複数のノードのデータであり、具体的には、1又は複数のハッシュ値である。ペグトランザクション400は、通常トランザクション200に一致するか通常トランザクション200を含むデータであり、ペグトランザクション400又はその一部のハッシュ値を生成し、当該ハッシュ値とペグトランザクション400と共に受信したマークルツリーデータMとを用いてマークルルートを算出して、ペグ署名404が当該マークルルートに対する署名であるか否かを第1の部分ネットワーク110の公開鍵を用いて検証を行うことができる。一例として、暗号方式はECDSAを用いることができる。ECDSAの場合には、公開鍵を署名から計算可能である。
 図9に、マークルツリーの一例を示す。第1の部分ネットワーク110において、4つのトランザクションを含むブロックが追加されたものとする。そして、第2のトランザクションtx2に対応するペグトランザクション400が第2の部分ネットワーク120に送信されるものとする。この場合、ペグトランザクション400又はその一部のハッシュ値として第2のトランザクションtx2のハッシュ値が得られるから、ノード1のハッシュ値とノード6のハッシュ値とをマークルツリーデータMとしてペグトランザクション400に付加しておけば、第2の部分ネットワーク120においてノード7のマークルルートを算出することができる。
 第1の部分ネットワーク110において追加されたブロックに対する署名が、当該ブロックのブロックヘッダに対する署名であり、当該署名に当該ブロックのマークルツリーのマークルルートが含まれていれば、ブロックに対する署名をそのままペグ署名404として用いることができる。ペグトランザクション400にはこの場合、マークルツリーデータMに加えて、当該ブロックヘッダ又は当該ブロックヘッダからマークルツリールートを除いたデータBを付加し、第2の部分ネットワーク120において、ブロックヘッダを生成して、ペグ署名404が当該ブロックヘッダに対する署名であるか否かを第1の部分ネットワーク110の公開鍵を用いて検証を行うことができる。
 さらに別方式として、第1の部分ネットワーク110において追加されたブロック全体をペグトランザクション400として第2の部分ネットワーク120に送信することが考えられる。この場合、当該ブロックには、移転先識別子が、第2の部分ネットワーク120で処理可能な移転元識別子に一致しないトランザクションが含まれるため、不必要なデータを送信することとなるものの、第1の部分ネットワーク110におけるペグトランザクション400への追加的な署名を省略し、ブロックの採択についての合意形成において付加された署名をそのままペグ署名404と考えることができる。
 この方式では、当該ブロック(「第1のブロック」に相当)を受信した第2の部分ネットワーク120において、当該ブロックに含まれる、移転先識別子が、第2の部分ネットワーク120で処理可能な移転元識別子に一致する1又は複数のトランザクション又はこれらの対応するトランザクションを含むブロック(「第2のブロック」に相当)を生成し、合意形成の対象とする。
 100 分散ネットワーク
 110 第1の部分ネットワーク
 111 第1の部分ネットワークのノード
 111A 通信部
 111B 処理部
 111C 記憶部
 120 第2の部分ネットワーク
 130 第3の部分ネットワーク
 140 ユーザー端末
 200 通常トランザクション
 201 移転元識別子
 202 移転先識別子
 203 資産
 204 署名
 400 ペグトランザクション
 401 移転元識別子
 402 移転先識別子
 403 資産
 404 ペグ署名
 500 ネットワーク
 510 第1のノード
 511 通信部
 512 処理部
 513 記憶部
 520 第2のノード
 530 第3のノード
 540 第4のノード
 550 第5のノード
 B ブロックヘッダ又は又はブロックヘッダからマークルツリールートを除いたデータ
 M マークルツリーデータ
 1乃至7 マークルツリーのノード

Claims (10)

  1.  複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、
     前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、
     前記第1のトランザクションを含むブロックを生成するステップと、
     前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、
     前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップと
    を含むことを特徴とする方法。
  2.  前記第1のトランザクションは、前記移転元識別子の秘密鍵による署名が付加されていることを特徴とする請求項1に記載の方法。
  3.  移転される前記資産の額は、正の値であることを特徴とする請求項1又は2に記載の方法。
  4.  前記第2のトランザクションは、前記第1の部分ネットワークにおいて合意形成がなされたことを示す署名が付加されていることを特徴とする請求項1から3のいずれかに記載の方法。
  5.  前記第2のトランザクションの署名は、単一の署名であることを特徴とする請求項4に記載の方法。
  6.  前記第2のトランザクションの署名は、前記ブロック内の前記第1のトランザクションを含む複数のトランザクションに基づくマークルツリーのマークルルートを含むブロックヘッダに対する署名であることを特徴とする請求項4又は5に記載の方法。
  7.  複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードに、前記複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法を実行させるためのプログラムであって、前記方法は、前記ノードが、
     前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、
     前記第1のトランザクションを含むブロックを生成するステップと、
     前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、
     前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップと
    を含むことを特徴とするプログラム。
  8.  複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶するための、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードであって、
     前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含むブロックを生成し、
     前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、
     前記ブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信することを特徴とするノード。
  9.  複数の部分ネットワークを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法であって、前記複数の部分ネットワークのうちの第1の部分ネットワークを構成するノードが、
     前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信するステップと、
     前記第1のトランザクションを含む第1のブロックを生成するステップと、
     前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新するステップと、
     前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信するステップとを含み、前記第2の部分ネットワークを構成するノードが、
     前記第2のトランザクションを受信するステップと、
     前記第2のトランザクションを含む第2のブロックを生成するステップと、
     前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新するステップと
    を含むことを特徴とする方法。
  10.  資産の移転を表すトランザクションを記憶するための複数の部分ネットワークを有する分散ネットワークであって、
     前記複数の部分ネットワークのうちの第1の部分ネットワーク及び第2の部分ネットワークを備え、
     前記第1の部分ネットワークを構成するノードが、
     前記第1の部分ネットワークで処理可能な移転元識別子から前記第1の部分ネットワークで処理可能ではない移転先識別子への資産の移転を表す第1のトランザクションを受信して、前記第1のトランザクションを含む第1のブロックを生成し、
     前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記移転元識別子の資産の状態を更新し、
     前記第1のブロックの採択についての前記第1の部分ネットワークにおける合意形成後、前記第1のトランザクションにより表される前記移転先識別子への前記資産の移転を反映させるための第2のトランザクションを、前記第1のトランザクションの前記移転先識別子と一致する移転元識別子を処理可能な第2の部分ネットワークに送信し、
     前記第2の部分ネットワークを構成するノードが、
     前記第2のトランザクションを受信して、前記第2のトランザクションを含む第2のブロックを生成し、
     前記第2のブロックの採択についての前記第2の部分ネットワークにおける合意形成後、前記第2のトランザクションの移転先識別子の資産の状態を更新することを特徴とする分散ネットワーク。
PCT/JP2020/003840 2019-02-03 2020-02-02 分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム Ceased WO2020158953A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/428,232 US20220172180A1 (en) 2019-02-03 2020-02-02 Method for Storing Transaction that Represents Asset Transfer to Distributed Network and Program for Same
EP20748648.1A EP3920464A4 (en) 2019-02-03 2020-02-02 METHOD AND PROGRAM FOR STORING A TRANSACTION REPRESENTING A CONNECTION ESTABLISHMENT TO A DISTRIBUTED NETWORK
CN202080026817.XA CN113661683B (zh) 2019-02-03 2020-02-02 在分布式网络中存储表示资产转移的交易的方法及其程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019017542A JP2020127100A (ja) 2019-02-03 2019-02-03 複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノード
JP2019-017542 2019-02-03

Publications (1)

Publication Number Publication Date
WO2020158953A1 true WO2020158953A1 (ja) 2020-08-06

Family

ID=71840048

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/003840 Ceased WO2020158953A1 (ja) 2019-02-03 2020-02-02 分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム

Country Status (5)

Country Link
US (1) US20220172180A1 (ja)
EP (1) EP3920464A4 (ja)
JP (1) JP2020127100A (ja)
CN (1) CN113661683B (ja)
WO (1) WO2020158953A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112884579A (zh) * 2021-02-08 2021-06-01 京东数科海益信息科技有限公司 区块链交易共识方法和装置
CN114693437A (zh) * 2022-05-31 2022-07-01 浙江数秦科技有限公司 一种基于企业经营数据限时共享的贷款审批系统

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200334677A1 (en) * 2019-04-16 2020-10-22 Nokia Solutions And Networks Oy Transparent blockchain sidechains to support blockchain processing heterogeneity
GB2596072A (en) 2020-06-15 2021-12-22 Nchain Holdings Ltd Generating secret shares
EP4150859B1 (en) * 2020-06-29 2024-03-13 J&A Garrigues, S.L.P. Methods and system for issuing an electronic signature
US12160402B2 (en) * 2020-06-30 2024-12-03 Interdigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to messaging through blockchain networks
EP4173184A1 (en) 2020-06-30 2023-05-03 InterDigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to enablers for blockchain-enabled wireless systems
GB2603495A (en) * 2021-02-05 2022-08-10 Nchain Holdings Ltd Generating shared keys
GB2606169A (en) 2021-04-27 2022-11-02 Nchain Licensing Ag Nested threshold signatures
GB2609908B (en) 2021-08-09 2023-10-18 Nchain Licensing Ag Generating Digital signatures
GB2612309A (en) 2021-10-26 2023-05-03 Nchain Licensing Ag Threshold signature scheme
US20230376918A1 (en) * 2022-03-30 2023-11-23 chaya Gangadarappa Blockchain-based digital payments platform

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107528886A (zh) * 2017-07-25 2017-12-29 中国科学院计算技术研究所 区块链全网拆分方法与系统
JP6389542B1 (ja) * 2017-03-21 2018-09-12 株式会社大和総研ビジネス・イノベーション 取引記録システムおよびプログラム
WO2018215951A1 (en) * 2017-05-26 2018-11-29 nChain Holdings Limited Script based blockchain interaction

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015147974A1 (en) * 2014-03-26 2015-10-01 Exxonmobil Upstream Research Company System and method for the conditioning of recirculated exhaust gas
US10097356B2 (en) * 2015-07-02 2018-10-09 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
CN106780032A (zh) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 一种多链场景下的区块链链间资产转移方法
CN107301536B (zh) * 2017-06-12 2019-07-12 腾讯科技(深圳)有限公司 资源转移方法及装置
CN107742210A (zh) * 2017-10-13 2018-02-27 布比(北京)网络技术有限公司 一种不同区块链间的跨链转账系统和方法
EP3896901B1 (en) * 2020-04-17 2024-08-14 UVUE Limited Distributed computer system and method of operation thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6389542B1 (ja) * 2017-03-21 2018-09-12 株式会社大和総研ビジネス・イノベーション 取引記録システムおよびプログラム
WO2018215951A1 (en) * 2017-05-26 2018-11-29 nChain Holdings Limited Script based blockchain interaction
CN107528886A (zh) * 2017-07-25 2017-12-29 中国科学院计算技术研究所 区块链全网拆分方法与系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HIGASHIKADO, YOSHIKI ET AL.: "A Study on Certificate Management in Consortium Chain", 2017 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY(SCIS2017), no. 1F2-3, 24 January 2017 (2017-01-24), pages 1 - 4, XP009518735 *
MASAKI INAMURA, WATANABE RYU, TANAKA TOSHIAKI, DIFFIE GAP: "Proposal and Evaluation of a Hierarchical Multisignature Adapted to Browsing Verification of a Document for Circulating", IEICE B TRANSACTIONS ON COMMUNICATIONS, vol. J93-B, no. 10, 1 October 2010 (2010-10-01), pages 1378 - 1387, XP055727946 *
See also references of EP3920464A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112884579A (zh) * 2021-02-08 2021-06-01 京东数科海益信息科技有限公司 区块链交易共识方法和装置
CN114693437A (zh) * 2022-05-31 2022-07-01 浙江数秦科技有限公司 一种基于企业经营数据限时共享的贷款审批系统

Also Published As

Publication number Publication date
EP3920464A1 (en) 2021-12-08
US20220172180A1 (en) 2022-06-02
CN113661683A (zh) 2021-11-16
CN113661683B (zh) 2024-10-01
JP2020127100A (ja) 2020-08-20
EP3920464A4 (en) 2022-10-26

Similar Documents

Publication Publication Date Title
WO2020158953A1 (ja) 分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム
JP6651042B1 (ja) 複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノード
JP7101031B2 (ja) ブロックチェーン・ネットワーク及びそのための確定方法
JP7679377B2 (ja) アイデンティティ(id)ベース公開鍵生成プロトコル
CN110719159B (zh) 抗恶意敌手的多方隐私集合交集方法
CN110419053B (zh) 用于信息保护的系统和方法
Roos et al. Settling payments fast and private: Efficient decentralized routing for path-based transactions
Asharov et al. Privacy-preserving interdomain routing at internet scale
CN102187615B (zh) 生成加密密钥的方法、网络
CN110945831B (zh) 抗Sybil攻击身份的生成
CN112260836A (zh) 一种基于分片技术提升区块链吞吐量的方法
CN111342962A (zh) 一种验证密文消息范围的方法和系统
TW202231018A (zh) 識別阻斷服務攻擊之技術
CN115378604A (zh) 一种基于信誉值机制的边缘计算终端设备的身份认证方法
CN114615642A (zh) 车车通信中车辆的身份认证方法、装置、车辆及存储介质
CN118282605A (zh) 基于分片混淆的数据传输方法及系统
CN112260834B (zh) Ad Hoc网络中基于区块链的密钥生成和管理方法
CN112529550B (zh) 一种基于区块链的匿名转账方法及装置、电子设备
JP6478361B1 (ja) ブロックチェーン・ネットワーク及びそのための確定方法
TWI759138B (zh) 基於輸入密碼的門檻式簽章系統及其方法
JP2016105567A (ja) ゼロ知識証明システム及び方法、証明者装置、検証者装置並びにプログラム
US20170250822A1 (en) Method of managing implicit certificates using a distributed public keys infrastructure
CN115917547A (zh) 用于分布式数据库的共识方法
JP2010186003A (ja) 電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム
CN119675880B (zh) 基于金融联盟链的秒杀数据处理方法、装置、设备、介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20748648

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2020748648

Country of ref document: EP