A reserve contract method that generates one transaction in response to multiple contract requests
Through the Pedersen submission method and zero-knowledge proof algorithm, medium and large submission values and large random values are generated, which solves the problem of time-consuming zero-knowledge proof algorithm in multiple reserve verification and updates, and realizes rapid transaction generation and efficient verification of multiple reserves.
Patent Information
- Application Number
- JP2023218662
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-25
- Publication Date
- 2025-02-07
- Estimated Expiration
- 2043-12-25
AI Technical Summary
The existing zero-knowledge proof algorithms take a long time to generate transactions, making it difficult to efficiently handle the verification and update of multiple contract reserves.
The Pedersen submission method is adopted to receive multiple contract requests, use verification keys to mix multiple reserves, generate medium and large submission values and large random values, combine the zero-knowledge proof algorithm to generate proof values, and transmit them as transactions, and accelerate the verification process using the tree structure.
It realizes processing multiple reserve contracts through a single transaction, significantly improving transaction generation speed and being able to quickly verify the integrity of multiple reserves.
Smart Images

Figure 0007627924000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a reserve contract method for generating one transaction in response to multiple contract requests. [Background technology]
[0002] In finance, a reserve is an asset held by a company for various purposes, and generally includes maintaining an amount that is exactly equal to customer deposits. The entity that receives such deposits from customers updates the reserve and generates a transaction to reflect this in a smart contract. The transaction includes a proof value to prove the reserve, and a zero-knowing proving algorithm is used to generate this proof value.
[0003] A zero-knowledge proof algorithm is an algorithm that verifies the integrity of a message without verifying the message (e.g., the reserve). However, the time required for such a zero-knowledge proof algorithm results in a long time required for generating transactions. Summary of the Invention [Problem to be solved by the invention]
[0004] One object of the present invention is to provide a method for contracting multiple reserves using a single transaction using Pedersen Commit.
[0005] It is yet another object of the present invention to provide a method for performing verification of multiple contracted reserves using Pedersen Commit. [Means for solving the problem]
[0006] A reserve contract method performed by at least one processor according to an embodiment of the present disclosure may include receiving a plurality of contract requests for a plurality of reserves; acquiring a mid large commit value based on the plurality of reserves and a plurality of random values using a verify key; generating a hash value based on the mid large commit value; generating a large reserve value from the plurality of reserves based on the hash value; generating a large random value based on the plurality of random values based on the hash value; acquiring a proof value using the mid large commit value, the large reserve value, and the large random value using a zero-knowledge proof algorithm; and transmitting the proof value as a transaction, wherein the mid large commit value has a Pedersen commit form.
[0007] In one embodiment, the step of obtaining the mid-large commit value may include the steps of obtaining the random values corresponding to the contract requests from a reserve database, respectively, and calculating the mid-large commit value by exponentiating the reserves and the random values for each of the key values included in the verify key.
[0008] In one embodiment, the plurality of contract requests include a first contract request and a second contract request, and a first reserve m0 and a first random value r0 corresponding to the first contract request, a second reserve m1 and a second random value r1 corresponding to the second contract request, and a third key value g3, a fourth key value g4, a fifth key value g5, and a sixth key value g6 included in the verify key, mid may be characterized in that it is generated based on the following mathematical formula:
number
[0009] In one embodiment, the reserve contract method may further include a step of obtaining a random value corresponding to the plurality of contract requests based on a reserve database, a step of obtaining a plurality of commit values corresponding to each of the plurality of reserves using the verify key, and a step of including the plurality of commit values in the transaction and transmitting the transaction.
[0010] In one embodiment, the multiple contract requests include a first contract request and a second contract request, and a first reserve m0 and a first random value r0 corresponding to the first contract request, a second reserve m1 and a second random value r1 corresponding to the second contract request, and a first key value g1 and a second key value g2 included in the verify key, the first commit value cm0 corresponding to the first contract request and the second commit value cm1 corresponding to the second contract request can be characterized in that they are generated based on the following mathematical formula:
number
[0011] In one embodiment, the reserve database includes information on a plurality of account-specific addresses, reserves, random values, and commit values, and the reserve contract method may further include a step of obtaining an address corresponding to the plurality of contract requests from the reserve database and a step of including the address in the transaction and transmitting the address.
[0012] In one embodiment, the step of generating a large reserve value from the plurality of reserves may include the steps of exponentiating the hash value to correspond to the binary of an index for each of the plurality of reserves, and obtaining the large reserve value by multiplying each of the plurality of reserves by the exponentiated hash value.
[0013] In one embodiment, the plurality of reserves may include a first reserve m0, a second reserve m1, a third reserve m2 and a fourth reserve m3, and the large reserve value M for the hash value γ may be generated based on the following mathematical formula:
number
[0014] In one embodiment, generating a large random value from the plurality of random values may include exponentiating the hash value to a power corresponding to a binary of an index for each of the plurality of random values, and obtaining the large random value by multiplying each of the plurality of random values by the exponentiated hash value.
[0015] In one embodiment, the plurality of random values may include a first random value r0, a second random value r1, a third random value r2 and a fourth random value r3, and the large random value R for the hash value γ may be generated based on the following mathematical formula:
number
[0016] A reserve contract method performed by at least one processor according to an embodiment of the present disclosure may include receiving a transaction corresponding to a plurality of contract requests, obtaining a hash value using a mid-large commit value included in the transaction, obtaining a high-large commit value using the hash value, obtaining a low-large commit value using the hash value, obtaining a large commit value based on the high-large commit value, the mid-large commit value, and the low-large commit value, verifying integrity of the large commit value using a zero-knowledge proof algorithm, and if the integrity is verified, updating a commit value list using a plurality of commit values included in the transaction.
[0017] In one embodiment, obtaining a high large commit value using the hash value may include obtaining the high large commit value by exponentially computing the hash value with the verify key.
[0018] In one embodiment, the step of obtaining a roll read commit value using the hash value may include obtaining a plurality of commit values from the transaction, exponentiating the hash value to correspond to a binary of an index for each of the plurality of commit values, and obtaining the roll read commit value by exponentiating each of the plurality of commit values to the exponentiated hash value using a tree structure.
[0019] In one embodiment, the plurality of commit values includes a first commit value cm0, a second commit value cm1, a third commit value cm2, and a fourth commit value cm3, and the rollover commit value CM for the hash value γ low may be characterized in that it is generated based on the following mathematical formula:
number
[0020] In one embodiment, the step of obtaining the roll read commit value may include the steps of sequentially arranging the plurality of commit values in leaf nodes of the tree structure, exponentiating the i-th power of the hash value for a commit value connected to a node having an even index among nodes at the i (i is a natural number) level of the tree structure, and obtaining the roll read commit value by multiplying all the commit values on which the exponentiation has been performed.
[0021] In one embodiment, the transaction may include an address, and updating the commit value list may include updating an original commit value included at the address in the commit value list using the plurality of commit values. Effect of the Invention
[0022] According to the technical idea of the present invention, multiple reserves are contracted through a single transaction using the Pedersen commit, and verification of the multiple reserves is also performed using the properties of the Pedersen commit, thereby dramatically increasing the speed at which a transaction corresponding to a single reserve is generated while smoothly carrying out the contract and verification processes. [Brief description of the drawings]
[0023] [Figure 1] FIG. 1 is a block diagram illustrating a reserve managing system according to an exemplary embodiment of the present disclosure. [Diagram 2] 1 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. [Diagram 3] 1 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. [Figure 4] 1 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. [Diagram 5] 1 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. [Figure 6] 1 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. [Figure 7] 1 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. [Figure 8] 1 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. [Figure 9] 1 is a diagram illustrating a reserve verification method using a tree structure according to an exemplary embodiment of the present disclosure. [Figure 10] FIG. 1 is a block diagram illustrating a computing system according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0024] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and methods for achieving the same, will become apparent from the following detailed description of the embodiments with reference to the accompanying drawings. However, the technical idea of the present invention is not limited to the following embodiments, and may be embodied in various different forms. However, the following embodiments are provided to complete the technical idea of the present invention and to fully inform those skilled in the art of the present invention of the scope of the present invention, and the technical idea of the present invention is only defined by the scope of the claims.
[0025] In attaching reference numerals to components in each drawing, it should be noted that the same components are assigned the same numerals as much as possible even if they are displayed in different drawings. In addition, in describing the present invention, if it is determined that a detailed description of related known configurations or functions may obscure the gist of the present invention, the detailed description thereof will be omitted.
[0026] Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used in the sense commonly understood by those having ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless specifically defined. The terms used herein are intended to describe the embodiments and are not intended to limit the present invention. In the present specification, the singular form includes the plural form unless otherwise specified in the text.
[0027] In addition, in describing components of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used. Such terms are merely used to distinguish the components from other components, and do not limit the nature, order, or sequence of the components. When a component is described as being "coupled," "coupled," or "connected" to another component, it should be understood that the component may be directly coupled or connected to the other component, but that other components may also be "coupled," "coupled," or "connected" between each component.
[0028] As used herein, "comprises" and / or "comprising" does not exclude the presence or addition of one or more other components, steps, operations and / or elements to a stated component, step, operation and / or element.
[0029] Components having a common function to components included in one embodiment may be described using the same names in other embodiments. Unless otherwise stated, the description of one embodiment may be applied to other embodiments, and detailed description may be omitted to the extent that it overlaps or is obvious to a person of ordinary skill in the art.
[0030] Hereinafter, some embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0031] The present invention will now be described in detail with reference to preferred embodiments thereof and the accompanying drawings.
[0032] FIG. 1 is a block diagram illustrating a reserve managing system according to an exemplary embodiment of the present disclosure.
[0033] Referring to FIG. 1, the reserve managing system 10 can contract a reserve and perform auditing or verification of the contracted reserve, and for this purpose can include a reserve trustee 100, a smart contract network, and a number of user devices 210-230.
[0034] The reserve trustee 100 may be managed by a trustee that receives the reserve and manages the entrusted reserve, and the trustee may include a bank or an exchange, for example. In addition, in this specification, a reserve is an asset owned by a user, and may mean a financial asset or a physical asset that is deposited or entrusted to a trustee, and may mean a deposit, for example. The user devices 210 to 230 may entrust the reserve owned by the user to a trustee that manages the reserve trustee 100.
[0035] The reserve trustee 100 and the user devices 210 to 230 may include various terminal devices capable of communication, such as a cellular phone, a smart phone, a laptop, a personal computer (PC), a navigation system, a personal communication system (PCS), a global system for mobile communications (GSM), a personal digital cellular (PDC), a personal handyphone system (PHS), a personal digital assistant (PDA), an international mobile telecommunication (IMT)-2000, a code division multiple access (CDMA)-2000, a W-code division multiple access (W-CDMA), a wireless broadband internet (Wibro) terminal, a smartpad, a tablet PC, etc. In yet another example, the reserve trustee 100 and the user devices 210 to 230 may be embodied as a server.
[0036] The reserve trustee 100 and the user devices 210-230 may be connected via a network NW capable of communicating with each other wired or wirelessly. When connected wired, the network NW may use a serial method, and when connected wirelessly, the network NW may communicate using a wireless communication network. Examples of wireless communication networks include, but are not limited to, local area networks (LAN), wide area networks (WAN), the World Wide Web (WWW), wired and wireless data communication networks, telephone networks, wired and wireless television communication networks, 3G, 4G, 5G, 3GPP (registered trademark: 3rd Generation Partnership Project), 5GPP (5th Generation Partnership Project), LTE (Long Term Evolution), WIMAX (World Interoperability for Microwave Access), Wi-Fi, the Internet, local area networks (LAN), wireless local area networks (Wireless LAN), wide area networks (WAN), personal area networks (PAN), radio frequency (RF), Bluetooth (registered trademark) networks, near-field communication (NFC) networks, satellite broadcasting networks, analog broadcasting networks, digital multimedia broadcasting (DMB) networks, and blockchain networks.
[0037] The user devices 210 to 230 may have their own accounts (e.g., accounts) and may deposit reserves in their own accounts. In one embodiment, the user devices 210 to 230 may transmit contract requests Req1 to Req3 to the reserve depositor 100 to deposit reserves or to update the reserves. In one example, the first contract request Req1 may be a request to deposit additional reserves, the second contract request Req2 may be a request to withdraw reserves, and the third contract request Req3 may be a request to deposit new reserves.
[0038] The reserve trustee 100 can calculate a commitment value corresponding to the reserve based on the contract requests Req1 to Req3 of the user devices 210 to 230. In this specification, the commitment value may mean a value converted into a Pederson Commit form based on the reserve, a verify key (ck) and a random value.
[0039] In one embodiment, the reserve trustee 100 may perform a zero-knowledge proving algorithm on the reserve during the contract process. In this specification, a zero-knowledge proving method is a method for verifying the integrity of a message without checking the message (e.g., the reserve / commit value), and in one example, zk-SNARK (zero-knowledge SNARK), cc-SNARK (commit carrying SNARK), and Groth16 may be used as the zero-knowledge proving method.
[0040] The reserve trustee 100 may generate a proof value using multiple reserves corresponding to multiple contract requests, respectively. In one embodiment, the reserve trustee 100 may calculate a mid-large commit value using a verify key and multiple reserves, generate a proof value based on the mid-large commit value, and transmit a transaction including the proof value, multiple commit values, and an address to a smart contract.
[0041] According to the technical idea of the present disclosure, it is possible to generate one proof value corresponding to multiple reserves rather than one proof value corresponding to one reserve, which can result in a significant reduction in the time required to generate the proof value and enable high-speed transactions.
[0042] The smart contract NW receives a transaction tx, uses the proof value included in the transaction tx to verify the integrity of multiple commit values included in the transaction tx, and if the integrity is verified, it can update the commit value list (DB_cm) using the multiple commit values.
[0043] According to one embodiment of the present disclosure, the smart contract NW can utilize a large commit value corresponding to multiple reserves to verify multiple commit values at once, which may result in reduced time required for verification.
[0044] The reserve managing system 10 can upload a commit value in the Pedersen commit format having the exponential form of the verify key onto the smart contract NW. In addition, the reserve managing system 10 can verify the reserve of the reserve trustee 100 based on the additive isomorphism property of the Pedersen commit format. As a result of this verification method, the audit function for the reserve trustee 100 can be improved, and the reserve of the user device 200 can be completely trusted.
[0045] In this specification, the operation of the reserve trustee 100 and the user devices 210 to 230 may refer to the operation performed by the processor included in each component based on a computer program including at least one command stored in a storage device included in each component, and the storage device may include a non-volatile memory, a volatile memory, a flash memory, a hard disk drive (HDD), or a solid state drive (SSD), etc. Also, the processor may include at least one of a central processing unit (CPU), a graphic processing unit (GPU), a neural processing unit (NPU), a RAM, a ROM, a system bus, and an application processor. Also, the operation of the smart contract 300 may refer to the operation of the software and hardware configuration that constitutes the blockchain that constitutes the smart contract.
[0046] 2 is a flow chart illustrating a reserve contracting method according to an exemplary embodiment of the present disclosure. In particular, FIG. 2 may be a reserve contracting method performed by a reserve trustee 100.
[0047] 2, the reserve acceptor 100 may receive a plurality of contract requests Req1 to Req3 from a plurality of user devices 210 to 230 (S110). The contract requests Req1 to Req3 may each correspond to a reserve.
[0048] The reserve trustee 100 can obtain a plurality of random values based on a pre-stored reserve database (S120). In one embodiment, the reserve database can include information on addresses, reserves, random values, and commitment values corresponding to user accounts, and the random values can be determined to be different for each user account.
[0049] The reserve trustee 100 can obtain a mid-large commit value based on a plurality of reserves and a plurality of random values using a verify key (S130). In one embodiment, the verify key can be a pre-disclosed key and can include a plurality of key values. In one embodiment, the mid-large commit value can take the form of a Pedersen commit by being determined in the form of a power of the reserve and random value for each of the plurality of key values. In one example, assuming a natural number n and a plurality of key values g3 to g4 included in the verify key, 2n+2 , multiple reserves m0~m n-1 , multiple random values r0 to r n-1 For Mid-Large Commit CM mid can be determined as shown in Equation 1 below. (mathematical formula 1)
number
[0050] In one example, the verify key is a set of multiple key values (g1 to g 2n+3 ), and the reserve contract method according to the present disclosure may be performed using at least a portion of the plurality of key values. The verify key may be a public key.
[0051] The reserve trustee 100 may obtain a hash value through hashing the mid-large commit value (S140), and may obtain a large reserve value and a large random value based on the obtained hash value (S150, S160). The reserve trustee 100 may also obtain a proof value using the mid-large commit value, the large reserve value, and the large random value by utilizing a zero-knowledge proof algorithm (S170). In one embodiment, the mid-large commit value, the large reserve value, and the large random value may all have a Pedersen commit form, and the reserve trustee 100 may obtain a proof value quickly by utilizing a CC-SNARK.
[0052] The reserve trustee 100 can obtain a plurality of commit values corresponding to a plurality of reserves by using the verify key (S180). In one example, a natural number i, a first key value g1 and a second key value g2 included in the verify key, and the i-th reserve m i , the i-th random value r i For the i-th commit value cm i can be determined as shown in Equation 2 below. (mathematical formula 2)
number
[0053] The reserve trustee 100 can generate multiple commitment values corresponding to multiple contract requests, respectively, using Equation 2. In addition, the reserve trustee 100 can obtain multiple addresses corresponding to multiple reserves, respectively, using the reserve database. The reserve trustee 100 can transmit a transaction tx including the obtained addresses, multiple commitment values, and a proof value to the smart contract NM (S190).
[0054] According to one embodiment of the present disclosure, one mid-large commit value corresponding to multiple reserves is generated, and one transaction is generated using the mid-large commit value. Even if there are multiple contract requests, the commit value list can be updated on the smart contract using one transaction, which may result in high-speed transactions.
[0055] 3 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. In particular, FIG. 3 may illustrate the large reserve value acquisition step (S150) of FIG. 2 in detail.
[0056] 3, the reserve trustee 100 can calculate the binary of an index for each of a plurality of reserves (S151). In this specification, binary may mean a value obtained by expressing a decimal number in binary. For example, the reserve trustee 100 can calculate "0" in the index binary for reserve m0 with index 0, can calculate "1" in the index binary for reserve m1 with index 1, can calculate "10" in the index binary for reserve m2 with index 2, can calculate "11" in the index binary for reserve m3 with index 3, can calculate "100" in the index binary for reserve m4 with index 4, and can calculate "101" in the index binary for reserve m5 with index 5.
[0057] The reserve trustee 100 can raise the hash value γ to a power corresponding to the index binary (S152). It can calculate “1” corresponding to the reserve m0 whose index binary is “0”, calculate “γ” corresponding to the reserve m1 whose index binary is “1”, and calculate “γ” corresponding to the reserve m2 whose index binary is “10”. 2 " and "γ 2 +γ" and "γ" can be calculated for reserve m4, whose index binary is "100". 4 " and "γ 4 +γ" can be calculated.
[0058] The reserve trustee 100 may generate a large reserve value by multiplying the corresponding reserve by the exponentiated hash value and adding all the resulting values (S153). In one example, the large reserve value M for the hash value γ and the reserves (m0 to m5) may be determined as shown in the following mathematical formula 3. (mathematical formula 3)
number
[0059] According to one embodiment of the present disclosure, a reserve contract method may be provided that generates a large reserve value based on an index binary, and while the reserve is divided into hash values, a tree structure may be used in the verification process to increase calculation speed.
[0060] Although FIG. 3 illustrates an example of six reserves, this is merely an example for ease of explanation, and it goes without saying that embodiments of the present disclosure may also be applied to examples in which more or less than six reserves are utilized to generate a large reserve value.
[0061] 4 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. In particular, FIG. 4 may illustrate the large random value acquisition step (S160) of FIG. 2 in detail.
[0062] 4, the reserve trustee 100 may calculate the binary of an index for each of a plurality of reserves (S161). The index binary calculation step (S161) may be the same as or similar to the index binary calculation step (S151) described in FIG.
[0063] The reserve trustee 100 may raise the hash value γ to a power corresponding to the index binary (S162). The hash value calculation step (S162) may be the same as or similar to the hash value calculation step (S152) described in FIG.
[0064] The reserve trustee 100 may generate a large random value by multiplying the exponentiated hash value by the corresponding random value and then adding up all the resulting values (S163). In one example, the large random value R for the hash value γ and the random values (r0 to r5) may be determined as shown in the following mathematical formula 4. (mathematical formula 4)
number
[0065] According to an embodiment of the present disclosure, a reserve contract method may be provided that generates a large random value based on an index binary, and while the random value is divided into hash values, a tree structure may be used in the verification process to increase the calculation speed.
[0066] Although FIG. 4 illustrates an example of six random values, this is merely an example for ease of explanation, and it goes without saying that the embodiments of the present disclosure may also be applied to examples in which more or less than six random values are used to generate a large random value.
[0067] FIG. 5 is a flow chart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure.
[0068] Referring to FIG. 5, the reserve trustee 100 may receive a plurality of contract requests (Req1-Req4) corresponding to a plurality of reserves (m0-m3) from a plurality of user devices. The reserve trustee 100 may update the reserve database (DB_R) based on the account of the user device that received the contract request. In one example, the reserve trustee 100 may update the reserve m0 corresponding to the address (Addr0) in response to the first contract request Req1, and update the commit value (cm0) to correspond to the reserve m0. In a similar manner, the reserve trustee 100 may update a plurality of reserves (m1-m3) and commit values (cm1-cm3).
[0069] The Reserve Trustee 100 determines the Mid-Large Commitment Value (CM_M) based on multiple Reserves (Rsv) and Random Values (RV). mid ) and generate the mid-large commit value (CM_ mid) based on the proof value (Π). The reserve trustee 100 can generate the proof value (Π), multiple commitment values (cm0 to cm3), and multiple addresses (Addr0 to Addr3) as a transaction tx, and transmit the generated transaction tx to the smart contract NW.
[0070] The smart contract network or the nodes that constitute the smart contract network verify the transaction tx, and if the integrity of the proof value (Π) and multiple commit values (cm0 to cm3) is verified as a result, it can update the multiple commit values (cm0 to cm3) in the commit value list (DB_cm) based on the addresses (Addr0 to Addr3) included in the transaction tx.
[0071] According to the technical idea of the present disclosure, multiple contract requests can be quickly executed through a single transaction by proving and verifying multiple commit values through a single transaction and updating the verified multiple commit values on a smart contract.
[0072] 6 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. In particular, FIG. 6 illustrates a method for verifying the integrity of a proof value (Π) using a transaction tx in a smart contract NW.
[0073] 6, the smart contract NW receives a transaction tx (S210) and may obtain a hash value using a mid-large commit value included in the transaction tx (S220). In one embodiment, the smart contract NW may obtain the hash value by hashing the mid-large commit value.
[0074] The smart contract NW can obtain a high large commit value and a low large commit value by using the hash value (S230, S240). In one example, the smart contract NW obtains a high key value (g 2n+3 ), high large commit value (CM high ) can be calculated using the following mathematical formula 5. (mathematical formula 5)
number
[0075] The smart contract NW can obtain a large commit value by using a high large commit value, a mid large commit value, and a low large commit value (S250). high ), Mid-Large Commit Value (CM mid ), Roller Commitment Value (CM low ) the smart contract NW can calculate the large commit value (CM) according to the following mathematical formula 6. (mathematical formula 6)
number
[0076] The smart contract NW can verify the integrity of the large commit value (CM) using a zero-knowledge proof algorithm (e.g., growth 16) (S260). If the integrity of the large commit value (CM) is verified, the smart contract NW can update the commit value list (DB_cm) using multiple commit values included in the transaction tx (S270).
[0077] According to one embodiment of the present disclosure, by verifying the integrity of transaction tx using a large commit value generated based on mid-large commit values corresponding to multiple reserves, verification of multiple commit values can be performed using a single mid-large commit value, which can result in faster verification process.
[0078] 7 is a flowchart illustrating a reserve contract method according to an exemplary embodiment of the present disclosure. In particular, FIG. 7 illustrates in detail the step of generating a roll commit value by using a hash value in the smart contract NW (S240).
[0079] 7, the smart contract NW may obtain a plurality of commit values (S241) and calculate an index binary for each of the plurality of commit values (S242). The index binary calculation step (S242) may be the same as or similar to the index binary calculation step (S151) described in FIG.
[0080] The smart contract NW may raise the hash value γ to a power corresponding to the index binary (S243). The hash value calculation step (S243) may be the same as or similar to the hash value calculation step (S152) described in FIG.
[0081] The smart contract NW can use the tree structure to raise the hash value to the power of each of the multiple commit values (S244). In addition, the smart contract can obtain a rollover commit value by multiplying all the results of the exponentiation (S245). In one example, the rollover commit value (CM low ) can be determined as shown in Equation 7 below. (mathematical formula 7)
number
[0082] According to an embodiment of the present disclosure, a reserve contract method may be provided that can utilize a tree structure by generating a rollback commit value based on an index binary, thereby increasing verification speed.
[0083] Although FIG. 7 illustrates an example of six commit values, this is merely an example for ease of explanation, and it will be appreciated that embodiments of the present disclosure may also be applied to examples in which more or less than six commit values are utilized to generate a rollover commit value.
[0084] Fig. 8 is a flowchart showing a reserve contract method according to an exemplary embodiment of the present disclosure, and Fig. 9 is a diagram showing a reserve verification method using a tree structure according to an exemplary embodiment of the present disclosure. In particular, Fig. 8 illustrates in detail the step of exponentiating a plurality of commitment values using a tree structure (S240).
[0085] Referring to Figure 8, the smart contract NW can arrange multiple commit values to correspond to leaf nodes in order (S244_1). In the example of Figure 9, multiple commit values (cm0 to cm7) can be arranged in order in the leaf node, which is the lowest level, based on the index order.
[0086] Referring again to FIG. 8, the smart contract NW may perform an exponential operation on the i-th power of the hash value for the commit value connected to a node having an even index among the i-level nodes (S244_2).
[0087] In the example of FIG. 9, the commit value (cm1) is linked only to the even-numbered nodes of the first level (LV1). Therefore, cm1 is calculated by exponentially calculating γ, which is the first power of the hash value γ, on the commit value (cm1). γ In addition, since the commit value (cm3) is connected to the even nodes of the first level (LV1) and the second level (LV2), cm3 can be calculated by exponentially calculating γ, which is the first power of the hash value γ, on the commit value (cm3). γ Calculate the square of the hash value γ, γ2 By exponentially calculating the committed value (cm3), 2 In addition, since the commit value (cm7) is connected to the even nodes in the first level (LV1), second level (LV2), and third level (LV3), cm7 can be calculated by exponentially calculating γ, which is the first power of the hash value γ, on the commit value (cm7). γ Calculate the square of the hash value γ, 2 By exponentially calculating the commit value (cm7), γ2 Calculate γ, which is the fourth power of the hash value γ. 4 By exponentially calculating the commit value (cm7), γ4 In a similar manner, the exponential calculations of all the commit values (cm0 to cm7) can be performed.
[0088] Referring again to FIG. 8, the smart contract NW can obtain a rollover commit value by multiplying all the commit values that have undergone exponential calculation (S244_3).
[0089] The higher the degree of the exponent, the higher the amount of calculation required for the exponent calculation of the commit value, and therefore the longer the verification process may take. According to an embodiment of the present disclosure, by converting a hash value into an index binary format and calculating a rollback commit value using a tree structure that can be used in the index binary format, it is possible to prevent the exponent degree of the commit value from becoming excessively high, and the amount of calculation can be minimized, thereby enabling early verification.
[0090] FIG. 10 is a block diagram illustrating a computing system according to an exemplary embodiment of the present disclosure.
[0091] 10, the computing system 1000 may constitute any one of the reserve trustee 100 and the user device 200, and may include a processor 1100, a memory device 1200, a storage device 1300, a power supply 1400, and a display device 1500. Meanwhile, although not shown in FIG. 10, the computing system 1000 may further include a port capable of communicating with a video card, a sound card, a memory card, a USB device, or the like, or communicating with other electronic devices.
[0092] In this manner, the processor 1100, memory device 1200, storage device 1300, power supply 1400 and display device 1500 included in the computing system 1000 can configure any one of the reserve trustee 100 and the user device 200 according to an embodiment of the technical concept of the present invention to perform the reserve contract method and the reserve verification method. Specifically, the processor 1100 can perform the reserve contract method and the reserve verification method detailed in FIGS. 1 to 9 by controlling the memory device 1200, the storage device 1300, the power supply 1400 and the display device 1500.
[0093] The processor 1100 may perform a particular calculation or task. In some embodiments, the processor 1100 may be a microprocessor or a central processing unit (CPU). The processor 1100 may communicate with the memory device 1200, the storage device 1300, and the display device 1500 through a bus 1600 such as an address bus, a control bus, and a data bus. In some embodiments, the processor 1100 may also be coupled to an expansion bus such as a Peripheral Component Interconnect (PCI) bus.
[0094] The memory device 1200 may store data necessary for the operation of the computing system 1000. For example, the memory device 1200 may be implemented with DRAM, mobile DRAM, SRAM, PRAM, FRAM (registered trademark), RRAM, and / or MRAM. The storage device 1300 may include a solid state drive (solid state dr4e), a hard disk drive (hard disk dr4e), a CD-ROM, etc. The storage device 1300 may store programs relating to the reserve contract method and the reserve verification method detailed in FIGS. 1 to 9, application program data, system data, operation system data, etc.
[0095] The display device 1500 is an output means for notifying a user, and can display information about a method for forming a virtual private network to a user. The power supply device 1400 can supply an operating voltage required for the operation of the computing system 1000.
[0096] As described above, exemplary embodiments have been invented in the drawings and the specification. Although specific terms have been used in the description of the embodiments, these terms are merely used for the purpose of describing the technical ideas of the present invention, and are not used to limit the meaning or the scope of the present invention described in the claims. Therefore, a person having ordinary skill in the art will understand that various modifications and equivalent other embodiments are possible. Therefore, the true technical scope of protection of the present invention should be determined by the technical ideas of the appended claims.
[0097] This research (invention) was supported by a grant from the Institute of Information & communications Technology Planning & Evaluation (IITP) funded by the Korean government (MSIT) (No. 2021-0-00532-003, Project name: Blockchain Technology Development for IITP Data Economy, Task name: Blockchain scalability solutions supporting high performance / capacity transactions, Contribution rate: 100%).
Claims
1. A reserve contract method performed by at least one processor, comprising: receiving a plurality of contract requests covering a plurality of reserves; obtaining a mid large commit value based on the plurality of reserves and a plurality of random values using a verify key; generating a hash value based on the mid-large commit value; generating a large reserve value from the plurality of reserves based on the hash value; generating a large random value based on the hash value and based on the plurality of random values; obtaining a proof value using the mid-large commit value, the large reserve value, and the large random value by utilizing a zero-knowledge proof algorithm; and transmitting said proof value as a transaction; The mid-large commit value has a Pedersen commit form.
2. The step of obtaining the mid-large commit value includes: obtaining the random values corresponding to the contract requests from a reserve database; and 2. The reserve contract method of claim 1, further comprising: calculating the mid-large commit value by exponentiating the plurality of reserves and the plurality of random values to each of a plurality of key values included in the verify key.
3. the plurality of contract requests includes a first contract request and a second contract request; A first reserve (m 0 ) and a first random value (r 0 ), a second reserve (m 1 ), and a second random value (r 1 ), a third key value (g 3 ), the fourth key value (g 4 ), the fifth key value (g 5 ), the sixth key value (g 6 ) in The mid-large commit value (CM mid 3. The reserve contract method of claim 2, wherein the reserve contract amount is generated based on the following mathematical formula: ##EQU00013##
4. obtaining random values corresponding to the plurality of contract requests based on a reserve database; deriving a plurality of commit values corresponding to each of the plurality of reserves using the verify key; and 2. The reserve contract method of claim 1, further comprising: transmitting the plurality of commit values in the transaction.
5. the plurality of contract requests includes a first contract request and a second contract request; A first reserve (m 0 ) and a first random value (r 0 ), a second reserve (m 1 ) and a second random value (r 1 ), a first key value (g 1 ), the second key value (g 2 ) in A first commitment value (cm) corresponding to the first contract request 0 ) and a second commitment value (cm 1 5. The reserve contract method of claim 4, wherein the reserve contract amount is generated based on the following mathematical formula: ##EQU14##
6. The reserve database contains information on addresses, reserves, random values, and commit values for multiple accounts. obtaining addresses corresponding to the plurality of contract requests from the reserve database; and 2. The reserve contract method of claim 1, further comprising: transmitting the address in the transaction.
7. The step of generating a large reserve value from the plurality of reserves includes: exponentiating the hash value to a power corresponding to a binary of an index for each of the plurality of reserves; 2. The reserve contract method of claim 1, comprising: obtaining the large reserve value by multiplying each of the plurality of reserves by the exponentiated hash value.
8. The plurality of reserves include a first reserve (m 0 ), Second Reserve (m 1 ), 3rd Reserve (m 2 ) and the fourth reserve (m 3 ), The reserve contract method of claim 7, wherein the large reserve value (M) for the hash value γ is generated based on the following mathematical formula: ##EQU00015##
9. The step of generating a large random value from the plurality of random values comprises: raising the hash value to a power corresponding to a binary of an index for each of the plurality of random values; 2. The reserve contract method of claim 1, comprising: obtaining the large random value by multiplying each of the plurality of random values by the exponentiated hash value.
10. The plurality of random values is a first random value (r 0 ), the second random value (r 1 ), a third random value (r 2 ) and a fourth random value (r 3 ), 10. The reserve contract method of claim 9, wherein the large random value (R) for the hash value γ is generated based on the following mathematical formula: ##EQU00016##
11. A reserve contract method performed by at least one processor, comprising: receiving transactions corresponding to the plurality of contract requests; obtaining a hash value using a mid-large commit value included in the transaction; obtaining a high large commit value by utilizing the hash value; obtaining a roll commit value by utilizing the hash value; obtaining a large commit value based on the high large commit value, the mid large commit value, and the low large commit value; Verifying the integrity of the large commit value utilizing a zero-knowledge proof algorithm; and if the integrity is verified, updating a commit value list using a plurality of commit values included in the transaction.
12. The step of obtaining a high large commit value by utilizing the hash value includes:
12. The reserve contract method of claim 11, comprising: obtaining the high large commit value by exponentiating the hash value to a verify key.
13. The step of obtaining a roll commit value by utilizing the hash value includes: obtaining a plurality of commit values from the transaction; exponentiating the hash value to a power corresponding to a binary of an index for each of the plurality of commit values; 12. The reserve contract method of claim 11, further comprising: obtaining the rollover commit value by exponentiating each of the plurality of commit values to the exponentiated hash value using a tree structure.
14. The plurality of commit values is a first commit value (cm 0 ), second commit value (cm 1 ), the third commit value (cm 2 ) and the fourth commit value (cm 3 ), The roll commit value (CM low 14. The reserve contract method of claim 13, wherein the reserve contract amount is generated based on the following mathematical formula: ##EQU00017##
15. The step of obtaining a roller deviation value includes: sequentially arranging the plurality of commit values at leaf nodes of the tree structure; performing an exponential operation on a commit value connected to a node having an even index among nodes at an i-th level (i is a natural number) of the tree structure, to the i-th power of the hash value; and 14. The reserve contract method of claim 13, further comprising: obtaining the rollover commit value by multiplying all of the commit values that have been subjected to the exponential operation.
16. The transaction includes an address; The step of updating the list of commit values includes 12. The reserve contract method of claim 11, further comprising: updating an original commit value included in the address of the commit value list using the plurality of commit values.
Citation Information
Patent Citations
Information processing apparatus, information processing method and information processing program
JP2023092797A
Information processing system, control method, information processing device, and control program
WO2022144966A1