System and method for securely sharing cryptographic material
Patent Information
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2018-12-12
- Publication Date
- 2023-03-01
- Estimated Expiration
- Not applicable · inactive patent
Smart Images

Figure TWG2TB001694166_001 
Figure TWG2TB001694166_002 
Figure TWG2TB001694166_003
Abstract
Description
[Technical Field] Field of the Invention This invention generally relates to computer security and verification, and more specifically, to techniques that allow multiple parties (e.g., more than two parties) to share a set of elements, the exponent or multiplication coefficient of which depends on a power of a shared secret. Quantities can be shared such that the parties exchange quantities based on the shared secret (e.g., a power of the shared secret) without revealing the shared secret. This invention is particularly suitable for, but not limited to, use in smart contracts, where the parties can be the parties to the smart contract who have agreed on parameters for the smart contract. This invention can utilize cryptographic and mathematical techniques to share quantities for security-related advantages. [Previous Technology] Background of the Invention: A blockchain can refer to a peer-based electronic ledger implemented as a computer-based, decentralized, distributed system composed of blocks, which may in turn consist of transactions and other information. In some instances, a "blockchain transaction" refers to an input message that encodes a structured set of field values containing data and a set of conditions, wherein satisfying the set of conditions is a prerequisite for writing the field set into a blockchain data structure. For example, for Bitcoin, each transaction is a data structure that encodes the transfer of control of a digital asset between participants in the blockchain system and includes at least one input and at least one output. In some embodiments, a "digital asset" refers to binary data associated with a right of use. Examples of digital assets include Bitcoin, Ethereum, and Litecoin. In some implementations, control of a digital asset can be transferred by reassociating at least a portion of a digital asset from a first entity to a second entity. Each block in this blockchain can contain a hash of the previous block, allowing the blocks to be chained together to create a permanent, immutable record of all transactions written to the blockchain since its inception. Transactions contain small programs called scripts embedded in their inputs and outputs, specifying how and by whom the transaction's output can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language. While blockchain technology is widely known for its use in cryptocurrencies, several entrepreneurs have begun exploring new systems that combine the cryptographic security system upon which Bitcoin is based with the data stored on the blockchain. It would be highly advantageous if blockchain could be used for automated tasks and processes beyond the realm of cryptocurrencies. Such solutions would leverage the benefits of blockchain (e.g., a permanent, tamper-proof record of events, decentralized processing, etc.) while becoming more versatile in their applications. This invention describes technical aspects of one or more blockchain-based computer programs. A blockchain-based computer program can be a machine-readable and executable program recorded in a blockchain transaction. The blockchain-based computer program may contain rules that can process input to produce results, and then cause operations to be performed based on those results. One area of current research is using blockchain-based computer programs to implement "smart contracts." Unlike a traditional contract written in natural language, a smart contract can be a computer program programmed to automatically execute a machine-readable contract or agreement clause. [Summary of the Invention] Therefore, by exchanging the amount of a power of a shared secret that can be used to determine between two or more parties, a protocol for multi-party verification of key records on a blockchain is provided. In various embodiments, it may be desirable for two or more parties to a smart contract to exchange the amount of a common reference string that can be used to determine a verification key and a evaluation key. In various embodiments, the techniques described herein allow two or more parties to exchange a power of a shared secret without using cryptographic techniques such as encryption, and without requiring the parties to establish a cryptographically verifiable communication channel necessary to guarantee the confidentiality of the exchanged data. Therefore, the present invention provides an improved security and verification solution. An improved solution has now been devised. Therefore, according to the present invention, systems and methods as defined in the appended claims are provided. According to the present invention, a computer-implemented method for a node in a blockchain network is provided, the computer-implemented method comprising: determining, at one of a plurality of participants, a function that can be used to map elements of a finite field; generating a polynomial to be evaluated in a set of points based on the number of participants; distributing the polynomial to the corresponding participants of the plurality of participants; determining a sum of the polynomials of each of the plurality of participants, wherein the sum corresponds to a power of a secret; and jointly generating a blockchain transaction among the plurality of participants and based on the secret. Preferably, the set of points is an elliptic curve set. Preferably, the determination of the polynomial sum is based on a Lagrange interpolation. One method, as described herein, may further include a common reference string that can be determined by the plurality of participants, at least in part based on the power of the secret. One approach, as described herein, may further include receiving a corresponding value of the polynomial from each of the multiple participants. Preferably, off-chain communication is used when distributing the values of these polynomials to the corresponding participants. Off-chain communication can refer to data communication that is not broadcast by the blockchain network and / or cannot be verified by the blockchain network. Preferably, the function used to map such finite field elements can act as a coefficient or exponent of one of the generators of a group. Preferably, these multiple participants are exactly two participants. The secret can be determined based on the sum of the polynomials that are evaluated at a specific point, such as a point on a specific elliptic curve. This specific point can be an intersection point, such as the sum of the polynomials of each participant constituting the (master) polynomial, and the intersection point of the polynomial with the y-axis is the secret. The set of points excludes the intersection point—in other words, in at least some cases, the intersection point is not a member of the set of points. The polynomials evaluated in this set of points can be at least of order 2. Preferably, each point in the set is a distinct point, such that there are no duplicate points in the set. It is also desirable to provide a system comprising: a processor; and memory including executable instructions that, when executed by the processor, cause the system to perform any of the claimed methods. It is also desirable to provide a non-transitory computer-readable storage medium having executable instructions stored thereon, which, when executed by one or more processors of a computer system, would cause the system to perform any of the claimed methods.
Implementation Method
Claims
1. A computer-implemented method comprising: at each of a plurality of participants: determining a function that can be used to map elements of a finite field; generating polynomials evaluated in a set of points, the number of such polynomials being based on the number of participants; distributing such polynomials to corresponding participants among the plurality of participants; determining a sum of the polynomials of each of the plurality of participants, wherein the sum corresponds to a power of a secret; and jointly generating a blockchain transaction among the plurality of participants and based on the secret.
2. As in request item 1, where the set of points is an elliptic curve set of points.
3. The method of request item 1, wherein the sum of the polynomials is determined based on a Lagrange interpolation.
4. The method of claim 1 further includes, at least in part, determining a common reference string that can be determined by the plurality of participants based on the power of the secret.
5. The method of request item 1 further includes receiving the corresponding value of the polynomial from each of the plurality of participants.
6. The method of request item 1, wherein off-chain communication is used to distribute the values of the polynomials to the corresponding participants.
7. The method of request 1, wherein the function used to map the finite field elements acts as a coefficient or exponent of a generator of a group.
8. The method of request item 1, wherein the plurality of participants are exactly two participants.
9. The method of request 1, wherein the secret is determined based on the sum of the polynomials being evaluated at a specific point.
10. As in request item 9, wherein the specific point is an intersection point.
11. As in request item 1, where the set of points excludes intersections.
12. As in request 1, wherein the polynomials evaluated in the set of points are of at least order 2.
13. As in request item 1, where each point in the set of points is a distinct point.
14. A system comprising: a processor; and memory including executable instructions, wherein, as a result of execution of the executable instructions by the processor, the system performs a computer-implemented method as described in any one of claims 1 to 13.
15. A non-transitory computer-readable storage medium storing executable instructions, which, as a result of execution of such executable instructions by a processor of a computer system, causes the computer system to perform at least one of the computer-implemented methods as claimed in claims 1 to 13.