SYSTEM AND METHOD FOR BLOCKCHAIN ​​TRANSACTIONS WITH APPLICATION AND APPROVAL

JP7635157B2Active Publication Date: 2025-02-25GMO GLOBALSIGN INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021568339
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-05-16
Filing Date
2020-05-15
Publication Date
2025-02-25
Estimated Expiration
2040-05-15

Smart Images

  • Figure 0007635157000001
    Figure 0007635157000001
  • Figure 0007635157000002
    Figure 0007635157000002
  • Figure 0007635157000003
    Figure 0007635157000003
Patent Text Reader

Abstract

The present invention overcomes the problem of pseudonymous blockchain transactions that prevent identification of the identity of an individual or institution that relies solely on the blockchain address of the recipient in a blockchain transaction. A system and method are provided for verifying movement in an on-chain blockchain Bitcoin transaction by using a series of blockchain Bitcoin transactions that reveal and verify the identity of one or more parties to the transaction.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This patent claims priority to and the benefit of U.S. Provisional Patent Application No. 62 / 848,927, filed May 16, 2019. All documents cited in this section are incorporated herein by reference.

[0002] The present disclosure relates generally to blockchain, and more specifically to creating a series of verified blockchain transactions that can fulfill the functions of offers and corresponding approvals by verifying the identity of intended recipients in blockchain Bitcoin transactions. [Background technology]

[0003] Blockchain technology (sometimes simply referred to as blockchain) is a relatively new technology that is being used to implement digital currencies. Blockchain technology is described in a 2008 paper entitled "Bitcoin: A Peer-to-Peer Electronic Cash System" by Satoshi Nakamoto, the entire contents of which are incorporated herein by reference. A blockchain is a data structure that stores a list of transactions and can be thought of as a distributed electronic ledger that records transactions between source and destination identifiers. Transactions are bundled into blocks, and every block (other than the first block) references or links to previous blocks in the chain. Computer nodes maintain the blockchain and cryptographically verify each new block and, therefore, the transactions contained in the corresponding block. This verification process is computationally difficult to solve, but authenticating involves solving a simple problem and is sometimes referred to as "proof of work".

[0004] The integrity of the entire blockchain (e.g., confidence that previously recorded transactions have not been altered) is preserved, which means that each block references the cryptographic hash value of the previous block. Thus, when a block points to a previous block, it becomes difficult to modify or tamper with the data (e.g., transactions) contained in the block. This is because even small changes to the data affect the hash value of the entire block. Each additional block increases the difficulty of tampering with the contents of previous blocks. Thus, even if the contents of the blockchain are visible to everyone, they are effectively impossible to modify.

[0005] Identifiers used in blockchain transactions are created by cryptographic methods, such as public key cryptography. For example, a user can create a destination identifier based on a secret key. The relationship between the private key and the destination identifier can be used later to provide a “proof” that the user can associate with the output from the transaction created. In other words, the user can create another transaction at the present time to “consume” the content of a previous transaction. Furthermore, since only the user knows the relationship between the destination identifier and the corresponding private key, the user has anonymity even if he or she can create many different destination identifiers (linked only through the private key). Hence, the overall association of the user with multiple transactions contained in the blockchain can remain secret from other users. The details of the transactions can be made publicly available on the distributed ledger, but the potential participants of these transactions can remain secret, since the identifier is linked to a secret key known only to the corresponding participants.

[0006] One challenge with public blockchains, including Bitcoin, is that Bitcoin transactions use pseudonyms, making it difficult for users to verify the identity of a corresponding individual or institution. As a result of the use of pseudonyms, Bitcoin transactions that move Bitcoin from one party to another do not necessarily embody offer and acknowledgement. For example, the moving party (i.e., the transferor) may transfer Bitcoin to the Bitcoin address of the receiving party (i.e., the transferee) without their knowledge or consent. This lack of knowledge or consent in the digital realm of Bitcoin is unacceptable under the guidelines of contract law, which require offer and acknowledgement.

[0007] As a result of the inherent lack of transparency in Bitcoin transactions, some business relationships may be hesitant to use Bitcoin because such relationships cannot easily verify such identities beyond doubt. While not desirable in all cases, such verification can be useful to comply with regulations, e.g., know-your-customer (KYC) and anti-money-laundering (AML) obligations. Such obligations may include, for example, reporting or logging information related to transaction participation. Some business relationships may be hesitant to use Bitcoin because such relationships cannot easily verify such identities beyond doubt. This is because the identity of the recipient in a traditional Bitcoin transaction is not embedded in the transaction, greatly increasing the risk that a malicious intruder is swapping the address of the intended recipient for himself. Bitcoin transactions are, for example, pseudonymous, using Bitcoin addresses to indicate the recipient. As a result, it is difficult to verify the identity of the recipient indicated in the transaction. At the very least, because such identity is not embedded in the transaction itself, there is a significant risk that a malicious interloper could be swapping the address of the intended recipient on his or her own. As such, there is a non-negligible possibility of fraud when it comes to making transactions. A simple Bitcoin transaction moving Bitcoin from one party to another does not necessarily embody an offer and acknowledgement, as a result of this possibility of fraud. For example, the moving party (i.e., the transferor) may transfer Bitcoin to the Bitcoin address of the receiving party (i.e., the transferee) without their knowledge or their consent. This lack of knowledge or consent in the digital realm of Bitcoin is unacceptable to the guidelines of contract law that require an offer and acknowledgement. That is, at common law, a contract may require an offer and acknowledgement.An offer may be an intention to enter into a binding contract under certain conditions. An acceptance may be an expression of express and unconditional acceptance bound by those conditions. Without acceptance, an offer may not become a legally enforceable contract.

[0008] Therefore, there is a need for a system and related method for creating verified movements in blockchain transactions, such as Bitcoin blockchain transactions, where the transactions act as offers and approvals. [Prior art documents] [Non-patent literature]

[0009] [Non-Patent Document 1] A 2008 paper by Satoshi Nakamoto titled "Bitcoin: A Peer-to-Peer Electronic Cash System" Summary of the Invention [Problem to be solved by the invention]

[0010] The present invention provides a system and associated computer-implemented method for verifying the identity of an intended recipient and executing a series of blockchain transactions that perform the functions of application and approval. Verifiable identity can increase efficiency in situations where combating fraud and theft is critical or necessary. In some embodiments, verifying the identity of an intended recipient in a blockchain transaction may include matching the recipient's address with a commonly trusted digital certificate that vouches for certain identifying information associated with a particular cryptographic public key. Possession of the corresponding private key held by the intended recipient may be sufficient to verify the transferee's digital identity. [Means for solving the problem]

[0011] The invention is defined by the independent claims. The dependent claims define advantageous embodiments.

[0012] According to a first aspect, there is provided a system for executing a series of blockchain transactions acting as offers and approvals by verifying certain identities of an assignee, the system comprising: (a) forming, by a first computing device, a blockchain having one or more nodes, each node including a blockchain address; (b) revealing, by the first server, a root of trust in the blockchain by providing a certification certificate associated with the first entity, the certification certificate including a field containing a public key corresponding to a blockchain address where an unspent transaction output (UTXO) is located on the blockchain; (c) issuing a certified certificate from the first server to the first entity; (d) creating, by the second server, an issuance transaction that uses an unspent transaction output (UTXO) on the blockchain that corresponds to the certified certificate associated with the first entity; and (e) creating, by the first computing device, an offer transaction that includes a transfer output that can be spent with the public key of the identity token of the first entity; (f) creating, by the second computing device, an authorization transaction that includes the transfer output as an input; A system is provided that is operable to:

[0013] Advantageously, the present invention provides systems and associated computer-implemented methods that provide contract elements that may be used to enable smart contracts on a blockchain.

[0014] Optionally, the system allows an applicant to create an application transaction that includes an output that, when used, acts as an authorization for a specified applicant that requires a signature by the private key of the corresponding identity token output.

[0015] Optionally, the system allows the applicant and applicant to create a unified contract transaction embodying both the application and approval together by requiring the applicant to provide and sign an identity token input for a single verified contract transaction.

[0016] According to a second aspect, there is provided a method of using a system for performing a series of blockchain bitcoin transactions acting as offers and acceptances, the system being operable to reveal and verify the identity of an assignee, the method comprising: a) forming, by a first computing device, a blockchain having one or more nodes, each node having a blockchain address, a first of the one or more nodes having a first blockchain address associated with a transaction; b) revealing, by the authentication server, an authentication certificate to reveal a root output on a blockchain associated with the first entity, the authentication certificate including a root certificate that specifies a public key corresponding to a blockchain address where an unspent transaction output (UTXO) is located on the blockchain; c) issuing, from the authentication server, an authentication certificate to a first entity associated with the first computing device; d) creating, by the issuing server, an issuance transaction spending an unspent transaction output (UTXO) corresponding to the certified certificate associated with the first entity; e) creating, by a first entity associated with the first computing device, an offer transaction including a transfer output that can be spent with a public key of the first entity's identity token; f) creating, by a second computing device associated with the second entity, an authorization transaction that includes the transfer output as an input.

[0017] Optionally, the method may include the applicant taking back the transfer output created in the blockchain Bitcoin transaction if not accepted by the applicant within a specified time period. In this manner, the applicant may provide a time-limited offer.

[0018] Optionally, the method may include the applicant's acceptance of the P2PKH blockchain bitcoin transaction with one or more outputs reallocated to the applicant or also reallocated to the applicant to reduce ambiguity.

[0019] Optionally, the method may include the applicant and applicant signing a single contract transaction.

[0020] In some implementations, one or more of the following features may be included. The blockchain may be the Bitcoin blockchain. b. The blockchain address may be a Bitcoin address. c. The certification certificate may be an X.509 certificate. d. The address field may be an extension field of an X.509 certificate. e. The server may be associated with an attestation service. f. The identity of an individual or institution may be associated with the blockchain. g. Identity verification can be maintained separately from Bitcoin.

[0021] In some embodiments, an offeror (e.g., a transferor) can create a “contract” transaction with at least two inputs: (1) an “offer” input corresponding to the bitcoins to be transferred, and (2) an “approval” input that consumes the subscriber’s identity token output. According to one such embodiment, in the “contract” transaction, the “transfer” output can be assigned to a specified bitcoin address, i.e., the bitcoin address of the intended recipient (e.g., the transferee / subscriber). The offeror can make the offer by digitally signing the “contract” transaction.

[0022] In some embodiments, an intended recipient (e.g., assignee / applicant) may indicate their approval by digitally signing the "agreement" transaction described above. The digital signature may both act as an approval and reveal the identity of the intended recipient (e.g., assignee / applicant).

[0023] In some embodiments, the “contract” transaction described above may assign the “move” output of the contract transaction to a specified Bitcoin address (e.g., a transferee Bitcoin address).

[0024] In some embodiments, an applicant may submit an application by digitally signing a "contract" transaction.

[0025] In some embodiments, to verify the identity of an applicant in a blockchain Bitcoin transaction, the applicant can require that only a specific identity token be able to sign a valid authorization transaction. In this way, the identity of the applicant in a transaction can be verified by the applicant by matching a commonly trusted digital certificate with the applicant's Bitcoin address. The digital certificate certifies the applicant's Bitcoin address in various ways. For example, the digital certificate can include, by extension, the applicant's Bitcoin address or the applicant's corresponding cryptographic public key. Alternatively, the cryptographic public key of the certificate can correspond to the same public key from which the Bitcoin address is derived. In this way, an output on the blockchain can be linked to a specific digital certificate and, therefore, to the identity of an individual or organization that has been verified by a CA. In certain cases, only the holder of the private key of the digital certificate, and therefore, the subject of the certificate, holds the corresponding private key that is needed to spend the output on the blockchain.

[0026] In some embodiments, it may be beneficial to represent identities as specific outputs (i.e., UTXOs) on the blockchain that must be unspent to be valid. Additionally or alternatively, it may be beneficial to abstractly represent identities on the blockchain as shared keys that are usable even if, for example, a CA revokes the corresponding digital certificate.

[0027] In one embodiment of the present invention, there is provided a computer program comprising program code means for causing a computer to perform the steps of a computer implemented method as disclosed herein when said computer program is executed on a computer, and a non-transitory computer readable recording medium storing a computer program product which, when executed by a processor, causes a computer to perform the method as disclosed herein.

[0028] As will be appreciated by those skilled in the art, a system for verifying the identity of an intended recipient and creating a set of verified blockchain transactions that perform the functions of subscription and approval in a blockchain transaction may be embodied, for example, as a computer system, method, or computer program product. Thus, various embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Also, some embodiments may take the form of a computer program product stored on a computer-readable storage medium having computer-readable instructions (e.g., software) embodied in the storage medium. Various embodiments may take the form of web, mobile, wearable, computer-implemented, computer software. Any suitable computer-readable storage medium may be utilized, including, for example, hard disks, compact discs, DVDs, optical storage devices, and / or magnetic storage devices.

[0029] According to one aspect, approval by the applicant should be unambiguous. In some embodiments, one way for the assignee to indicate approval may be to self-assign approval to itself. Alternatively or additionally, this can be accomplished by including specific types and value outputs in the transaction.

[0030] It should be understood that preferred embodiments of the present invention can also be any combination of the dependent claims or the above embodiments with the corresponding independent claims. For example, identity tokens, authorization outputs, and other "signaling" outputs can be implemented in a relatively unambiguous manner by using outputs and corresponding inputs with a nominal value of zero. In such implementations, it is possible to use zero-value "tokens", because Bitcoin's consensus rules allow a transaction to have both zero-value outputs and zero-value inputs with a nominal value of zero, provided that (1) the nominal amount of each input is greater than or equal to zero (i.e., non-negative), and (2) the sum of the nominal output amounts is less than or equal to the sum of the nominal input amounts.

[0031] These and other aspects of the invention will be apparent from and elucidated with reference to the embodiment(s) described hereinafter.

[0032] The aforementioned features can be more fully understood from the following description of the drawings. The drawings are helpful in explaining and understanding the disclosed technology. Because it is often impractical or impossible to show and describe every possible embodiment, the figures provided show one or more example embodiments. Thus, the figures are not intended to limit the scope of the invention. Like numbers in the figures indicate like elements. [Brief description of the drawings]

[0033] [Figure 1] FIG. 1 is a high-level architectural illustration of how the Bitcoin system operates, including the authentication server. [Diagram 2] FIG. 1 is a block diagram of a blockchain. [Diagram 3] FIG. 2 is a block diagram of a certification certificate. [Figure 3A] FIG. 1 is a diagram of a system including a QR Code. [Figure 4]A top level flowchart of a process for using a system for executing a series of blockchain Bitcoin transactions that act as offers and approvals, the system operable to reveal and verify the identity of the other party (i.e., the grantee) of the transaction. [Diagram 5] FIG. 5 is a more detailed flowchart of FIG. 4 of a process for using a system for executing a series of blockchain Bitcoin transactions that act as applications and approvals, the system being operable to reveal and verify the identity of the other party (i.e., the transferee) of the transaction. [Figure 6] 1 is a block diagram of a computing device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0034] Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. However, the present disclosure may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that the present disclosure will be thorough and complete, and will fully convey the scope of the present disclosure to those skilled in the art. Throughout the drawings, the same or similar reference numbers will be used to designate the same or similar elements.

[0035] The illustrative methods and systems discussed herein are not limited in application to the details of construction and the arrangement of components set forth in the following description or illustrated in the accompanying drawings. Those skilled in the art will appreciate that the methods and systems can be implemented in other embodiments and practiced or performed in various ways. Specific illustrative implementations are provided herein for illustrative purposes only and are not intended to be limiting. Additionally, the terminology and terminology used herein is for illustrative purposes and should not be considered limiting. Any reference to an illustrative example, embodiment, component, element, or act of a system or method herein referred to in the singular may also extend to an embodiment including a plurality, and any reference to any embodiment, component, element, or act herein in the plural may also extend to an embodiment including only the single one. References in the singular or plural are not intended to limit the disclosed systems or methods, their components, acts, or elements. Use of "including," "comprising," "having," "containing," "involving," and variations thereof herein are intended to encompass the items listed thereafter, equivalents thereof, and additional items. References to "or" may be construed as inclusive such that any term described using "or" can refer to either one, more than one, or all of the described term.

[0036] One of ordinary skill in the art will recognize that when describing a blockchain, the term "block" is typically used to refer to a block in the blockchain, and the term "node" is typically used to refer to a node in the Lightning Network. However, in this disclosure, the terms "block" and "node" are used interchangeably to refer to a block in the blockchain, a node in the Lightning Network, or both. The terms "block" and "node" may also be construed to mean any block or node as appropriate in the context of this disclosure.

[0037] Various embodiments are described below with reference to block diagrams and flowchart illustrations of methods, apparatus (e.g., systems), and computer program products. It should be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by a computer executing computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, executing on the computer or other programmable data processing apparatus, create means for performing the function(s) specified in the flowchart block(s).

[0038] These computer program instructions may also be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner such that a product is produced that is configured to perform the function(s) specified in the block(s) of the flowchart by the instructions stored in the computer readable memory. The computer program instructions may also be loaded into a computer or other programmable data processing apparatus such that a sequence of operational steps performed on the computer or other programmable apparatus produces a computer-implemented process such that the instructions executing on the computer or other programmable apparatus provide steps for performing the function(s) specified in the block(s) of the flowchart. The computer program instructions may also be stored in a carrier medium or device readable form, for example in a solid state memory, a magnetic memory such as a disk or tape, an optical or magneto-optical readable memory such as a compact disk or digital versatile disk, and the processing device uses the program or a portion thereof to configure it for operation. The computer program may be supplied from a remote source embodied in a communication medium such as an electronic signal, a radio frequency carrier wave, or an optical carrier wave. Such carrier media are also contemplated as aspects of the present disclosure.

[0039] Thus, the blocks in the block diagrams and flowchart diagrams support combinations of mechanisms for performing the specified functions, combinations of steps for performing the specified functions, and program instructions for performing the specified functions. It should also be understood that each block of the block diagrams and flowchart diagrams, and combinations of blocks in the block diagrams and flowchart diagrams, can be implemented by a special-purpose hardware-based computer system that performs the specified functions or steps, or a combination of special-purpose hardware and other hardware that executes appropriate computer instructions.

[0040] A system and method are provided in which a series of blockchain Bitcoin transactions act as an offer and corresponding approval, verifying the transfer by using a series of blockchain Bitcoin transactions that reveal and verify the identity. An embodiment provides a system for revealing and verifying the identity of a transaction counterparty (i.e., a transferee) through a series of blockchain Bitcoin transactions that act as an offer and corresponding approval in the transaction. A certification authority (CA) first reveals a "root" output on the blockchain that shares a private key with the CA's X.509 root certificate. The CA then creates an "issue" transaction by using this "root" output. The "identity" output of this "issue" transaction can be used by the public key specified in a digital certificate issued by the CA to the user. The user can sign the transaction with their corresponding private key to assert their individual identity on the blockchain, and the counterparty may need their signature to complete the verified transfer. A validated transfer may involve a root certificate that shares the public and private keys with the Bitcoin address of the unspent transaction output (UTXO), issues a digital certificate to a user that shares the private key with the user's Bitcoin address, and assigns a value to the Bitcoin address that shares the private key with the user's certificate. The user may approve the transfer by reallocating the transferred Bitcoin to their own address.

[0041] 1, computing system 100 includes computing devices 102 and 104 that communicate over a network 106. Computing devices 102 and 104 may be any type of computing device capable of executing software instructions, including, but not limited to, desktop computers, laptop computers, mobile phones, servers, Internet of Things (IoT) sensors, embedded devices, etc. Network 106 may be any type of network that allows computing devices to communicate with each other, including, but not limited to, a WAN, a LAN, the Internet, etc.

[0042] The system 100 may also include one or more servers 108 that may be associated with a user registration and certification service. The user registration and certification service may be a service (e.g., a certification authority (CA) that complies with a public key infrastructure (PKI)) that issues and / or provides digital certificates that provide secure authentication of addresses, identities, transactions, signatures, etc. The user registration and certification service may also provide authentication using asymmetric cryptography (e.g., public key cryptography using a public / private key pair) to reveal an association of data or transactions with an origin or entity (e.g., by verifying or authorizing a digital signature or transaction).

[0043] The system 100 may also include a server 110 associated with an entity 112. The entity 112 may be a business, an individual, or any other legitimate entity having an identity that is authenticable by the server 108. For example, the CA may verify the entity's name, mailing address, internet domain name, and bitcoin address. Optionally, and for example, the CA may reveal ownership of a blockchain identifier (e.g., a bitcoin address) by requiring the entity to demonstrate ownership of a private key corresponding to the blockchain identifier (e.g., by providing a digital signature constructed using a private key corresponding to the bitcoin address).

[0044] System 100 is shown as a relatively minimal system having two computing devices 102 and 104, a server 108 associated with a user registration and authentication service, and a server 110 associated with an entity 112 that communicates over a network 106. However, additional devices may also communicate over network 106 and may interact with or be part of system 100. These devices are not shown for ease of illustration.

[0045] 2, a blockchain 200 may be associated with the system 100. The blockchain 200 may be stored in whole or in part by the computing devices 102 and 104 and by the server 110. Other devices not shown may also store all of the blockchain 200 or may store portions of the blockchain 200. In embodiments, the blockchain 200 may be the Bitcoin blockchain, the Lightning Network, or the like (note that the Lightning Network is not necessarily a blockchain, but the systems and techniques described in this disclosure may operate on or in conjunction with the Lightning Network). The blockchain 200 may be a public blockchain that allows participation by any entity or individual, such as the Bitcoin blockchain or the Ethereum blockchain. In other embodiments, the blockchain 200 may be a private blockchain with a closed group of users and private transactions, or a hybrid blockchain that may be managed by a group or consortium.

[0046] Regardless of the type of blockchain 200, various entities may be associated with transactions in the blockchain. For example, the blockchain 200 may include a blockchain bitcoin transaction that moves funds from one entity to another. Optionally, the transaction may be associated with one or more source addresses (associated with an entity that authorizes the inputs to the transaction) and / or destination addresses (associated with an entity that can potentially exercise rights through the output of the transaction). For the security of financial (and other) transactions, it may be beneficial if the parties to a transaction can authenticate the identity of the other parties to the transaction. For example, if the recipient is a bank, it may be beneficial for the transferor to authenticate the recipient address so that it is associated with the correct bank.

[0047] Blockchain 200 may be created, maintained, and extended by computing devices, such as devices 102 and 104. Blockchain 200 may include a series of blocks (also referred to as nodes in this disclosure), such as original block 202. The term "blockchain" may refer to the entire structure of blockchain 200 or to the longest continuous chain within the structure (e.g., block 204). Blockchain 200 may also include nodes (such as block 206) that branch off from the main blockchain.

[0048] Each block may contain an address 210 associated with the block and used to approve and send blockchain transactions, and a hash tree 212 of data transactions. In embodiments, a block may be associated with a particular entity. Thus, the address 210 of a block may also be associated with a particular entity. For example, if funds are moved to address 210, these funds may be made available to the entity associated with the block 214.

[0049] The Lightning Network is a layer-2 protocol built on top of an underlying blockchain (e.g., Bitcoin). Pairs of users enter into an agreement to negotiate in good faith, secured by collateral. These agreements, called channels, can be recorded in the blockchain 200 (e.g., as a “funding” transaction). Each pair updates the channel by adjusting the channel’s collateral allocation and postponing settlement in the blockchain, using ongoing negotiations and partially signed but unrecorded contracts (i.e., “off-chain”). To move funds, the sender updates an unrecorded contract with another party, who in turn updates one of their contracts with another party, and so on, until the process reaches the recipient. The result can be a chain of contract updates.

[0050] The parties must negotiate in good faith (including by rejecting a previously cancelled or renewed agreement) or at risk of losing the collateral in the Lightning Network. If negotiations break down and there is no dispute or breach, the collateral may be returned according to the allocation agreed upon in the most recent renewal.

[0051] By deferring recording to the blockchain, the Lightning Network allows for larger transaction volumes and near-instant confirmation.

[0052] The speed and capacity limitations of the blockchain itself do not directly limit Lightning transactions. Automatic, near-instantaneous negotiations and contract updates may not need to be immediately recorded in the blockchain, i.e., may occur off-chain. However, in certain cases, the blockchain does limit the speed and volume of dispute resolution and processing. If disputes and processing are much rarer than routine transactions, the Lightning Network can achieve very high transaction scalability.

[0053] A standard blockchain Bitcoin transaction is not typically confirmed as final or irrevocable (i.e. confirmed) until it is included in the blockchain, i.e., in a block that is several further blocks into the chain. Before a transaction is included in a block, it is not yet part of the blockchain and may still be susceptible to double-spending. The blockchain's proof-of-work does not protect against unconfirmed transactions.

[0054] In the Lightning Network, blockchain settlement is deferred, but in a trust-minimized manner. When a Lightning payment is completed, it immediately enjoys the trust-minimized protections that come with Lightning Network transactions: if a counterparty breaches an unrecorded contract, the counterparty forfeits their collateral. As a result, Lightning payments, although off-chain and not technically final, are effectively near-instantaneously final.

[0055] In the Lightning Network, Bitcoins may shuttle back and forth within each individual channel. In a Lightning transaction, a single Bitcoin may not travel all the way from the initial sender to the final receiver in a single transaction. Instead, the Lightning Network may form a vast network of Bitcoins shuttled back and forth, with each individual Bitcoin only moving back and forth within a single channel.

[0056] Like converters for alternating current, nodes in the Lightning Network maintain channels of different values ​​to create larger channels with other “high-power” nodes, and optionally maintain smaller channels directly with other users. In doing so, such nodes can act as converters, converting very high capacity flows into manageable smaller flows that are well suited for everyday consumer transactions. Similarly, such nodes can aggregate smaller flows going in similar directions for bundled transfers in higher capacity channels. Such high capacity nodes may also be able to handle some routing and channel monitoring tasks if the endpoint nodes have limited network connectivity or computational resources. For example, low capacity nodes can potentially securely outsource route decisions to trusted, authenticated higher capacity or well-connected nodes.

[0057] Additionally, because Lightning channels must be funded, nodes may have large amounts of available funds and maintain more (and higher value) channels. As highly connected hubs emerge in the Lightning Network, these hubs still minimize trust. Channels are protected by the rules of the Lightning Network, and nodes can unilaterally close channels.

[0058] Identities on the Lightning Network are largely static and public, but transactions may only be known to counterparties (e.g., some partial information may be available to intermediate nodes in a transaction, and some summary information may be available in the public blockchain). Node identities on the Lightning Network can optionally be associated with public keys.

[0059] Thus, in the Lightning Network, identity and reputation can be important for transactions. For example, reputation is important when seeking contracts and counterparties. Reputation allows parties to more effectively evaluate whether a potential counterparty will honor representations regarding availability, connectivity, and fees. Reputation can be based on objectively observable network metrics such as uptime, number and capacity of channels, and number of violations and non-reciprocal transactions. Such information can be disseminated using trusted entities that are authenticated by accreditation certificates.

[0060] Public identities enable authentication of non-payers and merchants. For example, when making a purchase, an authenticated identity (e.g., using a certified certificate associated with an entity and public key) allows a user to verify that a payment is being forwarded to the intended merchant and to validate invoices and receipts. Verified and authenticated identities are especially important because they provide efficient protection against man-in-the-middle attacks that are difficult to prevent in an anonymized digital context without prior trust.

[0061] A Public Key Infrastructure (PKI) that can provide an efficient contained trust point can address both of these needs, such as reputation and identity, without compromising the trust-minimized nature of blockchain.

[0062] For example, on the Lightning Network, a node may be represented by its public key and a network identifier (e.g., an IP address or other endpoint identifier). The public key may correspond to a public key in a commonly trusted X.509 digital certificate (or another field, e.g., a subject attribute or corresponding information in an X.509 extension). For example, referring again to FIG. 1, a server 108 that provides certified certificates may provide these certified certificates (e.g., X.509 certificates). The digital certificates may be further used to authenticate the identity of the node (e.g., by company or domain name), as verified or confirmed by a certification authority (CA) or a registration authority (RA). Authenticated Lightning nodes allow users to ensure, for example, that payments are actually proceeding to the intended merchant.

[0063] In some embodiments, a certificate (e.g., an X.509 certificate) issued for authentication in a layer-2 blockchain protocol (e.g., Lightning Network) transaction may include an invoice field that contains data related to the potential transaction (e.g., the destination, amount, time, signature of the counterparty or authenticated party, or the geographic location of one or more participants). For example, if a merchant is seeking payment from a customer in a transaction for the sale of goods or services, the X.509 certificate may include an invoice field (e.g., a standard Lightning Network invoice) that contains information related to the potential transaction (e.g., as a subject attribute or in an X.509 extension).

[0064] 3, a certification certificate 300 that allows for verification of certain identity information associated with an entity can be issued by the server 108. Optionally, the certification certificate 300 may conform to the X.509 format and may be an X.509 certificate. Optionally, the certification certificate 300 may also be authenticated or verified by a third party, for example, some or all of the data of such a certificate may be signed by a private key of a certification authority (CA) (e.g., a private key corresponding to a trusted or authenticated digital certificate). In an embodiment, the address 210 and / or the public key 301 may include, be used as, or be used to derive the verified attribute 302, and may optionally be included within a portion of the certification certificate 300 that is signed or verified by the certification authority (CA) (e.g., signed by the private key of the CA during issuance of the certification certificate 300). The private key used by the certification authority to sign the certified certificate 300 may be provided by a trusted source, such as the server 108, which may be associated with a public certification service.

[0065] The certified certificate 300 may include various fields, including, for example, fields that include attributes 302, are used as attributes 302, or are used to verify attributes 302. For example, the certified certificate 300 may include a public key from which a verified Bitcoin address or blockchain identifier can be derived. Optionally, one or more fields in the certificate may contain one or more verified blockchain addresses (e.g., Bitcoin addresses). The addresses may be the same addresses 310 found in blocks 214 of the blockchain. The certified certificate 300 may also include information that identifies the entity, such as, but not limited to, a serial number, an issuer name, a validity, a public key, a unique ID, and information contained in the fields shown as part of the certified certificate 300. Optionally, some or all of such information may include, be used as, or be used to derive one or more verified attributes (e.g., a public key may comprise a verified attribute for an entity where the entity verifies possession of the corresponding private key). Thus, the certified certificate 300 may associate and authenticate the address 210 and / or public key 301 with a trusted entity.

[0066] The verified attribute 302 included in the certified certificate 300 is not limited to a blockchain address or public key. For example, the verified attribute may be an IP address, another type of network address, another unique identifier associated with a transaction in the blockchain 200, an amount transferred in a transaction in the blockchain 200, or any other data that can be associated with a blockchain transaction and / or an entity involved in the blockchain transaction. In an embodiment, the verified attribute may be an address reference. For example, the verified attribute 302 may indirectly reference an address via a public key in an X.509 certificate. Thus, the certified certificate 300 can ensure that the entity listed in the certified certificate 300 is indeed the entity involved in the blockchain transaction associated with the verified attribute 302.

[0067] Although shown as a separate field within the X.509 certificate, verified attributes 302 may be stored anywhere within the X.509 certificate, and in an embodiment, verified attributes 302 may be stored separately from the X.509 certificate but may be associated with the X.509 certificate.

[0068] With reference to FIG. 3A, the certificate 300 can be encoded into a QR code 350. By way of example, the QR code can encode the certificate in, for example, a DER or PEM format. The QR code 350 can be scanned by a computing device, such as 352, which may further include a hardware or software wallet. The computing device can validate the certificate to reveal the identity of the other party in the transaction (e.g., the identity of the transferee in a blockchain bitcoin transaction). The computing device can notify the user after validating the certificate, for example, by displaying the identity information contained in the certificate along with an indication that the certificate is valid. The authentication certificate in the QR code may, for example, include a cryptocurrency or blockchain address or a public key corresponding to such address, thereby providing the wallet with a verified identity of the entity associated with the QR code, or authentication certificate, or one or more potential or existing cryptocurrency or blockchain addresses, or one or more potential or existing cryptocurrency or blockchain transactions (e.g., an on-chain blockchain Bitcoin transaction that references or includes a Bitcoin address).

[0069] Optionally, the wallet can also verify the authenticity of the information based on the authentication certificate. Optionally, the wallet can also verify the certificate in the QR code, for example, by requiring the server 108 to authenticate the authentication certificate contained in the QR code. The wallet can also participate in transactions with trusted addresses that are performing transactions with verified entities.

[0070] The QR code 350 can, for example, encode both a certification certificate and an invoice. In certain cases, the invoice may be contained within the certification certificate. Additionally or alternatively, the QR code 350 may encode a certificate that contains information other than or in addition to a cryptocurrency address or identifier. For example, the QR code may contain a certification certificate that includes a URL, an account identifier, a user identifier, or a rotating or periodically changing identifier (e.g., an AliPay™, Line™, or WeChat Pay™ payment URL or account number).

[0071] Thus, for example, when an entity scans a QR code, the entity can verify the authentication certificate and the information contained in the certificate or QR code to have confidence that the QR code (and the information within the QR code) is associated with the correct source.

[0072] Optionally, the QR code can encode an online location (e.g., a URL) or interface (e.g., an internet-accessible API) where the certification certificate can be retrieved. A hardware device or software program (e.g., a hardware Bitcoin wallet) can also retrieve the certification certificate (e.g., by downloading it from a specified URL) and validate the certificate. For example, a user can use a Bitcoin wallet on a mobile device to scan the QR code encoding or reference a URL, retrieve the certification certificate from the URL, and validate the retrieved certification certificate, including, for example, by verifying identity information and Bitcoin addresses contained in or derived from the certificate.

[0073] Optionally, the QR Code may contain or encode information in addition to where the certificate can be retrieved. For example, the QR Code may contain a destination blockchain or cryptocurrency address along with a URL where the certified certificate can be retrieved. Optionally, the certificate may be used to reveal the identity corresponding to the cryptocurrency or blockchain address and to ensure that such cryptocurrency or blockchain address matches the address encoded or included in the QR Code. Optionally, the retrieved certificate may be used to check a digital signature included in, attached to, or associated with the information contained in the QR Code (e.g., by checking that the data included in the QR Code has been validly signed by a private key corresponding to the certificate).

[0074] The present invention provides a method for using a system to perform a series of blockchain Bitcoin transactions that act as offers and endorsements, where the system is operable to reveal and verify the identities of the other parties (i.e., grantees) of the transactions. More generally, the series of blockchain Bitcoin transactions are operable as offers and corresponding endorsements. The method is described at a top level with respect to FIG. 4 and at a more detailed level with respect to FIG. 5.

[0075] Referring to FIG. 4, a flow chart illustrates a method 400 at a top level for using a system to execute a series of blockchain Bitcoin transactions acting as offers and approvals, the system being operable to reveal and verify the identity of the other party (i.e., the grantee) of the transaction, the method including:

[0076] In step 402, a certification authority (CA) reveals a "root" output on the blockchain. This "root" output shares a private key with the CA's X.509 root certificate. The "root" output specifies the public keys that correspond to the Bitcoin addresses that have unspent transaction outputs (UTXOs) on the blockchain.

[0077] In step 404, the issuing authority issues a digital certificate to the first entity (e.g., the applicant). The digital certificate may be an X.509 digital certificate. The digital certificate may vouch for (i.e., attest to) a Bitcoin address that has an unspent transaction output (UTXO) on the blockchain in a variety of ways. For example, the digital certificate may include the Bitcoin address or a corresponding cryptographic public key in its subject or extension. Alternatively, the cryptographic public key of the digital certificate may correspond to the same public key from which the Bitcoin address is derived.

[0078] In step 406, the issuing authority creates an "issue" blockchain Bitcoin transaction that spends the (UTXO) on the Bitcoin address specified in step 402. In one embodiment, the blockchain Bitcoin transaction may include two outputs. The first output, which corresponds to an identity token output usable by a public key, corresponds to a digital certificate issued by the issuing authority to the first entity. The second, "new root" output, replaces the current (e.g., currently used) root output.

[0079] In step 408, the second entity (i.e., the "applicant") creates an "Offer" transaction. The "Offer" transaction includes a single output, which is a "move" output that can be spent by the public key of the first party's (i.e., the "applicant") identity token. Optionally, in some embodiments, claiming the "move" output may require a second signature that corresponds to a newly generated Bitcoin address. In some embodiments, the second signature may also specify a time-limited time lock that allows the applicant to later revoke the unclaimed "move" output.

[0080] In step 410, the first entity (e.g., the applicant) creates an “endorsement” transaction that includes as input the “transfer” output created in the “apply” transaction in step 408. To create this “endorsement” transaction, the applicant must reveal his / her digital identity by signing the claimed transfer output with the private key corresponding to his / her identity token. The applicant can endorse the applicant’s “verified transfer” by using the “transfer” output of the “apply” transaction, such as that created in step 408. In some embodiments, the applicant’s “endorsement” transaction can be a P2PKH blockchain Bitcoin transaction, which can reduce ambiguity by including one or more outputs that have been reallocated to the applicant (i.e., the applicant) or that have been reallocated back to the applicant.

[0081] 5, a flow chart illustrates the method 400 as a more detailed process 500 for verifying certain identities of grantees in transactions that act as offers and approvals on the Bitcoin blockchain. In particular, the processes 400 and 500 may be used by entities that wish to gain confidence in the identity of other parties to a transaction.

[0082] In step 502, the certification authority forms a blockchain on the server 108. The blockchain has one or more nodes, each node having a blockchain address, and a first of the one or more nodes has a first blockchain address associated with a transaction. The blockchain may be stored on the computing device 102 or 104.

[0083] Create an issuance transaction (steps 504 to 524) In step 504, the issuing authority generates a first private key on the server 108, which may be a secp256k1 elliptic curve private key. The first private key is a single unsigned 256-bit integer of 32 bytes, and is essentially a randomly generated "secret" number known only to the person who generated it. The range of valid private keys is governed by the "secp256k1 ECDSA standard" used by Bitcoin. The public key corresponding to the private key does not need to remain secret.

[0084] In step 506, the certification authority generates, on server 108, at the request of the first entity, a root certificate using the first private key that specifies the public key. The root certificate includes a field containing the public key that corresponds to a blockchain address on the blockchain formed in step 502 at which there is an unspent transaction output (UTXO) on the blockchain.

[0085] In step 508, the first entity generates a first Bitcoin address on the computing device 102 using the first private key generated in step 506. The generated first Bitcoin address is the same as a "root" Bitcoin address of a certification authority (CA). Step 508 includes sub-steps 510, 512.

[0086] In sub-step 510 , the first entity creates a Wallet Import Format (WIF) string on the computing device 102 using the first private key generated in step 504 .

[0087] In sub-step 512, using the WIF string from sub-step 510, the first entity imports the first private key into a blockchain Bitcoin transaction system. The Bitcoin transaction system is a system in which customers use ATMs to deposit cash on-site and buy Bitcoins from or sell their own Bitcoins to Bitcoin exchanges. By using ATMs installed in various locations, Bitcoins can be easily and conveniently traded for cash, thereby promoting the use of Bitcoin.

[0088] In step 514, the issuing authority generates a blockchain bitcoin transaction on server 108 with an output that can be used with the public key of the CA’s root certificate. This is the CA’s “root” output.

[0089] In step 516, the issuing authority generates a second private key on the server 108. The second private key is a single unsigned 256-bit integer of 32 bytes, and is essentially a randomly generated "secret" number known only to the person who generated it. The range of valid private keys is governed by the "secp256k1 ECDSA standard" used by Bitcoin.

[0090] In step 518, the issuing authority generates, on server 108, a second Bitcoin address using the second private key generated in step 512. This is the Bitcoin address of the first user's "identity token."

[0091] In step 520, the certificate authority generates a certificate signing request (CSR) for the first user on server 108. In one embodiment, the CA performs a complete background check and authentication process when a party requests a digital certificate as part of the enrollment process. However, once this enrollment process is complete, the CA automatically issues a digital certificate in response whenever a first party submits a CSR.

[0092] In step 522 , the issuing authority issues a leaf certificate to the first user on the server 108 from the first user's CSR generated in step 516 .

[0093] In step 524, the issuing authority creates an “issue transaction” on server 108. Using the first private key of the CA’s root address, the issuing authority creates and signs a blockchain Bitcoin transaction that includes the CA’s root output as an input. The “issue transaction” further includes an output that can be spent by the Bitcoin address of the first user’s identity token. In some embodiments, the “issue transaction” can be a standard blockchain Bitcoin transaction with an “identity token” output that can be spent by a pay-to-pubkey-hash (P2PKH) Bitcoin address (i.e., a regular Bitcoin address). In other embodiments, spending the “identity token” output of the “issue” transaction may require a 1-of-2 multi-signature redemption script (i.e., a “multisig” wallet). In such a case, for example, the user’s identity token may only be valid while the user’s identity token output is unused. Optionally, the user’s identity token may be revoked by the issuer (e.g., the CA) or invalidated by the user by using it (e.g., spending it). Optionally, the user's approval of the CA's offer of identity can also be a P2PKH Bitcoin transaction, possibly including, for example, one or more zero-valued outputs, self-assigned or re-assigned to the issuing CA.

[0094] Create an application transaction (steps 526 to 530) In step 526, the first entity creates an “apply” transaction on the computing device 102 having a “move” output that can be used with the public key of the first party’s identity token output. Step 522 includes sub-steps 524, 526. In some embodiments, the “move” output may require two signatures from the applicant. For example, the two required signatures may correspond to (1) a newly generated receiving address and (2) the applicant’s “identity token.”

[0095] In sub-step 528, the first entity generates a third private key on the computing device 102. The third private key is a single unsigned 256-bit integer of 32 bytes, essentially a randomly generated "secret" number known only to the person who generated it. The range of valid private keys is governed by the "secp256k1 ECDSA standard" used by Bitcoin.

[0096] In sub-step 530, the first entity creates and signs a blockchain Bitcoin transaction on the computing device 102 with an output (e.g., a "move" output) that can be spent by the Bitcoin address of the first user's "identity token". In some embodiments, an "integrated" contract transaction may be created by the first entity in lieu of signing a blockchain Bitcoin transaction. The "integrated" contract transaction may include an input that corresponds to the first user's "identity token" output, thus requiring a signature on the transaction from the first user. In some embodiments, the first user's private key may be used to sign the "integrated" contract transaction. In some embodiments, the publication or submission of a fully signed "contract" transaction can act as both an offer and an acceptance. "Integrated" contract transactions are discussed in more detail further below.

[0097] Creating a Validated Approval Transaction In step 532, the second entity creates a verified authorization transaction on the computing device 104.

[0098] Integrated Contract In some embodiments, the "integrated" contract transaction may be created by the first entity in lieu of signing a blockchain Bitcoin transaction as discussed in sub-step 530 above. When the "integrated" contract is created, the "integrated" contract transaction may include an input that corresponds to the first user's "identity token" output, thus requiring a signature on the transaction from the first user. In some embodiments, the "integrated" contract transaction may be signed using the first user's private key. In embodiments where the applicant indicates his / her approval by signing the "identity token" input into the "integrated" contract transaction, signing may proceed as follows: a. An applicant can construct an initial "contract" transaction and sign their inputs with a specific type of signature. In one embodiment, the applicant can specify a SIGHASH_SINGLE flag for the transaction's outputs that will only commit to a specific "move" output, e.g. a remainder. b. The subscriber may indicate approval, and thus complete the "contract" transaction, by signing their "identity token" input to the "contract" transaction with a special type of signature. For example, the subscriber may approve the "verified move" by signing with a SIGHASH_SINGLE flag, which commits to only the "move" output that the subscriber wishes to approve, with respect to the transaction's outputs.

[0099] Reducing uncertainty in applicant approval In the embodiment described above, the applicant's approval may be represented as a transaction containing an output that reallocates the "move" output to the applicant. It is conceivable that the applicant could create such an approval transaction for some unknown reason without actually indicating approval, among other things, of any implied terms. Combining the offer and the approval into a single transaction significantly reduces this potential ambiguity. In one embodiment, resolving such ambiguity may require the use of a transaction type or opcode that can both explicitly indicate the approval of the offer and also incorporate by reference (e.g., by hashing) an offer for a fixed period of time, particularly an offer for any period that is not guaranteed or that is automatically executed by the blockchain's consensus rules. For example, in one embodiment, a time-limited time-lock may be used. After the time-lock expires, the pass in use may become invalid. Such a mechanism may enable the applicant to offer a limited-time offer by providing for automatic revocation of the offer after a certain time. This may also reduce ambiguity that may arise from approaches that may result in race conditions, such as making the transaction expire by allowing a new further use pass after a specified period of time.

[0100] The computing system 600 includes a processor 602 (which may be the same as or similar to the processor 110), a random access memory (RAM) 604, and a storage device 606, which may be a hard drive, CD, DVD, flash drive, or any other type of non-volatile memory. Software instructions may be stored in the RAM 804 and / or the storage device 606. The processor 602 may be coupled to the storage device 606 and / or the RAM 704 such that the processor 602 can read the software instructions. When the processor 602 reads the software instructions, the software instructions may cause the processor 602 to perform operations to calculate the position of the magnetic target, as described above. Although not shown, the processor 602 and / or the system 600 may include other inputs and outputs, such as inputs for receiving signals from sensor elements, GPIOs, power inputs, or other interfaces, such as USB, SATA, and HDMI.

