CN111709742B - Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system - Google Patents

Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system Download PDF

Info

Publication number
CN111709742B
CN111709742B CN202010418135.5A CN202010418135A CN111709742B CN 111709742 B CN111709742 B CN 111709742B CN 202010418135 A CN202010418135 A CN 202010418135A CN 111709742 B CN111709742 B CN 111709742B
Authority
CN
China
Prior art keywords
transaction
receiver
address
public key
initiator
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.)
Active
Application number
CN202010418135.5A
Other languages
Chinese (zh)
Other versions
CN111709742A (en
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202010418135.5A priority Critical patent/CN111709742B/en
Publication of CN111709742A publication Critical patent/CN111709742A/en
Application granted granted Critical
Publication of CN111709742B publication Critical patent/CN111709742B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention relates to a method for preventing root address exposure in a blockchain system, which comprises the steps that a transaction user generates a read key pair and a write key pair respectively; the transaction receiver takes the receiver reading public key and the receiver writing public key as receiver root addresses, generates receiver sub-addresses based on the receiver root addresses, and initiates the receiver sub-addresses to the transaction initiator; the transaction initiator generates a session key pair, and generates change amount output and initiation amount output based on the session key pair, the recipient sub-address, and the initiator address. And the transaction receiver searches and matches the initiating amount output in the transaction information by adopting the transaction public key, the receiver reading key and the own transaction amount. The invention also relates to a computer readable storage medium and a blockchain system. The invention can ensure the safety of the root address of the receiver, thereby further ensuring the safety of the transaction and preventing the root address from being exposed in the blockchain system. The transaction receiver does not need to store the different addresses, so that the transaction safety is further ensured.

Description

Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system
Technical Field
The present invention relates to the field of blockchain, and more particularly, to a method, computer readable storage medium, and blockchain system for preventing root address exposure in a blockchain system.
Background
The blockchain technology is a shared distributed database technology, and the advantages of the blockchain technology are mainly highlighted in the aspects of distributed decentralization, no trust system, non-falsification, encryption security and the like. The system is a technology for maintaining a complete, distributed and non-tamperable account book database by using a decentralization consensus mechanism, and can enable participants in a blockchain to realize a unified account book system on the premise of not establishing trust relationship.
Blockchain wallets are broadly an application that provides an interactive interface for users, controls user access rights, manages keys and addresses, tracks balances, and creates and signs transactions. The secret key comprises a public key and a private key, the private key is generated by a random number seed, and the public key is derived from the private key through an algorithm. Because the public key is too long, for ease and practicality, an address is required, which is a string of numbers and letters that can be shared with anyone who wants to transact with you.
During a transaction, the receiver needs to send its own address to the initiator. Since the address to each initiator is the same, if any one initiation is intercepted by a hacker, resulting in address exposure, there is a significant risk to the security of the recipient's funds.
Disclosure of Invention
The invention aims to solve the technical problems and aims to provide a method, a computer-readable storage medium and a blockchain system for preventing root address exposure in the blockchain system, which can initiate different sub addresses for different transaction originators so as to ensure the root address safety of a receiver and further ensure the transaction safety.
The technical scheme adopted for solving the technical problems is as follows: a method of constructing a blockchain system for preventing root address exposure, comprising the steps of:
s1, a transaction user generates a read key pair and a write key pair respectively; the read key pair comprises a read public key and a read private key, and the write key pair comprises a write public key and a write private key;
s2, the transaction receiver takes the receiver reading public key and the receiver writing public key as receiver root addresses, generates receiver sub-addresses based on the receiver root addresses, and initiates the receiver sub-addresses to the transaction initiator;
s3, the transaction initiator generates a session key pair, wherein the session key pair comprises a transaction public key and a transaction private key, and the transaction initiator generates change amount output and initiation amount output based on the session key pair, the receiver sub-address and the initiator address, wherein the transaction initiator takes an initiator write public key and an initiator read public key as the initiator address;
s4, the transaction initiator writes the transaction public key, the initiated amount output and the change amount output into transaction information and initiates the transaction information into a blockchain system;
s5, the transaction receiver searches and matches the initiating amount output in the transaction information by adopting the transaction public key, the receiver reading key and the self transaction amount.
In the method for preventing root address exposure in a blockchain system of the present invention, the step S1 further includes:
s11, a transaction receiver selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as a receiver reading private key, and then generates the receiver reading public key by elliptic curve multiplication based on the general base point and the receiver reading private key;
s12, a transaction receiver selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as a receiver write private key, and then generates the receiver write public key by elliptic curve multiplication based on the general base point and the receiver write private key;
s13, a transaction initiator selects an elliptic curve, one base point on the elliptic curve is selected as a general base point, a scalar on the elliptic curve is used as an initiator reading private key, and then elliptic curve multiplication is performed based on the general base point and the initiator reading private key to generate the initiator reading public key;
s14, the transaction initiator selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as an initiator write private key, and then generates the initiator write public key by elliptic curve multiplication based on the general base point and the initiator write private key.
In the method for preventing root address exposure in a blockchain system of the present invention, the step S2 further includes:
s21, the transaction receiver takes the receiver reading public key and the receiver writing public key as the receiver root address;
s22, the transaction receiver generates a receiver sub-address based on the receiver root address, the receiver write public key of the old sub-address and the address generation scalar, wherein the receiver sub-address comprises a sub-address read public key and a sub-address write public key;
s23, the transaction receiver initiates the sub-address of the receiver to a transaction initiator.
In the method for preventing root address exposure in a blockchain system of the present invention, the step S22 further includes:
s221, constructing a hash table list formed by a public write key of a receiver of the old sub-address and an address generation scalar;
s222, selecting an unused address to generate a scalar, and calculating the sub-address read public key and the sub-address write public key based on the receiver write public key, the receiver read private key, the address generation scalar and a general base point.
S223, performing hash mapping on the sub-address write public key and the address generation scalar.
In the method for preventing root address exposure in a blockchain system of the present invention, in the step S222,
D i =B+H s (a,i)G
C i =aD i
wherein D is i Writing a public key for the sub-address, C i Reading public key for the sub-address, G is a general base point, a is a receiver reading private key, H s B is a hash function, and B is a public key written for the receiver.
In the method for preventing root address exposure in a blockchain system of the present invention, the step S3 further includes:
s31, the transaction initiator selects an elliptic curve, scalar on the elliptic curve is selected as a transaction private key, and the sub-address writing public key is used as a base point to generate the transaction public key;
s32, the transaction initiator generates an initiating amount output based on the sub-address writing public key, the sub-address reading public key and the transaction private key; and generating change amount output based on the transaction private key, the initiator writing public key and the initiator reading public key.
In the method of preventing root address exposure in the blockchain system of the present invention, in the step S32,
P=H s (sC i )+D i
P c =H s (Xs)+Y;
wherein D is i Writing public key, C, for the sub-address i Reading public key for the sub address, s is the transaction private key, P is the initiating amount output, Y is the initiator writing public key, X is the initiator reading public key, P c And outputting the change amount.
In the method for preventing root address exposure in a blockchain system of the present invention, the step S5 further includes:
s51, the transaction receiver scans the transaction information to calculate an address to be verified based on the receiver read private key, the transaction public key and the initiating amount output;
s52, the transaction receiver determines whether output points to the transaction receiver based on whether the address to be verified corresponds to the address in the hash table list in a scalar mode;
s53, the transaction receiver generates a scalar based on the receiver read private key, the receiver write private key, the transaction public key and the address to spend the initiating amount output.
Another technical solution adopted by the present invention to solve the technical problem is to construct a computer readable storage medium, on which a computer program is stored, which when executed by a processor implements a method for preventing root address exposure in the blockchain system.
The invention solves the technical problem by adopting a further technical scheme that a block chain system is constructed, the block chain system comprises a plurality of block chain nodes, the block chain nodes are stored with computer programs, and the programs are executed by a processor to realize a method for preventing root address exposure in the block chain system.
By implementing the method for preventing root address exposure in the blockchain system, the computer-readable storage medium and the blockchain system, the transaction receiver can disclose different addresses to different transaction originators when receiving transaction amount by constructing the sub-addresses based on the root address, so that the root address safety of the receiver can be ensured, and the root address exposure is prevented in the blockchain system with transaction safety ensured. Furthermore, the transaction receiver can retrieve all the money by only the root address without storing the different addresses, thereby saving resources and further ensuring the transaction safety.
Drawings
The invention will be further described with reference to the accompanying drawings and examples, in which:
FIG. 1 is a flow chart of a first preferred embodiment of a method of preventing root address exposure in a blockchain system of the present invention.
Detailed Description
The present invention will be described in further detail with reference to the drawings and examples, in order to make the objects, technical solutions and advantages of the present invention more apparent. It should be understood that the specific embodiments described herein are for purposes of illustration only and are not intended to limit the scope of the invention.
The invention actually provides a method for preventing root address exposure in a blockchain system suitable for a UTXO transaction model, which can enable a user to disclose different addresses to different sponsors when receiving money, but can retrieve all money without reserving the different addresses and only reserving a private key of the root address.
In the invention, a transaction receiver adopts elliptic curve cryptography algorithm to generate a pair of root key pairs, wherein one pair of key pairs has the authority to recover the user amount, and the other pair of key pairs has the authority to spend the user amount. The public key combination of the two key pairs may generate a recipient root address. The transaction recipient receives the amount of money using a different address to prevent his own root address from being exposed, so a new sub-address needs to be generated using the root key, which also consists of two pairs of public keys, both pairs of public keys having no private key. The transaction receiver publishes its own sub-address to the transaction initiator. The transaction initiator sends the transaction to the user, firstly generates a transaction key pair, generates a sub-address with output pointing to the public of the transaction receiver by using the private key of the key pair and the public key of the other party, and the other output points to the address of the initiator for receiving change, then sends the transaction to the blockchain, and after the blockchain is verified, packages the transaction into the block. And then the transaction receiver uses the root key of the transaction receiver to conduct transaction on the scanning blockchain, and according to the matching rule, if the output points to the output which is derived by the transaction receiver by using the root key and the transaction public key, the amount is considered to belong to the transaction receiver.
FIG. 1 is a flow chart of a first preferred embodiment of a method of preventing root address exposure in a blockchain system of the present invention. As shown in fig. 1, in step S1, the transacting user generates a read key pair and a write key pair, respectively. The read key pair comprises a read public key and a read private key, and the write key pair comprises a write public key and a write private key. In a preferred embodiment of the present invention, an elliptic key hierarchy is used to generate the read key pair and the write key pair described above. In other preferred embodiments of the present invention, other key generation schemes may also be employed to generate the read and write key pairs of the present invention. Where the read key has asset read rights and the write key has asset spending rights.
In a preferred embodiment of the present invention, a transaction receiver selects an elliptic curve, selects a base point on the elliptic curve as a general base point, uses a scalar on the elliptic curve as a receiver reading private key, and then generates the receiver reading public key by elliptic curve multiplication based on the general base point and the receiver reading private key. Similarly, a transaction receiver selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as a receiver write private key, and then generates the receiver write public key by elliptic curve multiplication based on the general base point and the receiver write private key. The transaction initiator selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as an initiator reading private key, and then generates the initiator reading public key by elliptic curve multiplication based on the general base point and the initiator reading private key. Similarly, the transaction initiator selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as an initiator write private key, and then generates the initiator write public key by elliptic curve multiplication based on the general base point and the initiator write private key.
In step S2, the transaction receiver takes the receiver read public key and the receiver write public key as receiver root addresses, generates receiver sub-addresses based on the receiver root addresses, and initiates the receiver sub-addresses to the transaction initiator.
In a preferred embodiment of the invention, the transaction recipient takes the recipient read public key and the recipient write public key as the recipient root address. The transaction receiver generates the receiver sub-address based on the receiver root address, the receiver write public key of the old sub-address and the address generation scalar, wherein the receiver sub-address comprises a sub-address read public key and a sub-address write public key. The transaction recipient then initiates the recipient sub-address to a transaction initiator.
Preferably, the construction process of the receiving party sub-address is as follows. First, a hash table list composed of the recipient write public key of the old sub-address and the address generation scalar is constructed. And selecting an unused address to generate a scalar, and calculating the sub-address read public key and the sub-address write public key based on the receiver write public key, the receiver read private key, the address generation scalar and a universal base point. And finally, performing hash mapping on the sub-address write public key and the address generation scalar.
In step S3, the transaction initiator generates a session key pair, where the session key pair includes a transaction public key and a transaction private key, and the transaction initiator generates a change amount output and an initiation amount output based on the session key pair, the receiver sub-address, and the initiator address, where the transaction initiator uses an initiator write public key and an initiator read public key as the initiator address.
In a preferred embodiment of the invention, the transaction initiator selects an elliptic curve and a scalar on the elliptic curve as a transaction private key, and generates the transaction public key using the sub-address write public key as a base point. Then the transaction initiator generates an initiation amount output based on the sub-address writing public key, the sub-address reading public key and the transaction private key; and generating change amount output based on the transaction private key, the initiator writing public key and the initiator reading public key.
In step S4, the transaction initiator writes the transaction public key, the initiation amount output, and the change amount output into transaction information and initiates the transaction information into a blockchain system. Those skilled in the art will appreciate that any signature generation and signature verification technique known in the art may be used in the steps to implement the present step, and will not be further described herein.
In step S5, the transaction receiver uses the transaction public key, the receiver read key, and the own transaction amount to find and match the initiation amount output in the transaction information.
In a preferred embodiment of the invention, the transaction recipient scans the transaction information to calculate a to-be-verified address based on the recipient read private key, the transaction public key, and the initiating amount output. The transaction recipient determines whether output is directed to the transaction recipient based on whether the address to be verified corresponds to the address generation scalar in the hash table manifest. If the transaction recipient needs to spend the initiating amount output, the transaction recipient spends the initiating amount output by generating a scalar based on the recipient read private key, the recipient write private key, the transaction public key, and the address.
By implementing the method for preventing root address exposure in the blockchain system, the method can ensure that different addresses can be disclosed for different transaction originators when a transaction receiver receives transaction amount by constructing the sub-addresses based on the root address, so that the root address safety of the receiver can be ensured, and the root address exposure is prevented in the blockchain system with safe transaction. Furthermore, the transaction receiver can retrieve all the money by only the root address without storing the different addresses, thereby saving resources and further ensuring the transaction safety.
Specific embodiments of the present invention are further described below. In the present invention, all key pairs can be generated in the following manner.
Namely, an elliptic curve is selected, a general base point G is selected on the elliptic curve, the private key can be used for deriving the public key through multiplying the scalar a and the G by the elliptic curve, and the process is irreversible. For example: choosing scalar a as the private key and multiplying G by an elliptic curve can derive ag=a, but a cannot be derived from a. Selecting a hash scalar function H s () The function may be a scalar and a base on an elliptic curveThe product of the points is irreversibly hashed.
Based on this, the transaction recipient generates a pair of keys (a, a) (B, B) on a pair of elliptic curves, where a is the recipient read private key, a is the recipient read public key, B is the recipient write private key and B is the recipient write public key. The receiver read public key a and the receiver write public key B serve as the receiver root addresses (a, B).
The transaction receiver wants to disclose different addresses to different transaction initiators to prevent exposure of the root address (a, B), a manifest implemented by a hash table consisting of the receiver write public key of the old sub-address and the address generation scalar needs to be maintained in the wallet.
To create a sub-address, the recipient selects an unused address generation scalar i (i may or may not be selected randomly), and then proceeds with the generation of the sub-address following:
D i =B+H s (a,i)G
C i =aD i
wherein D is i Writing a public key for the sub-address, C i Reading public key for the sub-address, G is a general base point, a is a receiver reading private key, H s B is a hash function, and B is a public key written for the receiver.
The transaction receiver then writes the newly generated sub-address to public key D i Hash mapping D with scalar i i I. Generating a recipient subaddress (C) comprising a subaddress write public key and a subaddress read public key at the transaction recipient i ,D i ) Then, the recipient sub-address is published to the transaction initiator.
As previously described, the transaction initiator also now generates a key pair (X, X) (Y, Y) on a pair of elliptic curves, where X is the initiator read private key, X is the initiator read public key, Y is the initiator write private key and Y is the initiator write public key.
When a transaction is initiated, the transaction initiator selects an elliptic curve, selects a random scalar on the elliptic curve as a transaction private key s, and writes a public key as D by using the sub-address i Generating the transaction public key R for a base point
R=sD i
The transaction initiator generates an initiation amount output based on the sub-address writing public key, the sub-address reading public key and the transaction private key; and generating change amount output based on the transaction private key, the initiator writing public key and the initiator reading public key.
P=H s (sC i )+D i
P c =H s (Xs)+Y;
Wherein D is i Writing public key, C, for the sub-address i Reading public key for the sub address, s is the transaction private key, P is the initiating amount output, Y is the initiator writing public key, X is the initiator reading public key, P c And outputting the change amount. Thus, P is the output of the amount of the transaction receiver to find out the current transaction c In order for the initiator to find the change-giving output belonging to the initiator in the transaction.
The transaction initiator then writes the transaction information to the transaction public key, the initiation amount output, and the change amount output and initiates into a blockchain system. Those skilled in the art will appreciate that any signature generation and signature verification technique known in the art may be used in the steps to implement the present step, and will not be further described herein.
Then, the transaction receiver scans the output of the transaction on the blockchain, namely, the output comprises an initiating amount output P and a changing amount output P c . At this time, if the transaction public key is R, the address D' to be verified of the receiver is calculated as follows:
D′=P-H s (aR)G
if the transaction recipient finds that the address of the hash table list mapped D' to his wallet generates a scalar i, he considers that the output points to his child address (C i ,D i ) The reasons are as follows:
P-H s (aR)G=H s (sC i )G+D i -H s (a(sD i ))G
=H s (sC i )G+D i -H s (s(aD i ))G
=H s (sC i )G+D i -H s (s(C i ))G
=D i
to use P's funds, the transaction recipient needs to be able to determine the private key associated with P, which can be done using a hash table manifest lookup returned index
p=H s (aR)+b+H s (a,i)。
The principle is as follows:
pG=(H s (aR)+b+H s (a,i))G
because r=sd i
=(H s (a(sD i ))+b+H s (a,i))G
Elliptic curve multiplication conforms to the law of exchange
=(H s (s(aD i ))+b+H s (a,i))G
Because C i =aD i
=(H s (s(C i ))+b+H s (a,i))G
Because bG+H s (a,i)G=H s (a,i)G+B=D i
=H s (s(C i ))G+bG+H s (a,i)G
=H s (s(C i ))G+D i
=P
Thus, in view of the above procedure, in the search procedure D' =p-H s (aR) G, the receiver looks up the amount without additional save address, but p=h from the spending process, i.e. deriving P's private key process s (aR)+b+H s (a, i) and there is no need to save the sub-address.
Therefore, by implementing the method for preventing root address exposure in the blockchain system, through the way of constructing the sub-address based on the root address, a transaction receiver can disclose different addresses to different transaction originators when receiving transaction amount, so that the root address safety of the receiver can be ensured, and the root address exposure is prevented in the blockchain system with safe transaction. Furthermore, the transaction receiver can retrieve all the money by only the root address without storing the different addresses, thereby saving resources and further ensuring the transaction safety.
Another technical solution adopted by the present invention to solve the technical problem is to construct a computer readable storage medium having a computer program stored thereon, which when executed by a processor implements the method for preventing root address exposure in the blockchain system of the present invention.
Another technical solution adopted by the present invention to solve the technical problem is to construct a blockchain system, which includes a plurality of blockchain nodes, wherein a computer program is stored on the blockchain nodes, and the program when executed by a processor implements the method for preventing root address exposure in the blockchain system of the present invention.
By implementing the computer readable storage medium and the blockchain system, the transaction receiver can disclose different addresses to different transaction originators when receiving transaction amount by constructing the sub-addresses based on the root address, so that the root address safety of the receiver can be ensured, and the root address exposure is prevented in the blockchain system with transaction safety. Furthermore, the transaction receiver can retrieve all the money by only the root address without storing the different addresses, thereby saving resources and further ensuring the transaction safety.
Thus, the present invention may be realized in hardware, software, or a combination of hardware and software. The invention may be implemented in a centralized fashion in at least one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods of the invention is suited. The combination of hardware and software may be a general-purpose computer system with a computer program installed thereon, which, when executed, controls the computer system such that it carries out the methods of the present invention.
The present invention can also be realized by a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when installed in a computer system is able to carry out these methods. The computer program in this document refers to: any expression, in any programming language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) Conversion to other languages, codes or symbols; b) Reproduced in a different format.
While the invention has been described with reference to specific embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from its scope. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.
The foregoing description of the preferred embodiments of the invention is not intended to be limiting, but rather is intended to cover all modifications, equivalents, and alternatives falling within the spirit and principles of the invention.

Claims (9)

1. A method for preventing root address exposure in a blockchain system, comprising the steps of:
s1, a transaction user generates a read key pair and a write key pair respectively; the read key pair comprises a read public key and a read private key, and the write key pair comprises a write public key and a write private key;
s2, the transaction receiver takes the receiver reading public key and the receiver writing public key as receiver root addresses, generates receiver sub-addresses based on the receiver root addresses, and initiates the receiver sub-addresses to the transaction initiator to prevent the receiver root addresses from being exposed;
s3, the transaction initiator generates a session key pair, wherein the session key pair comprises a transaction public key and a transaction private key, and the transaction initiator generates change amount output and initiation amount output based on the session key pair, the receiver sub-address and the initiator address, wherein the transaction initiator takes an initiator write public key and an initiator read public key as the initiator address;
s4, the transaction initiator writes the transaction public key, the initiated amount output and the change amount output into transaction information and initiates the transaction information into a blockchain system;
s5, the transaction receiver searches and matches the initiating amount output in the transaction information by adopting the transaction public key, the receiver reading key and the self transaction amount;
the step S2 further includes:
s21, the transaction receiver takes the receiver reading public key and the receiver writing public key as the receiver root address;
s22, the transaction receiver generates a receiver sub-address based on the receiver root address, the receiver write public key of the old sub-address and the address generation scalar, wherein the receiver sub-address comprises a sub-address read public key and a sub-address write public key;
s23, the transaction receiver initiates the sub-address of the receiver to a transaction initiator.
2. The method of claim 1, wherein said step S1 further comprises:
s11, a transaction receiver selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as a receiver reading private key, and then generates the receiver reading public key by elliptic curve multiplication based on the general base point and the receiver reading private key;
s12, a transaction receiver selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as a receiver write private key, and then generates the receiver write public key by elliptic curve multiplication based on the general base point and the receiver write private key;
s13, a transaction initiator selects an elliptic curve, one base point on the elliptic curve is selected as a general base point, a scalar on the elliptic curve is used as an initiator reading private key, and then elliptic curve multiplication is performed based on the general base point and the initiator reading private key to generate the initiator reading public key;
s14, the transaction initiator selects an elliptic curve, selects a base point on the elliptic curve as a general base point, takes a scalar on the elliptic curve as an initiator write private key, and then generates the initiator write public key by elliptic curve multiplication based on the general base point and the initiator write private key.
3. The method of claim 2, wherein the step S22 further comprises:
s221, constructing a hash table list formed by a public write key of a receiver of the old sub-address and an address generation scalar;
s222, selecting an unused address to generate a scalar, and calculating the sub-address read public key and the sub-address write public key based on the receiver write public key, the receiver read private key, the address generation scalar and a general base point;
s223, performing hash mapping on the sub-address write public key and the address generation scalar.
4. The method of claim 3, wherein in step S222,
D i =B+H s (a,i)G
C i =aD i
wherein D is i Writing a public key for the sub-address, C i Reading public key for the sub-address, G is a general base point, a is a receiver reading private key, H s B is a hash function, and B is a public key written for the receiver.
5. The method of claim 3, wherein said step S3 further comprises:
s31, the transaction initiator selects an elliptic curve, scalar on the elliptic curve is selected as a transaction private key, and the sub-address writing public key is used as a base point to generate the transaction public key;
s32, the transaction initiator generates an initiating amount output based on the sub-address writing public key, the sub-address reading public key and the transaction private key; and generating change amount output based on the transaction private key, the initiator writing public key and the initiator reading public key.
6. The method of claim 5, wherein in step S32,
P=H s (sC i )+D i :
P c =H s (Xs)+Y;
wherein D is i Writing public key, C, for the sub-address i Reading public key for the sub address, s is the transaction private key, P is the initiating amount output, Y is the initiator writing public key, X is the initiator reading public key, P c And outputting the change amount.
7. The method of claim 5, wherein said step S5 further comprises:
s51, the transaction receiver scans the transaction information to calculate an address to be verified based on the receiver read private key, the transaction public key and the initiating amount output;
s52, the transaction receiver determines whether output points to the transaction receiver based on whether the address to be verified corresponds to the address in the hash table list in a scalar mode;
s53, the transaction receiver generates a scalar based on the receiver read private key, the receiver write private key, the transaction public key and the address to spend the initiating amount output.
8. A computer readable storage medium having stored thereon a computer program, wherein the program when executed by a processor implements a method of preventing root address exposure in a blockchain system according to any of claims 1-7.
9. A blockchain system comprising a plurality of blockchain nodes having a computer program stored thereon, wherein the program when executed by a processor implements a method of preventing root address exposure in a blockchain system according to any of claims 1-7.
CN202010418135.5A 2020-05-18 2020-05-18 Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system Active CN111709742B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010418135.5A CN111709742B (en) 2020-05-18 2020-05-18 Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010418135.5A CN111709742B (en) 2020-05-18 2020-05-18 Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system