[0101] The systems and methods described above can be for the validation of entities involved in any blockchain transaction. For example, commonly trusted X.509 digital certificates would allow users (as well as software and hardware wallets) to validate that a particular blockchain address is in fact controlled by the intended recipient and not an intermediary. Software or hardware wallets can also use X.509 digital certificates to validate the identity of the recipient.

[0102] The systems, devices, and methods described above are exemplary systems, devices, and methods shown for purposes of understanding and illustration. Variations in these systems, devices, and methods are within the scope of this disclosure. Equivalent systems, devices, and methods are also within the scope of this disclosure. The flow charts shown in the figures and described in this disclosure do not necessarily require any particular order of steps. Also, various steps may be added, removed, rearranged, and reordered as desired to produce the same or similar results and remain within the scope of this disclosure.

[0103] Various embodiments are described in this patent. However, the scope of this patent is not intended to be limited to the embodiments described, but rather is limited only by the spirit and scope of the following claims. All references cited in this patent are incorporated by reference in their entirety.

Claims

1. A system for executing a series of verified blockchain transactions that act as applications and approvals by verifying certain identity information of a first entity (applicant), the system comprising: forming, by one or more servers, a blockchain having one or more nodes, each node having an associated blockchain address, a first node of the one or more nodes of the blockchain having a first blockchain address having an unspent transaction output (UTXO); generating, by the one or more servers, a first private key corresponding to an identity of a root certification authority; Establishing a root of trust on the blockchain by the one or more servers, at the request of a first entity (applicant), using the first private key, the establishing of the root of trust including providing a root certification certificate associated with the first entity (applicant), the root certification certificate including a first field including a public key corresponding to the blockchain address at which the unspent transaction output (UTXO) is located on the blockchain; generating, by a computing device of the first entity (applicant), a first Bitcoin address in a blockchain using the first private key, the first Bitcoin address being the same as a root Bitcoin address of the certification authority; generating, by the one or more servers, a blockchain bitcoin transaction having an output usable at the public key of the root certification certificate; generating, by the one or more servers, a second private key corresponding to an identity of an issuing authority; generating, by the one or more servers, a second Bitcoin address in a blockchain as a Bitcoin address of the identity token of the first entity (applicant) using the second private key; issuing, by said one or more servers, a leaf certificate to a first entity (applicant) from said root certified certificate associated with said first entity (applicant); generating, by the one or more servers, an issuance transaction using the first private key, the issuance transaction including two outputs: an identity token output usable by a public key corresponding to the leaf certificate, and a new root output that replaces a current root output; creating, by a computing device of a second entity (applicant), an offer transaction including a transfer output that can be used with the public key of the identity token of the first entity (applicant); creating, by a computing device of said first entity (applicant), an approval transaction that includes as an input said transfer output of said application transaction; A system operable to:

2. Creating an application transaction by a computing device of the second entity (applicant), comprising: generating a third private key; revealing an identity corresponding to a user of the third private key; creating the transfer output of the offer transaction using the third private key to create a blockchain transaction with an output that can be spent by the Bitcoin address of a first entity's (applicant's) identity token; The system of claim 1 , comprising:

3. Creating an application transaction is adding an input to the identity token output of the first entity (applicant) requiring a signature on the application transaction from the first entity (applicant); The system of claim 1 , comprising:

4. Creating an application transaction is including an output that, when used in the application transaction, acts as an authorization for a specified applicant, the output requiring a signature by a private key of a corresponding identity token output. The system of claim 1 , comprising:

5. 2. The system of claim 1, wherein creating an authorization transaction includes signing the transfer output with a private key corresponding to the identity token of the first entity (applicant).

6. 2. The system of claim 1, wherein the authentication certificate is an X.509 digital certificate.

7. The system of claim 1 , wherein the one or more servers are associated with a certification service.

8. The system of claim 1 , wherein the root certification certificate is associated with a cryptographic public key.

9. A method for executing a series of verified blockchain transactions that act as applications and approvals by verifying certain identity information of a first entity (applicant), comprising: forming, by a first computing device, a blockchain having one or more nodes, each node having a blockchain address, a first node of the one or more nodes having the first blockchain address associated with a transaction including an unspent transaction output (UTXO); generating, by an authentication / issuance server, a first private key that identifies the identity of a root certification authority; Establishing, by the Authentication / Issuance Server, at the request of a first entity (applicant) of a transaction on a blockchain, a root of trust on the blockchain using the first private key, the step including generating an authentication certificate associated with the first entity (applicant), the authentication certificate specifying a public key included as a certificate field, the public key corresponding to the first blockchain address associated with the unspent transaction output (UTXO) on the blockchain; generating a first bitcoin address by the first entity (applicant) of the transaction using the first private key; generating, by the authentication / issuance server, a second private key that identifies an identity of an issuing authority associated with the authentication / issuance server; generating, by the Authentication / Issuance Server, a second Bitcoin address in a blockchain using the second private key, the second Bitcoin address including an address of an identity token of the first entity (applicant); generating, by said authentication / issuance server, a certificate signing request (CSR) for said first entity (applicant) of a transaction; issuing, by said authentication / issuance server, a leaf certificate from said first entity's CSR to said first entity (applicant) of a transaction; generating, by the Authentication / Issuance Server, an issuance transaction using the first private key, the issuance transaction including a blockchain Bitcoin transaction to be signed that includes the Authentication / Issuance Server's root output as an input, and spending the unspent transaction output (UTXO) on the blockchain, the root output being usable only by the public key of the certification authority's authentication certificate; creating, by a computing device of a second entity (applicant), an application transaction having a transfer output usable by a public key of an identity token of said first entity (applicant); creating, by a computing device of a first entity (applicant), an acceptance transaction that includes as input the transfer output of said offer transaction; A method comprising:

10. The issue transaction is an identity token that can be used with the public key corresponding to a certification certificate issued by the authentication / issuance server to the first entity (applicant) from its root certificate, and a new root output that replaces the root output of the authentication / issuance server; 10. The method of claim 9 having at least two outputs, including:

11. 10. The method of claim 9, wherein creating an authorization transaction by the computing device of the second entity (applicant) includes signing the transfer output with a private key corresponding to an identity token associated with the issuance transaction.

12. 10. The method of claim 9, wherein generating the first bitcoin address includes creating a Wallet Import Format (WIF) string using the first private key and importing the first private key into a blockchain bitcoin transaction system using the WIF.

13. 10. The method of claim 9, wherein the authentication certificate is an X.509 digital certificate.

Citation Information

Patent Citations

  • Block chain data processing method and device, processing equipment and system

    CN108647968A

  • Digital certificate verification method and device, computer equipment and storage medium

    CN108964924A

  • Signature verification system, signature verification method and program

    JP2018014622A