Publications (2)

Publication Number Publication Date
CN111709742A CN111709742A (en) 2020-09-25
CN111709742B true CN111709742B (en) 2023-08-01

Family

ID=72537673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010418135.5A Active CN111709742B (en) 2020-05-18 2020-05-18 Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system

Country Status (1)

Country Link
CN (1) CN111709742B (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107937557A (en) * 2017-11-14 2018-04-20 中国农业大学 One and the relevant SNP site of pig economic characters and its application
CN108694668A (en) * 2018-06-15 2018-10-23 腾讯科技(深圳)有限公司 Digital asset method of commerce, device, medium and equipment
CN109285073A (en) * 2018-09-29 2019-01-29 数字钱包(北京)科技有限公司 Digital cash method of commerce and device
CN110289968A (en) * 2019-06-27 2019-09-27 矩阵元技术(深圳)有限公司 Private key restores, cooperates with creation, endorsement method and device, the storage medium of address
CN110675265A (en) * 2019-09-29 2020-01-10 四川师范大学 Method for realizing block chain double-key hiding address protocol without temporary key leakage
CN111127011A (en) * 2019-12-13 2020-05-08 杜晓楠 Transaction method, system and computer-readable storage medium for checking account based on block chain

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3396612A1 (en) * 2017-04-24 2018-10-31 BlockSettle AB Method and system for creating a user identity
CN108876335A (en) * 2018-09-07 2018-11-23 杭州复杂美科技有限公司 A kind of management of balance method and system, equipment and storage medium
CN110519059B (en) * 2019-09-29 2023-05-05 四川师范大学 Bilinear mapping-based block chain double-key hidden address processing method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107937557A (en) * 2017-11-14 2018-04-20 中国农业大学 One and the relevant SNP site of pig economic characters and its application
CN108694668A (en) * 2018-06-15 2018-10-23 腾讯科技(深圳)有限公司 Digital asset method of commerce, device, medium and equipment
CN109285073A (en) * 2018-09-29 2019-01-29 数字钱包(北京)科技有限公司 Digital cash method of commerce and device
CN110289968A (en) * 2019-06-27 2019-09-27 矩阵元技术(深圳)有限公司 Private key restores, cooperates with creation, endorsement method and device, the storage medium of address
CN110675265A (en) * 2019-09-29 2020-01-10 四川师范大学 Method for realizing block chain double-key hiding address protocol without temporary key leakage
CN111127011A (en) * 2019-12-13 2020-05-08 杜晓楠 Transaction method, system and computer-readable storage medium for checking account based on block chain

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于密码和区块链技术的数据交易平台设计;杨茂江;《信息通信技术》;第10卷(第04期);第24-31页 *

Also Published As

Publication number Publication date
CN111709742A (en) 2020-09-25

Similar Documents

Publication Publication Date Title
JP6841911B2 (en) Information protection systems and methods
US20230147842A1 (en) Computer-implemented systems and methods for performing computational tasks across a group operating in a trust-less or dealer-free manner
US20200120074A1 (en) System and method for information protection
CN111448579A (en) Quantum certified block chains
US20200145195A1 (en) System and method for information protection
JP2020502856A (en) System and method for information protection
JP6756041B2 (en) Information protection systems and methods
US20050039023A1 (en) Digital signatures on a smartcard
JP7231630B2 (en) Blockchain-implemented security systems and methods for blinded consequent selection
CN111325535A (en) Block chain private key management method, system and storage medium based on elliptic curve migration
CN112119609A (en) Method and system for communicating secrets
CN110675265A (en) Method for realizing block chain double-key hiding address protocol without temporary key leakage
CN111709738A (en) Method for hiding transaction amount in blockchain system, computer readable storage medium and blockchain system
WO2021012841A1 (en) Verification method and device applied to blockchain
Noether et al. Monero is not that mysterious
US20100082992A1 (en) Cryptographic Applications of Efficiently Evaluating Large Degree Isogenies
JP5328993B2 (en) Signature generation apparatus, signature generation method, and recording medium
CN111709742B (en) Method for preventing root address exposure in blockchain system, computer readable storage medium and blockchain system
Raju et al. A study of current cryptocurrency systems
KR102354044B1 (en) The method of recovering private key using mnemonic code
CN111709739B (en) Method for eliminating double flowers in block chain system, computer readable storage medium and block chain system
Ko et al. Private key recovery on Bitcoin with duplicated signatures
CN111709727A (en) Method and computer-readable storage medium for preserving multiple signatures in a blockchain wallet
CN112835554A (en) Random number generation, regeneration and tracking method based on non-uniform random source in group and electronic device
Nath et al. Impact of Blockchain to Secure E-Banking Transaction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant