Debt Resource Management in Distributed Ledger Systems

A blockchain protocol integrates credit and debit transactions by defining credits and debits based on unmatched outputs and inputs, ensuring debt repayment and eliminating the need for centralized systems, addressing the lack of debit representation in distributed ledgers.

JP7617806B2Active Publication Date: 2025-01-20MITSUBISHI ELECTRIC CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021071197
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-26
Filing Date
2021-04-20
Publication Date
2025-01-20
Estimated Expiration
2041-04-20

AI Technical Summary

Technical Problem

Distributed ledger systems, such as blockchain, lack the ability to represent debits or negative transactions, which are essential for a functioning economy, as they rely on the assumption of no coercion and cannot guarantee debt repayment without centralized systems.

Method used

A blockchain protocol is developed to integrate both credit and debit transactions by defining credits as transactions with unmatched outputs and debits as transactions with unmatched inputs, ensuring that debt transactions are naturally integrated into the UTXO model, with debt-only addresses allowing transactions without associated UTXOs, and debt issuance transactions validated by creditor authorization.

Benefits of technology

This approach ensures debt transactions are seamlessly integrated into the UTXO model, maintaining system integrity by guaranteeing debt repayment and eliminating the need for centralized reserve assets, thus enhancing the protocol's reliability and reducing complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007617806000002
    Figure 0007617806000002
  • Figure 0007617806000003
    Figure 0007617806000003
  • Figure 0007617806000004
    Figure 0007617806000004
Patent Text Reader

Abstract

To provide a distributed ledger system and method for expressing values of debts by a distributed method without depending on reserve assets held by a centralized system.SOLUTION: A distributed ledger system 100 represents debts in the form of tokens and transfers them in a distributed ledger. Debt tokens are implemented in an unused transaction output (UTXO) model by creating debt-only addresses that can send credit only with permission. Credit tokens are implemented based on the UTXO model by requiring an input and an output specified for the credit transaction.SELECTED DRAWING: Figure 1A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates generally to distributed ledger systems, and more specifically to debt resource management in distributed ledger systems, such as in a blockchain. [Background technology]

[0002] background The modern digitalization of assets has caused the transformation of traditional systems in various fields. Such assets can include literary assets, entertainment-related assets, books, images, multimedia, knowledge, and financial and monetary assets among others. With the advent of groundbreaking technologies such as blockchain and digital wallets, even traditionally tangible assets such as money or currency are now mimicked in the digital sphere. One such groundbreaking technology is the implementation of digital tokens, which can be represented by a single digital unit that can be used to mimic tangible objects such as paper notes, coins, or any other unit of currency.

[0003] A digital token is a unit of exchange that mimics the behavior of convertible currency such as paper notes or coins. Similar to real-world banking systems, a digital token can be associated with a digital token account. A digital token account can be realized through a digital ledger system. A digital ledger system or digital ledger is a database or record of transactions stored in the system's memory. Credit transactions and debit transactions are two types of transactions in a digital ledger. A credit transaction is a positive addition to the digital ledger and a debit transaction is a negative addition to the digital ledger.

[0004] Digital ledger systems can be realized in different kinds of architectures. These architectures can be broadly classified as centralized and decentralized or distributed architectures. In these different architectures, the management of transactions can be done according to a centralized or decentralized method. The first method, the centralized method, is the common method of using a centralized system, which keeps a record of all transactions in this system and changes this record without the consent of other systems to its own record. The second method, the decentralized or distributed method, allows multiple systems to keep a record of transactions and forms a consensus between the systems regarding the most updated copy of the record. This is achieved by using a consensus algorithm that ensures Byzantine fault tolerant replication among multiple nodes of the decentralized system. The decentralized method is practical in that it uses cryptography and consensus algorithms, reducing the amount of trust that users must place in the entire system. Furthermore, the decentralized method reduces the reliance on one control point and distributes the control of the system to multiple access points while at the same time ensuring the security of the system by using consensus. One example of a decentralized architecture system that uses distributed management of transactions is a distributed ledger system made possible by a data structure called a blockchain.

[0005] A blockchain is an append-only data structure consisting of blocks linked together, such as by using a linked list structure. A block contains information associated with digital data, including a header, metadata, and a transaction list. The header and metadata may include information about the software version, a cryptographic hash used to verify the integrity of the transactions contained in the block, a timestamp, and the like. The transaction list contains individual transactions that represent changes in the state of the distributed ledger system. In a blockchain system, users can be associated with cryptographically generated addresses, hereafter referred to as "addresses." Addresses can be used for transactions between users. In a blockchain, a credit balance can be associated with an address and may simply be the sum of all income transactions for that address. A user can own multiple addresses in a distributed ledger system, in which case the user's personal balance is the sum of the balances of all the user's addresses.

[0006] One way to realize transactions in a distributed ledger with a blockchain data structure is through the use of the unspent transaction output (UTXO) model. In the UTXO model, a transaction may have an input and an output. The input to the transaction may include a pointer to a UTXO and an unlock script. The output includes an amount and the address of a user to which the corresponding amount is sent. If a transaction output in the UTXO model is not matched with an input of some next transaction, this output is treated as an "unspent" and spendable unit. When a UTXO is matched with a transaction input, it is considered for transfer or consumption. Thus, a UTXO is a transaction output without a corresponding input, i.e., it is unmatched and available for consumption. Thus, a UTXO is essentially a credit transferred to a user, and thus the sum of UTXOs in all addresses corresponding to this user is this user's account balance. Summary of the Invention [Problem to be solved by the invention]

[0007] However, UTXOs do not represent the concept of debits. In particular, debits determined through transaction inputs do not exist in the blockchain without an equivalent corresponding credit determined through transaction outputs. One notable exception is, for example, the creation of tokens through mining, which can be done without requiring any inputs at all.

[0008] Traditionally, a UTXO can be part of a transaction with multiple output addresses. If the total amount in the UTXO is larger than the total amount needed for the transaction, the UTXO sends all of that amount to multiple addresses. A portion of the transaction output amount covers the transaction, and another portion goes to the same address or to a newly created address associated with the sender. Thus, traditionally, each transaction input is matched with a transaction output. Thus, debits determined through transaction inputs do not exist without an equivalent corresponding credit determined through transaction outputs.

[0009] Traditionally, in a centralized system, a debit entry exists by itself, and is commonly called a liability in double-entry bookkeeping. This existence of negative money is essential for a complex economy to function, since it represents a debt. Conversely, most distributed ledgers implement currency, which cannot be negative. Importantly, most successful distributed ledgers do so under the assumption that there is no coercion. Without coercion, debt repayment cannot be guaranteed. Issuing debt without coercion would result in negative account balances, which would not give the distributed ledger any value. This is easily solved by implementing the ledger in a centralized system. A centralized system could, for example, be designed to interface with the entire legal system to regulate and guarantee debt repayment. However, there seems to be no way to reconcile the need to guarantee debt repayment with the usual way that distributed ledgers work.

[0010] There is therefore a need to represent the value of debt in a decentralized manner, such as in a distributed ledger system with a blockchain data structure, without relying on a reserve asset of digital tokens held by a centralized system.

[0011] overview It is an object of some embodiments to provide a system and method for representing the value of debt in a decentralized manner without relying on reserve assets held by a centralized system Additionally or alternatively, it is an object of some embodiments to provide a system and method for ensuring the regulation and repayment of debt in a mandatory manner. [Means for solving the problem]

[0012] Some embodiments are based on the understanding that a debt concept can be created on top of a blockchain protocol. For example, two blockchains can be created, one for positive tokens (also called credits) and one for negative tokens (also called debits). In addition, the credit concept can be created with the help of smart contracts. However, such a dual ledger system or the extension of smart contracts adds inconvenient and potentially undesirable dependencies on third-party software.

[0013] To that end, it is an objective of some embodiments to provide a blockchain protocol suitable for creating both credit and debit transactions, and additionally or alternatively, it is an objective of some embodiments to provide such a blockchain protocol that can be combined with or extended by the traditional UTXO model.

[0014] Some embodiments are based on the realization that if the concept of credits in the UTXO model is built on transactions with unmatched outputs, then the concept of debits in the extended UTXO model can be constructed on transactions with unmatched inputs. In other words, a credit is a transaction with an input and an unmatched output, and a debit is a transaction with an output and an unmatched input. In this way, debt transactions can be naturally integrated into the UTXO model.

[0015] In particular, a coinbase transaction to create credits through mining has no input. However, a debit transaction has an input, but this input is unmatched. The difference between no input and an unmatched input is evident from the following fact: a blockchain protocol can match an unmatched input, but cannot match or add an input to a coinbase transaction. In this way, the protocol can cancel a debt (or a payment of a debt) by simply matching the input with the output of a credit transaction. Such a payment would not be possible with a coinbase transaction.

[0016] The introduction of debt transactions based on unmatched inputs combines debt and credit transactions into one protocol. By representing debts directly within the protocol, the integrity of the protocol is improved. Alternative methods of implementing debts introduce additional complexity, which reduces the usefulness of the protocol and increases the likelihood of failure.

[0017] Additionally, the integration of debt and credit transactions provides an alternative to credit creation / mining based on the concept of proof of work. In some implementations of the integrated distributed ledger, the creation of credit creation transactions is possible if someone is willing to assume a debt for such creation. In this way, credit creation is validated by the creditor.

[0018] Some embodiments are based on a distributed ledger that realizes a debt-credit system through the introduction of debt tokens. The value of the system is guaranteed by the willingness of users to assume debts. Thus, the system generates credit token balances and simultaneously creates debt token balances of the same amount. To that end, some embodiments are based on the objective of creating a unified, yet decentralized, way in which debts can be created. Repayment of debts is realized in a mandatory way.

[0019] Some embodiments are based on the introduction of a new debt-issuing transaction. Debt is realized by introducing a debt-only address, which is an address that can send a sum without an associated UTXO. In a debt-issuing transaction, a transaction is created whose transaction input is directed to a debt-only address whose unlock script holds a public key that guarantees the permission to assume the debt. It replaces the creation transaction in the UTXO model, creating tokens by introducing a transaction with unmatched input fields. When processing a debt-issuing transaction, the protocol does not check the UTXO. It checks instead for the permission that allows the creditor user to issue debt to the debtor user.

[0020] Some embodiments are based on token creation. Whenever the system issues a debt token, it also issues a corresponding credit token, and any amount of debt tokens issued is issued with a corresponding amount of credit tokens. Token creation is done by creating a UTXO owned by the creditor user. The UTXO is also created by debiting a debt-only address owned by the debtor. This ensures that the amount of credits and debits is equal in the system at any time, and avoids the creation of credits or debits on command if the party does not intend to assume the debt. Debt-only addresses can only send credits through debt issuing transactions. This ensures that debts cannot be created and credit tokens cannot be created without authorization from the protocol.

[0021] In this manner, debt tokens are created at debt-only addresses and cannot be transferred. Furthermore, creating debt and credit tokens in this manner ensures that users have debts that must be fulfilled and paid, and thus does not allow the ability to programmatically waive debt. As described in various embodiments herein, this is necessarily enforced by the protocol.

[0022] Some embodiments describe the creation of debt and credit tokens. As described in more detail in various embodiments, credit tokens can be freely moved. Additionally, debt tokens can be voided by sending credit transactions and / or credit tokens at a debt-only address in a transaction output. A credit token amount sent to a debt-only address voids an equal amount of debt tokens held at that address. Structurally, debt payment transactions mimic credit transactions. Credit tokens sent to a debt-only address ensure that the debt-only address does not have a negative balance. Thus, when a credit transaction is initiated to send more than a maximum amount to a debt-only address, a transaction with a UTXO is created and the difference between the amount sent and the maximum amount is stored in the UTXO.

[0023] Some embodiments describe the management of a debt pool for accounting of debts to users in a distributed system. The debt pool may store debt tokens that can be issued to users as needed and voided when the debt is paid, for example by sending a credit token to the debt pool in an amount equal to the total debt amount.

[0024] Some embodiments describe a blockchain protocol stack for managing debt using debt and credit tokens in a distributed ledger system. The blockchain protocol may implement the various transactions mentioned above using the distributed ledger system architecture described in some embodiments.

[0025] The presently disclosed embodiments will be further described with reference to the accompanying drawings, in which: The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the presently disclosed embodiments. [Brief description of the drawings]

[0026] [Figure 1A] FIG. 1 illustrates a schematic diagram of a distributed ledger system according to some embodiments. [Figure 1B] FIG. 1 illustrates an example of a transaction structure in a UTXO-based model. [Figure 1C] FIG. 2 illustrates an example of a transaction input data structure. [Figure 1D] FIG. 13 illustrates an example of a transaction output data structure. [Diagram 2] FIG. 1 shows an example of an unspent transaction output (UTXO). [Figure 3A] FIG. 2 illustrates an example of a debt transaction. [Figure 3B] FIG. 2 illustrates an example of an unused debt-to-credit transaction. [Figure 3C] FIG. 1 illustrates a partially paid debt transaction. [Figure 4A] FIG. 13 shows an example of a debt transaction with a flag. [Figure 4B] FIG. 13 illustrates an example of a coinbase transaction with a flag. [Figure 5A] FIG. 2 illustrates an example of an obligation transaction in an obligation pool. [Figure 5B] FIG. 1 illustrates the creation of a debt simultaneously with a credit transaction. [Figure 6A] FIG. 1 illustrates an example of a block structure of a blockchain according to some embodiments. [Figure 6B] FIG. 1 illustrates an example of a method for generating a debt-only address from a public key. [Figure 7] An example diagram showing a blockchain protocol stack for implementing debt management in a distributed ledger system is shown. [Figure 8] FIG. 1 illustrates a block diagram of a distributed ledger system architecture according to some embodiments. [Figure 9]FIG. 9 illustrates a block diagram of the distributed ledger system of FIG. 8 according to some embodiments. [Figure 10] FIG. 1 illustrates an example architecture of a distributed ledger system with debt management according to some embodiments. [Figure 11] FIG. 1 illustrates an example block diagram of a method for debt management in a distributed ledger system according to some embodiments. [Figure 12A] FIG. 1 illustrates an example block diagram of a sequence of events that occur in an embodiment of a blockchain system with a coinbase transaction being accepted by the network. [Figure 12B] 1 shows an example block diagram of the sequence of events that occur when a debt transaction is created. [Figure 12C] 1 shows an example block diagram of the sequence of events that occur when a debt is paid. [Figure 12D] 1 illustrates an example block diagram of the sequence of events that occur when a debt transaction is paid in full or is greater than the total debt amount. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0027] Detailed Description The present disclosure relates to a method for implementing a debt-credit system for use in a distributed or decentralized ledger system architecture. Some embodiments of the present disclosure are based on the Unspent Transaction Output (UTXO) model. The UTXO model is used to provide a UTXO-based distributed ledger system in which credit transactions are backed by debts, and the sum of credits in the system is equal to the sum of debts in the system. The relationship between credits and debits in this aspect of the system ensures that the creation of credits is only possible if an equal debt is simultaneously created.

[0028] In a UTXO-based system, participants in the network can interact with each other by sending transactions to each other. This is facilitated in part by public-private key cryptography. Each participant in the system is represented by a private key from which a corresponding public key can be generated. In some embodiments, a master public key can generate many child public keys, each of which has an associated public key. The use of cryptography and public-private key pairs provides a secure system architecture. Current UTXO-based systems, with cryptographically enabled features, still lack debt transactions and efficient debt management procedures, making it impossible to efficiently represent debt in the system. In a UTXO-based system, a UTXO is a transaction without any transaction output. Thus, a UTXO can be considered as an unspent resource unit, such as currency or unspent money, available for consumption by a user in the system. For example, just as a real-world user carries cash in a wallet or has money in their account to consume during various transactions, a UTXO is a user's unspent money or credit in a distributed ledger system. A transaction represents a transfer or retransfer of credit. This does not mean that the UTXO structure is limited to representing monetary value: UTXO-based systems can represent other types of immutable data, such as personal identities, units of energy, and / or various commodities available on a chainstore and tracked by a blockchain-based resource management system.

[0029] FIG. 1A illustrates a schematic diagram of a distributed ledger system 100 according to some embodiments. In various embodiments, the distributed ledger system 100 implements transactions in a distributed ledger having a blockchain data structure. To that end, the distributed ledger system 100 includes at least one processor configured to execute a blockchain protocol to receive messages and process the messages into one or more blocks 112, 114, and 116 of the blockchain. The one or more blocks 112-116 may further be connected to multiple nodes in the distributed ledger system 100, where the nodes may be components of an overall network that uses the blockchain protocol. The multiple nodes may be interconnected such that each node is connected to every other node in the network. Furthermore, each node may be configured to include its own copy of the entire blockchain represented in the distributed ledger system 100 using the blockchain protocol. Furthermore, each node may be implemented by multiple means, including but not limited to a computer, a mobile device, a handheld device, a portable computing device, a tablet, a smartphone, a laptop, a smart wearable device, and the like. Each node may be configured to have a consensus-based copy of the blockchain formed by one or more of blocks 112-116.

[0030] Each block of the blockchain may include multiple fields including a hash field, a timestamp field, a transaction root field, and a nonce field. The hash field may include a cryptographic hash function, such as a SHA256 cryptographic hash algorithm, that is created on the header of each block. Each of the one or more blocks 112-116 may include a reference to a hash of a previous block. Each of the one or more blocks 112-116 may further include a timestamp field that describes the time the block was constructed or created. Each block may further include a transaction root, which includes the root of a Merkle tree associated with the block. A Merkle tree is a binary hash tree that can be used to validate the data of each block. The transaction root may include a hash of the root of the transaction of each block, such as transaction 126. Each block may further include a nonce (number only used once) field, which may be a counter that can be used to solve a difficulty target algorithm associated with the block. For example, the nonce may be used by the block in solving the difficulty target algorithm. In some embodiments, the difficulty target algorithm may be a Proof-of-Work (PoW) algorithm used in the blockchain by one or more blocks 112-116 of the blockchain.

[0031] A blockchain is a decentralized, distributed, and mostly public digital ledger used to record transactions across many computers in such a way that any record involved cannot be retroactively changed without the modification of all subsequent blocks. This allows participants to verify and audit transactions independently and at a relatively low cost. Blockchain databases are autonomously managed using a peer-to-peer network of multiple nodes and distributed timestamp servers. These are authenticated by mass collaboration driven by a collection of self-interests. Such a design facilitates a robust workflow where participants' mistrust regarding data security is insignificant. The use of blockchain removes the characteristic of infinite repeatability from digital assets. This ensures that each unit of value is transferred exactly once, solving the long-standing problem of double spending.

[0032] In various embodiments, the blockchain protocol is realized through the use of the UTXO model. To this end, messages are associated with transactions 126 to be included in the blockchain, matching the inputs and outputs of the transaction with neighboring transactions 126 such that the inputs of the transaction are matched with the outputs of the previous transaction and the outputs of the transaction are matched with the inputs of the next transaction. The processor is configured to generate various types of transactions 128 during the processing of the messages, including credit transactions 118 with unmatched outputs configured to be matched with the next transaction, debit transactions 120 with unmatched inputs configured to be matched with the previous transaction, and transfer transactions 122 with matched inputs and matched outputs. The transfer transactions 122 may be of different types, such as unused debt-credit transactions and / or partially repaid debt transactions. In some implementations, the different types of transactions 128 may optionally include coinbase transactions 124.

[0033] It is an object of some embodiments to provide a system and method for representing the value of debt in a decentralized manner without relying on reserve assets held by a centralized system Additionally or alternatively, it is an object of some embodiments to provide a system and method for ensuring the regulation and repayment of debt in a mandatory manner.

[0034] Some embodiments are based on the understanding that a debit concept can be created on top of a blockchain protocol. For example, two blockchains can be created, one for positive tokens (also called credits) and one for negative tokens (also called debits). In addition, the credit concept can be created with the help of smart contracts. However, such a dual ledger system or the extension of smart contracts adds inconvenient and potentially undesirable dependencies on third-party software.

[0035] To that end, it is an objective of some embodiments to provide a blockchain protocol suitable for creating both credit and debit transactions, and additionally or alternatively, it is an objective of some embodiments to provide such a blockchain protocol that can be combined with or extended by the traditional UTXO model.

[0036] Some embodiments are based on the realization that if the concept of credit in the UTXO model is built on transactions with unmatched outputs, the concept of debit in the extended UTXO model can be constructed on transactions with unmatched inputs. In other words, a credit is a transaction with an input and an unmatched output, and a debit is a transaction with an output and an unmatched input. In a distributed ledger system configured to realize these transactions, such transactions with outputs and unmatched inputs may be called debt transactions. In this way, debt transactions can be naturally integrated into the UTXO model. By introducing debt transactions based on unmatched inputs, debt and credit transactions are integrated into one protocol. Expressing debts directly in this protocol improves the integrity of the protocol. Alternative ways to realize debts introduce additional complexity, which reduces the usefulness of the protocol and increases the probability of failure.

[0037] To that end, the transaction structure benefits from input / output relationships. For example, credit transactions are created with unmatched outputs configured to be matched with the next transaction. Similarly, debit transactions are created with unmatched inputs configured to be matched with the previous transaction. Transfer transactions are created with matched inputs and matched outputs. Transfer transactions can link credits to debit transactions and vice versa.

[0038] For example, as used herein, a credit transaction with an unmatched output configured to be matched with a next transaction means that the distributed ledger system 100 stores executable code that, when executed by a processor (after the credit transaction is added to the blockchain), generates another transaction with an input that points to the output of the credit transaction. This transaction is referred to herein as the next transaction because it is created later than the credit transaction and is linked to the credit transaction through the output of the credit transaction, i.e., in the manner that the UTXO indicates as a subsequent link.

[0039] As used herein, a debit transaction with unmatched inputs configured to be matched with a previous transaction means that the distributed ledger system 100 stores executable code that, when executed by a processor (after the debit transaction is added to the blockchain), generates another transaction with outputs that point to the inputs of the debit transaction. This other transaction is referred to herein as the previous transaction, even if the previous transaction was added to the blockchain after the debit transaction, because the previous transaction is linked to the debit transaction through its inputs, i.e., in the manner that the UTXO indicates as a prior link. In this way, debt transactions are integrated into the blockchain protocol, which can be combined with or extended from the traditional UTXO model.

[0040] FIG. 1B illustrates an example of a structure of a transaction 130 in a UTXO model-based system. The example transaction structure includes a version number 132 that allows the network to handle different valid versions of the blockchain protocol. It also includes a container of inputs 134 and / or transaction inputs 134, which are data structures used to point to UTXOs and represent sources of credits, shown in more detail in FIG. 1C. It also includes a container of outputs 136 and / or transaction outputs 136, which are data structures used to transfer credits to another recipient in the form of a lock script. The example transaction 130 structure also includes a lock time 138 that specifies the earliest time the transaction can be added to a system, such as a distributed ledger system. In some embodiments, the distributed ledger system is a blockchain system, such as the distributed ledger system 100 based on the blockchain protocol described in connection with FIG. 1A. In such a blockchain system, the lock time 138 may be a Unix Epoch timestamp or a block height, which represents the number of blocks that must exist in the blockchain before a transaction can be considered for inclusion in one or more of blocks 112-116, such as those described with respect to FIG. 1A. In some embodiments, the lock time 138 may be determined based on an agreement between different nodes in the blockchain system regarding which copy of the distributed ledger should be used to update a block of the blockchain. In such a case, the longest block sequence may be selected as the most updated copy of the blockchain, and the lock time 138 may be updated based on this longest block sequence. The blockchain system may be used to execute transactions as defined by the transaction structure 130. The transaction structure 130 will now be described in more detail with respect to FIG. 1C.

[0041] FIG. 1C illustrates an example of a transaction input data structure 140, such as the transaction input 134 depicted in FIG. 1B. The transaction input data structure 140 may include a transaction hash 142, which may include a pointer to a transaction that includes the UTXO to be consumed. The transaction input data structure 140 further includes an output index 144, which includes an index number of the UTXO to be consumed. The transaction input data structure 140 further includes a field for specifying an unlock script size 146, which may be used to specify the size of the unlock script in bytes. The transaction input data structure 140 also includes an unlock script 148, which includes a script that satisfies the conditions of the lock script of the UTXO pointed to by the transaction hash 142. The unlock script 148 may be used to specify the conditions for consuming the UTXO associated with the transaction input data structure 140. As illustrated with the transaction output shown in FIG. 1D, a combination of an unlock script 148 and a corresponding lock script is used to validate a transaction associated with the transaction input data structure 140. Specifically, the unlock script 148 can be executed in parallel with the lock script to ensure that the transaction satisfies the conditions for spending the UTXO specified in the unlock script 148. Some examples of unlock scripts may include P2PKH (Pay to Public Key Hash) or P2SH (Pay to Script Hash). These unlock scripts are used to specify a cryptographic puzzle that may need to be solved to spend the UTXO associated with the transaction input structure 140. For example, a P2PKH unlock script may specify a hash of a public key, usually the address of the recipient, that can be solved precisely by the public key owner who owns the private key.The lock script, which may be used to validate the unlock script, is found in a corresponding transaction output data structure, such as the transaction output data structure detailed in FIG. 1D.

[0042] 1D shows an example of a transaction output data structure 150, such as the transaction output data structure 136. It includes an amount of value in bytes 152 to be sent. The amount 152 is some amount of digital currency less than or equal to the amount available in the transaction inputs. Some embodiments may specify the amount in digital tokens. The transaction output data structure 150 also includes a field that specifies a lock script size 154, which is the size of the lock script in bytes. The transaction output data structure 150 also includes a lock script 156 that specifies the conditions that must be met to send the amount. The lock script 156 and the unlock script 148 execute together to validate the UTXOs defined by the transaction inputs 140 and the transaction outputs 150.

[0043] FIG. 2 shows an example of a UTXO 210. A UTXO is a transaction with no transaction outputs, so the transaction structure of UTXO 210 has an empty transaction output 216. A UTXO has no designated recipient and no lock script. This means that the transaction is a potential credit that can be spent. UTXOs are held in a transaction pool, also commonly called a memory pool, which is an in-memory container of all UTXOs in the system. In a UTXO-based system, the memory pool represents the total credits available for spending (or retransfer) in the system. The UTXO exists in the memory pool and is not on the blockchain because it has not yet recorded a transfer of credits. The UTXO transaction structure 210 may further include other fields, such as a version number 212. The UTXO 210 also includes an input field 214, which may include one or more inputs, representing the total amount to be spent by the transaction, such as one or more transactions, and thus the total amount of currency or credits or currency tokens available to spend in the UTXO 210, so to speak. The UTXO 210 also includes a lock time field 218 that defines the earliest time that the transaction can be added to a system, such as a distributed ledger system or blockchain.

[0044] In addition to the above transactions, the UTXO-based system includes coinbase transactions, such as coinbase transaction 124, which is the first transaction of each block in the blockchain system. The blockchain includes transactions with no inputs, which do not exist in any form of memory pool. Coinbase transactions are a mechanism by which the blockchain and its associated protocol reward miners who successfully validate blocks. Miners are participants in the blockchain system who propose valid blocks for inclusion in the blockchain and receive rewards if these blocks are accepted by the protocol. Coinbase transactions record the rewards received by miners in the blockchain. Coinbase transactions have no inputs but have outputs, and are included and recorded in blocks in the blockchain. In addition to coinbase transactions, the distributed ledger system disclosed in various embodiments provides another type of transaction called a debt transaction. In some embodiments, the distributed ledger system may include both debt transactions and coinbase transactions. This can be solved by introducing flags fCoinbase and fDebtTrans that hold values ​​0 and 1 respectively if the transaction is a debt transaction and 1 and 0 respectively if the transaction is a coinbase transaction.

[0045] FIG. 3A illustrates an example of a debt transaction structure 310. As previously described, debt transactions are realized in an extended UTXO model-based distributed ledger system by the concept of credit transactions with unmatched outputs and debit transactions with unmatched inputs. To that end, debt transaction structure 310 includes a version number field 312 and a lock time field 318, which are similar to the version number 132 and lock time 138 fields previously described in connection with FIG. 1B. Debt transaction structure 310 also includes an initially unmatched input field 314. As previously described in connection with FIG. 1B, input field 314 is generally used to identify the parent of the current transaction, i.e., the source of credit in the transaction. The input field 314 of debt transaction structure 310 is unmatched, and thus the debt transaction it represents can send credit to an intended recipient even if the parent source does not have enough credit.

[0046] Additionally, in some embodiments, a debt transaction requires that a credit transaction of equal amount be created at the same time as the debt transaction. This transaction is called a debt-credit transaction. The transaction input of the debt-credit transaction points to the original debt transaction from which the credit was created. The output of the debt-credit transaction remains unmatched. Because they have transaction inputs and unmatched transaction outputs, the debt-credit transaction is treated as a UTXO by the blockchain protocol and the debtor can consume the transaction normally by recording the intended recipient in the form of an address in the lock script of the transaction output. The debt-credit transaction is broadcast to the network just like a credit transaction and is added to the memory pool by the blockchain protocol.

[0047] Figure 3B shows an example of an unused debt-credit transaction 370. The transaction structure 370 shows an input field 374 with a pointer to the debt transaction, which was used to create the credit transaction. The unused debt-credit transaction also includes a version 372 and a lock time 378. The output field 376 of the unused debt-credit transaction 370 is empty. The debt-credit transaction 370 has the same transaction structure as the credit UTXO 210, and therefore the protocol treats it in the same manner.

[0048] Another type of transaction in the distributed ledger system disclosed herein is the partially repaid debt transaction shown in FIG. 3C, as already mentioned in connection with the various types of transactions 128 in FIG. 1A. A partial repayment of a debt occurs when the debtor sends less than the original total debt amount. The mechanism of repayment, whether partial or full, consists of assigning a UTXO to the input of the debt transaction. That is, the debtor sends a UTXO to the debt transaction by specifying the transaction hash of the debt transaction that is owed in the locking script of the credit (payment) UTXO. The credit repayment transaction is broadcast to the network. When each node receives a credit repayment transaction, during transaction validation, it checks the locking script to determine whether the address matches the hash of the debt transaction in its debt pool. If there is a match, the protocol replaces the locking script of the credit (repayment) UTXO with the address of the debt only and records the credit repayment UTXO as an input to the debt transaction from which the final credit is generated.

[0049] 3C illustrates a partially paid-off debt transaction as having a partially paid-off debt transaction structure 350. Partially paid-off debt transaction structure 350 includes a version field 352, a pointer to credit transaction field 354 or an input field 354 that points to a credit transaction and is not null, a debt payee public key field 356, and a lock time field 358. The version 352 and lock time 358 fields have the same functions as previously described.

[0050] In the input field 354 of the partially paid-off debt transaction structure 350, if the payment is partial, the locking script of the credit repayment UTXO is replaced with the original debt-only address and then broadcast for validation and inclusion in one or more blocks 112-116. The input 354 of the partially paid-off debt transaction 350 is then updated in the manner described above, but remains in the debt pool. A debt is considered paid-off when the sum of the transaction inputs and transaction outputs of the debt transaction are equal. This can be done by summing all the total amounts of the UTXOs referenced in the transaction inputs of the debt transaction, summing all the total amounts of the transaction outputs of the debt transaction, and verifying that they are equal. When a debt transaction is paid-off, it is removed from the debt pool. Managing debt in a distributed ledger system in this manner is described below in connection with Figures 12A-12D.

[0051] As described below in Figure 4A, when a debt is created through the creation of a debt transaction, the newly created debt transaction is broadcast to other nodes and added to the debt pool (562), and the simultaneously created debt-credit transaction is also broadcast to other nodes and added to the memory pool.

[0052] FIG. 4A illustrates a debt transaction structure 410 according to an embodiment of the blockchain protocol, which allows both debt and coinbase transactions. The debt transaction structure 410 includes a version field 412, a lock time field 418, an input field 414 that is empty, a debt recipient public key 416, and two flags, an fCoinbase flag 420 and an fDebtTrans flag 422. The fCoinBase flag is used to identify whether this is a coinbase transaction. If the fCoinBase flag 420 is set to 0, the transaction is not a coinbase transaction. Additionally or alternatively, the debt transaction 410 can include a flag, an fDebtTrans flag 422, to identify whether the transaction is a debt transaction. If the fDebtTrans flag 422 is set to 1, the transaction is a debt transaction.

[0053] FIG. 4B illustrates a coinbase transaction structure 430 according to some embodiments. The coinbase transaction structure 430 includes a field version 432 and another field lock time 438 in the usual sense. The input of the coinbase transaction represented by the coinbase transaction structure 430 includes an input field 434 that is empty and an output field 436 that includes a block reward amount and a public key for the block. Additionally, the coinbase transaction structure 430 includes a flag fCoinBase flag 440 set to 1 and a flag fDebtTrans flag 442 set to 0 to indicate that the transaction represented by the transaction structure 430 is a coinbase transaction. The generation and management of coinbase transactions are described below in conjunction with FIG. 12A.

[0054] 5A illustrates an example of a debt transaction in a debt pool 500 for managing outstanding debt transactions, according to one embodiment. Debt pool 500 stores debt transactions 501, 503, and 507. As a new debt transaction 509 is created, it is placed (511) in debt pool 500. Debt pool 500 contains all debt transactions that have not yet been fully paid off. Debt transactions 505 are removed (513) from debt pool 500 when they are paid off. A paid off transaction 505 that is removed (513) from the debt pool is considered a valid transaction by the protocol and therefore may be included in a block comprising the blockchain.

[0055] FIG. 5B illustrates the creation of a debt simultaneously with a credit, according to one embodiment. In this embodiment, when a debt transaction 550 is created, a debt-credit transaction 552 is simultaneously created. The newly created debt transaction is broadcast to other nodes and added to a debt pool 561 (560). A simultaneously created debt-credit transaction 552, whose inputs point to the debt transaction 550 (554), is broadcast to other nodes and added to the distributed ledger system's memory pool 563. Adding and removing debt transactions from the debt pool 500 is described in more detail below in connection with FIGS. 12B-12D. The various transactions may be configured to enable the implementation of a blockchain protocol for receiving messages and processing these messages into one or more blocks of the blockchain, where messages are associated with transactions to be included in the blockchain by matching the inputs and outputs of the transaction with nearby transactions such that the inputs of the transaction are matched with the outputs of a previous transaction and the outputs of the transaction are matched with the inputs of the next transaction. A description of the structure of one or more of the blocks has already been provided in FIG. 1A, but a more detailed description of the blockchain protocol and associated block structure is provided below in conjunction with FIG. 6A.

[0056] As mentioned above, a distributed ledger system is made possible by a data structure known as a blockchain, which is a hash chain of blocks. A blockchain begins with a first or genesis block, and each block added to the blockchain contains the hash of the previous block. The structure of a block in a blockchain is described in more detail in connection with Figure 6A.

[0057] 6A illustrates the structure of a block 610 of a blockchain structure according to some embodiments. The block includes a block size field 612, which is a field indicating the size in bytes of the block 610. In addition, the block 610 also includes a block header 614, which is a data structure that references previous blocks and summarizes the current block.

[0058] The block header 614 includes a version number used to track the version of the protocol used in the blockchain (allowing for protocol upgrades). It also includes a hash of the previous block, linking the block to the previous block. It also includes a Merkle root, which is a hash of the root of the Merkle tree used to check the integrity of the transactions included in the block 610. Transactions in a blockchain are stored in the form of a binary hash tree or Merkle tree. The block header 614 also includes a timestamp of the creation time of the block. In some examples, the block header 614 has other fields. For example, in a blockchain system based on the Proof of Work (PoW) protocol, the block header 614 includes a difficulty target set by the particular protocol that controls the time between blocks and nonces, a field that the PoW-based protocol uses to ensure that the hash of the current block meets the difficulty target. A block is considered valid if it meets the criteria determined by the blockchain protocol. Examples of block validation criteria include that block data structures are syntactically valid, i.e., they contain fields defined by the protocol, the block timestamp is less than two hours in the future, the block size is within acceptable limits, the first transaction is the only coinbase transaction, or all transactions contained in the block are valid, etc. In PoW-based blockchain protocols, a block is considered valid if the hash of this block meets the difficulty target. On the other hand, a transaction is considered valid if it meets the criteria defined by a particular implementation.Examples of such criteria from Bitcoin, a type of blockchain system, include the presence of a matching transaction in the memory pool, the transaction size, expressed in bytes, is less than a parameter called MAX_BLOCK_SIZE, an independently defined value that specifies the maximum size of a block, and a parameter called nLockTime (also as described above in connection with Figures 1B-4B) is less than or equal to a value defined by the parameter INT_MAX, among other criteria. Additionally, block 610 also comprises a transaction counter 616, which is a count of the transactions contained in block 610.

[0059] The next field in block 610 is transactions 630. The size of this field may be variable, and in some embodiments, this field may contain a digital fingerprint of all transactions in block 610. Transactions 630 may be one or more of coinbase transactions 632 and other transactions 634, including credit transactions, credit-debt transactions, and paid-off debt transactions. For example, transactions 630 may include credit transactions 118, debit transactions 120, transfer transactions, and coinbase transactions 124, discussed in connection with FIG. 1A. Transactions form the basis of a blockchain network and are executed between one or more participants of the blockchain network.

[0060] The participants in a blockchain network are called nodes. Every node contains a copy of the blockchain, transactions, and in-memory data structures such as a transaction pool. In a distributed ledger system, every node performs a process of validating transactions and one or more blocks. If a transaction or block is valid, it may forward it to other nodes in the network. This is known as propagating a block / transaction through the blockchain network. Although every node validates the correctness of blocks and transactions, only a few specialized nodes finalize transactions through the creation of blocks. These nodes are known as block creators and are responsible for creating new blocks. They propose and create new blocks to which the node adds its copy of the blockchain. The node executes a transaction that includes the transaction amount and a node identifier. The various transactions supported by the node are described above. The system and method disclosed herein can provide debt transactions executed using a blockchain protocol, even if they do not have a parent transaction as an input.

[0061] 6B shows an example schematic diagram of a method for generating a debt-only address using a public key, according to some embodiments. Different embodiments use different implementations to indicate that an address is debt-only. For example, one embodiment implements a debt-only address in a Base58Check-based address generation system by setting 650 the Base58Check version prefix to a value d. That is, given a public key K, a corresponding debt address can be generated by setting

[0062]

number

[0063] In this example, a credit address is generated in any suitable manner.

[0064] In some UTXO-based protocols, addresses represent recipients of credits in the system. For example, UTXO-based protocols may transfer credits by specifying an address representing a recipient with credits in a locking script field of a transaction output. An address may represent a single recipient. Additionally or alternatively, an address may represent more complex conditions that must be met for the consumption of credits. UTXO-based protocols may require that credits be consumed from an address with sufficient credits, i.e., via a UTXO that already exists.

[0065] In the debt-credit UTXO-based system disclosed in connection with the systems and methods of various embodiments, a debt-only address is an address to which an amount can be sent without having a UTXO associated with the debt address. When the debt-credit UTXO-based system considers a participant to meet the conditions for assuming a debt, the debt-credit UTXO-based system generates a debt that is transferred to the associated address. One example of a condition for assuming a debt is by joining the debt-credit network itself, which may form an implicit agreement for the network to transfer the debt to the participant. Consider the case of a central bank that can generate credit at will by assuming a virtually unlimited amount of debt. Another example of a condition for a participant to assume a debt is that the participant already possesses a certain amount of credit required for the debt. Consider the case of fractional reserve banking, where the total amount of debt owned by a bank is a multiple of the total amount of credit owned by the bank.

[0066] In a debt-credit UTXO based system, debts are realized as transactions with unmatched transaction inputs as described in Figures 3A, 4A and 4B. The blockchain protocol associated with the debt-credit UTXO based system disclosed herein first generates a debt transaction representing the debt. This is a transaction with no transaction inputs. The transaction output of this debt transaction is filled according to the term of the debt, the "total" field in this output is the total debt amount, and the lock script contains the address of the debt recipient. Representing debts in this way provides the opportunity to directly represent debts in a debt pool as shown in Figure 5A.

[0067] Representing debt directly within the blockchain protocol improves the integrity of the blockchain protocol. Alternative methods of implementing debt introduce additional complexity that reduces the usefulness of the protocol and increases the likelihood of failure. A popular decentralized method for implementing debt uses smart contracts, which are contracts implemented by computer code. Smart contracts are enabled by nodes that operate the protocol and interpret and compile a common programming language. One example of such a language is Solidity, used by the Ethereum blockchain. Solidity is not as general purpose as other computer languages ​​such as C++, which is a limitation. The embodiments are not limited to any particular computer language, and can therefore be applied to smart contracts written in C++ or any other desired programming language. Using other mechanisms to represent debt adds unnecessary complexity and requires additional unnecessary computational resources in the form of CPU cycles, computer memory, network bandwidth, etc. This is wasteful and can become problematic when blockchains become substantial in size. Conversely, the debt-credit UTXO based system disclosed herein allows debts to be manipulated in a natural way within the system by representing debts directly within the system.

[0068] FIG. 7 illustrates an example diagram showing a debt-based blockchain protocol stack of a debt-credit UTXO-based system for implementing debt in a distributed ledger system. The debt-based blockchain protocol stack 702 includes an infrastructure layer 712, an overlay network layer 714, a protocol layer 716, a technology layer 718, and an application layer 720. The blockchain protocol stack 702 can communicate with various nodes 722 that can be configured to perform various transactions according to the debt-based blockchain protocol defined by the debt-based blockchain protocol stack 702. The debt-based protocol can be used by a node 722 that can be a user associated with a client 732 of the debt-based blockchain protocol, where the client can be a service provider, a user, a retail chain, a bank, a financial institution, etc. In some embodiments, the client 732 can be the same as one or more nodes 722. To that end, the client 732 and the node 722 can be represented as one entity.

[0069] The infrastructure layer 712 may be a physical interface layer that can be used for management of various devices and for connections such as underlying connectivity devices, modems, routers, bus interface systems, etc. The overlay network layer 714 is used for implementing a blockchain that acts as an overlay network for an existing network such as network 742.

[0070] The protocol layer 716 may include a consensus protocol 752 module that may be used to build mechanisms for forming consensus among various nodes 722, for example to update the blockchain with the most updated copy of a block. Besides that, the protocol layer 716 may be used to cover various participation algorithms, virtual memory management, fault recovery management functions, etc. The protocol layer 716 may include algorithms such as proof of work (POW), proof of elapsed time (POET), delegated proof of stake (DPOS), byzantine agreement (BA), proof of history (POH), etc.

[0071] The technology layer 718 may likewise be used to provide a variety of services to provide transaction management, management of credit and debt tokens, creation and management of debt pools and debt-only addresses, keeping records of transactions such as input and output transactions, etc. The technology layer 718 may further be used to provide functionality such as virtual memory management, blockchain update feed management, smart contracts, wallets, etc.

[0072] The application layer 720 can be used to provide interface management functions for the debt-based blockchain protocol. Some embodiments can be used to provide the application layer 720 with browser management, such as in the case of a dApp browser, which can be used for decentralized applications, application hosting features, and various user interface mechanisms. The application layer 720 can also be used in some embodiments to provide the distributed ledger system to clients 732 in a software as a service (SaaS) architecture. The application layer 720 can also provide support for decentralized applications or dApps that allow client systems to connect using a peer-to-peer server network on the blockchain network.

[0073] The debt-based blockchain stack 702 can be useful for implementing the distributed ledger system described with respect to FIG.

[0074] FIG. 8 illustrates a block diagram of a distributed ledger system architecture 802 according to some embodiments. The distributed ledger system architecture 802 includes a distributed ledger system 812, one or more databases 814, and clients 816 communicatively coupled via a network 818. The distributed ledger architecture 802 can be configured to implement the debt-based blockchain protocol stack 702 described in FIG. 7. Thus, the distributed ledger system 812 can provide addresses of debt transactions and debts only necessary to provide the debt-based blockchain protocol stack 702. Hereinafter, the distributed ledger system 812 may be referred to interchangeably as a debt-based distributed ledger system 812. A client 816 of the debt-based distributed ledger system 812 may be any of one or more service providers that need to access the services of a blockchain-enabled network. For example, the client 816 may include one or more of a financial service provider, a bank, a retailer, an energy service company, a supply chain vendor, a manufacturing department, a government or regulatory body, and the like. The clients 816 may further include multiple customers or users of the service, which may function as participants or nodes of the debt-based distributed ledger system 812. These nodes may be similar to the nodes 722 described above in connection with Figure 7 as users of the blockchain protocol stack 702 that may be enabled by the debt-based distributed ledger system 812 and provide the debt management functionality. The debt-based distributed ledger system 812 supports the transactions described above in connection with Figures 1A-4B, and supports all of the features and components described in connection with the debt management functionality of the blockchain network disclosed in Figures 5A-7.

[0075] The debt-based distributed ledger system 812 may also include a database 814, which may be based on another architecture other than the blockchain architecture, such as a relational architecture, and may include other information other than client information, such as server information, third party resources, external regulatory and compliance related information, etc. All components in the distributed ledger architecture 802 may be communicatively connected via a network 818. The network 818 may be either a wired or wireless network. The debt-based distributed ledger system 812 will be described in more detail in conjunction with FIG. 9 to provide an overview of the internal components.

[0076]

[0036] Figure 9 shows a block diagram of the debt-based distributed ledger system 812 of Figure 8, according to some embodiments. The distributed ledger system 812 includes a processor 912, a memory 914 including a debt pool 918, and a communication interface 916.

[0077] The processor 912 may be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations. The processor 912 is connected through a bus to one or more communication interface 916 systems, such as I / O devices and hardware. The I / O devices may include any one of a computer, a laptop, a handheld device, a mobile device, a smart phone, a desktop, a PDA, a media device, a navigation device, and the like.

[0078] The memory 914 may include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory system. The memory 914 includes a debt pool 918 that includes a record of all outstanding debt transactions in the debt-based distributed ledger system 812. When a debt is paid off, the corresponding debt transaction is removed from the debt pool 918, and a new transaction is added to the debt pool 918 each time a debt is assumed. Besides debt transactions, the memory may be configured to keep a record of all other transactions, such as credit transactions, debt credit transactions, and the like. These transactions may be stored in a memory pool as described in connection with FIG. 5B. The memory pool and the debt pool may be stored as separate portions in the memory 914 in some embodiments.

[0079] FIG. 10 illustrates an example architecture of a debt-based distributed ledger system 1002 according to some embodiments. The distributed ledger system 1002 with debt management features includes nodes 1010 and 1012, each having its own copy of the distributed ledger 902 and communicatively connected to a blockchain overlay network 1014. The distributed ledger system 1002 also includes a network 818 and clients 816. The number of nodes shown in the distributed ledger system 1002 is only two for illustrative purposes, but any number of nodes may be added to the distributed ledger system 1002 without departing from the scope of various embodiments. The nodes 1010 and 1012 may be used to communicate with each other using the debt-based blockchain protocol described in FIG. 8. For example, the node 1010 may be configured to send messages to the debt-based distributed ledger system 902, which may be configured to receive and process these messages to provide debt management using the distributed ledger system 1002. In some embodiments, the distributed ledger system 1002 and the debt-based distributed ledger system 902 may be the same.

[0080] Nodes 1010 and 1012 may be configured to perform the various transactions described above, such as debt transactions 310 or 410, partially paid off debt transactions 350, unused debt credit transactions 370, or even coin-based transactions 430. The distributed ledger system 1002 may be configured to provide debt management using these transactions.

[0081] FIG. 11 illustrates an example block diagram of a method 1100 of debt management in a distributed ledger system according to some embodiments. The method 1100 includes generating a credit transaction at 1110. For example, the credit transaction may be identical to a credit transaction in a UTXO-based system. A credit transaction may have both an input and an output, where the input may indicate a sender of credit and the output may indicate a recipient of credit. The method may further include generating a credit transfer transaction at 1120. The credit transfer transaction may be a transaction involving at least two nodes, such as nodes 1010 and 1012. A transfer of credit from node 1010 to node 1012 may be performed by including an address of node 1010 in an input field of a credit transaction received at node 1012 and including an address of node 1012 in an output field of a corresponding debit transaction originating at node 1010. A special case of a credit transfer may be when node 1010 does not have enough credits available or an amount of spendable UTXOs and therefore needs to assume debt to perform this credit transfer. In this case, a debit transaction is generated at 1130 without a parent transaction as an input. If node 1010 needs debt, the output of the debit transaction generated at 1130 will point to node 1010. At the same time, the generated debt transaction may be added to a debt pool, such as debt pool 500. Furthermore, once the corresponding transaction is generated, a blockchain system, such as debt-based distributed ledger system 902, may be updated with the generated transaction at 1140.Additionally or alternatively, the distributed ledger system 902 may also include exchanging various messages that describe a sequence of events associated with the coinbase transaction, as further described with reference to FIGS. 12A-12D.

[0082] FIG. 12A illustrates an example block diagram of a method 1200 describing a sequence of events occurring in an embodiment of a blockchain system with a coinbase transaction accepted into the network. Such an embodiment may occur, for example, in a mining-based blockchain system. When a coinbase transaction is generated, such as the coinbase transaction 124 described in FIG. 1A and FIG. 4B, the method 1200 may include, in step 1201, validating one or more blocks associated with the coinbase transaction. If the block meets the validation criteria, it is accepted into the network in 1203. Furthermore, the validated block or one or more validated blocks are then propagated to all nodes in the network in 1205. Since the coinbase transaction is a transaction with unmatched inputs and outputs, the output, i.e., a UTXO representing the credit transaction, is moved into each node's memory pool in 1207, i.e., the UTXO data structure is stored in each node's memory pool of the one or more nodes. Once in the memory pool, the coinbase reward can then be used by the recipient to solve the unlock script in the UTXO.

[0083] FIG. 12B shows an example block diagram of a method 1210 describing the sequence of events that occur when a debt transaction is created. It begins when a user initiates a debt creation request at 1211. In some embodiments, the act of requesting permission can be an act of attempting to initiate a debt transaction, and the protocol determines whether the user has sufficient permission to do so. Other possible embodiments can include nodes with special privileges that the user must undergo to gain permission. If the permission is verified by the user at 1213, then a debt transaction is created at 1215 along with a debt-credit transaction, which is propagated to the network at 1215. Then, each node adds the debt transaction to its debt pool at 1217. The debt-credit transaction is a valid credit transaction and a candidate for inclusion in a block. Thus, at 1219, the valid transaction is associated with the corresponding block. Only after proper association is made is the block recorded on the blockchain by including the transaction in a block on the blockchain. Furthermore, at 1220, the output of the debt transaction is moved by all nodes to a memory pool.

[0084] FIG. 12C illustrates an example block diagram of a method 1240 that describes the sequence of events that occur when a debt transaction is paid. In some embodiments, a user may decide to pay off a debt by sending a credit transaction with an amount that is less than the total outstanding debt in the debt transaction by specifying a hash of the debt transaction in the lock script. The distributed ledger system may be configured to execute the sequence of events described in method 1240 beginning at 1241 when such an exchange of transactions occurs by checking whether the sending address matches a debt-only address. Once the debt-only address is checked, it is broadcast to multiple nodes in the network at 1243. Upon receiving this credit payoff transaction, the multiple nodes determine whether the address matches a hash of a debt transaction in their respective debt pools by performing a check of the lock script at 1245. If there is a match, the method replaces the lock script of the credit (repayment) UTXO with the debt-only address at 1247 and records the credit repayment UTXO as an input to a debt transaction in the corresponding node's debt pool from which the credits are ultimately generated (1247). Then, at 1249, the method includes checking whether the debt is fully repaid by summing the amounts included in the inputs and comparing this to the sum of the amounts in the outputs. If the sum of the inputs is less than the sum of the outputs, then do nothing at 1251. The edited credit repayment transaction on each node is then a valid transaction that is a candidate for inclusion in a block. Finally, at 1253, the repayment is considered permanent when it is included in a block that is successfully accepted into the network and becomes part of the blockchain.

[0085] FIG. 12D illustrates an example block diagram of a sequence of events of method 1260 that occurs when a debt transaction is fully paid. Method 1260 includes, at 1261, determining a difference between a first total amount associated with the debt transaction and a second total amount obtained by summing the individual total amounts associated with each parent transaction of the multiple parent credit transactions. Further, at 1263, an output total amount equal to the difference can be generated. In some embodiments, the difference can be posted to the total amount and change address posted to the lock script to make the sum of the inputs equal to the sum of the outputs. The blockchain protocol can then recognize the debt transaction as paid, and thus the debt transaction is recognized as a valid transaction and a candidate for inclusion in a block. Thus, at 1265, the generated paid debt transaction associated with the paid output total amount is submitted for association and thus inclusion in one or more blocks (1265). Once the debt transaction is recorded in the blockchain by being included in an accepted block, the debt transaction is then removed from the debt pool at 1267.

[0086] Some embodiments provide for permission-based debt transaction creation, so that all debts in the debt-based distributed ledger system 902 can be easily managed and debt repayment can be guaranteed. Furthermore, permission can be given by referencing debt transactions already existing in the debt pool when creating a new debt transaction. Some embodiments provide for the debt-based distributed ledger system 902 to manage permissions internally. Some embodiments may also provide an external authority or third party to manage permissions for the creation of new debt transactions. The generation and management of debt in the various embodiments above allows the systems and methods disclosed herein to provide various advantages over UTXO-based systems.

[0087] Various technical advantages of the system and method disclosed in the above paragraphs are evident from the various methodologies discussed above. In particular, the disclosed system and method for representing debt in a distributed ledger overcomes limitations of distributed ledger systems lacking such functionality. Although the methodologies described herein are described in terms of credit and debt tokens for illustrative purposes, the distributed ledger systems described herein may also be tokens as units of exchange as they may be intended to serve various application fields without departing from the spirit and scope of the present disclosure.

[0088] The above-described decentralized debt management system can be used in various types of applications, including but not limited to the energy sector, financial institutions, banking, retail applications, real estate applications, inventory tracking in supply chain systems, etc.

[0089] The above-mentioned blockchain-based distributed ledger system for debt management can be used for trading of energy units. Credit and debt tokens can be used to represent data of consumed or required energy, respectively, and can be traded using the distributed ledger system 802. Credit tokens can be used for forecasting billing and metering functions of consumed energy, whereas debt tokens can be used for billing, bidding, demand forecasting functions, etc. in the energy sector. The blockchain-based distributed ledger system 802 can also be used for other similar functions in the energy sector, such as decentralized energy trading, emission trading, rewards and incentives in the form of green certificates, grid and microgrid management, smart automation based on IoT in energy solutions, user-centric or user-defined smart contracts, electric e-mobility, etc.

[0090] The blockchain-based distributed ledger system 802 can also be used for inventory tracking and management in supply chain management solutions. Each item of inventory may be associated with an identifier and may be stored, secured, and tracked using the blockchain-based distributed ledger system 802.

[0091] The blockchain-based distributed ledger system 802 can also be used to realize reward and incentive based loyalty solutions that can be used in various sectors such as retail, banking, online shopping, mobile payments, etc. Debt tokens can further be used to represent reward coupons that can be generated by retail chain suppliers and redeemed by their customers when performing a purchase transaction.

[0092] The blockchain-based distributed ledger system 802 can further be used in the food technology sector for quality control, assurance, regulatory condition management, etc. Each time a food safety standard violation occurs by a client, a penalty token in the form of a debt token can be issued, which must be repaid after a penalty threshold is reached and before further transactions can take place. These and other such uses in the food technology sector can help ensure quality assurance, quality control, and transparency in the food technology sector.

[0093] The blockchain-based distributed ledger system 902 can also be used for medical record keeping, physician evaluation management, and feedback related activities to ensure availability of a robust medical ecosystem. Those skilled in the art can implement these and other uses of the blockchain-based distributed ledger system 802.

[0094] This specification provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of exemplary embodiments will provide those skilled in the art with an enabling description for implementing one or more exemplary embodiments. It is contemplated that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the disclosed subject matter, as set forth in the appended claims.

[0095] Specific details are provided herein to provide a thorough understanding of the embodiments. However, those skilled in the art will appreciate that the embodiments may be practiced without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in block diagram form in order to avoid obscuring the embodiments in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments. Additionally, like reference numbers and names in the various drawings refer to like elements.

[0096] Also, the individual embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe operations as a sequential process, many of the operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. A process may terminate when its operations are completed, or may have additional steps not discussed or included in the diagram. Moreover, not all operations in any process specifically described may occur in all embodiments. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, or the like. When a process corresponds to a function, the end of the function may correspond to the function returning to the calling function or to the main function.

[0097] Furthermore, embodiments of the disclosed subject matter may be implemented, at least in part, either manually or automatically. The manual or automatic implementation may be performed or at least assisted through the use of a machine, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored on a machine-readable medium. A processor(s) may perform the necessary tasks.

Claims

1. 1. A distributed ledger system, comprising: and at least one processor configured to execute instructions to implement a blockchain protocol for receiving messages and processing these messages into one or more blocks of a blockchain, where messages are associated with transactions to be included in the blockchain by matching inputs and outputs of the transactions with nearby transactions such that inputs of the transactions are matched with outputs of previous transactions and outputs of the transactions are matched with inputs of next transactions, and the at least one processor is configured to generate different types of transactions during processing of the messages by performing operations such as: a credit transaction having an unmatched output configured to be matched with the next transaction; a debit transaction having an unmatched input configured to be matched with the previous transaction; and transfer transactions having matched inputs and matched outputs.

2. The at least one processor further performs the operations to: generating a coinbase transaction associated with one or more blocks of the blockchain protocol; Validating the one or more blocks of the generated coinbase transaction based on validation criteria; accepting the one or more blocks of the generated coinbase transaction in the blockchain protocol based on the validation; Propagating the one or more blocks of the generated coinbase transaction to a plurality of nodes associated with the blockchain protocol; The UTXO corresponding to the one or more propagated blocks is stored in a memory pool of each of the plurality of nodes. The distributed ledger system of claim 1 , configured as follows:

3. The at least one processor further performs the operations to: Start creating debt transactions, validating the debt transaction based on one or more permissions associated with the creation of the debt transaction; generating a debt credit transaction associated with the debt transaction; Propagating the debt transaction and the debt credit transaction to a plurality of nodes associated with the blockchain protocol; Associating the propagated debt transactions and the debt credit transactions with corresponding blocks in the blockchain protocol. The distributed ledger system of claim 1 , configured as follows:

4. 4. The distributed ledger system of claim 3, wherein the at least one processor is further configured to perform the operations to maintain all outstanding debts in the distributed ledger system in a debt pool of each node of the plurality of nodes for executing the blockchain protocol.

5. 5. The distributed ledger system of claim 4, wherein for executing the blockchain protocol, the at least one processor is further configured to perform the operations to remove a debt transaction associated with an outstanding debt from the debt pool after an input pointing to a credit transaction is assigned to the debt transaction.

6. 6. The distributed ledger system of claim 5, wherein to execute the blockchain protocol, the at least one processor is further configured to perform the operations to populate the debt transaction input with a plurality of parent credit transactions.

7. To execute the blockchain protocol, the at least one processor further performs the operations to: determining a difference between a first total amount associated with the debt transaction and a second total amount associated with the plurality of parent credit transactions, the second total amount being obtained by summing individual total amounts associated with each parent transaction of the plurality of parent credit transactions; Generate a paid debt transaction that corresponds to the total amount of the output; Propagating the paid debt transaction to one or more blocks associated with the debt transaction; Validating the repaid debt transaction based on validation criteria associated with the one or more blocks; removing the paid debt transaction from the debt pool based on the validation criteria being met; The distributed ledger system of claim 6, configured as follows:

8. the distributed ledger system is operatively coupled to a client; 2. The distributed ledger system of claim 1, wherein the client is configured to broadcast debt transactions to a network.

9. 4. The distributed ledger system of claim 3, wherein the debt transaction is associated with a debt-only address.

10. 4. The distributed ledger system of claim 3, wherein the debt transaction includes a locking script that specifies a condition that must be satisfied by the output of the debit transaction.

11. 11. The distributed ledger system of claim 10, wherein the condition is associated with a criterion that allows the output to be consumed.

12. 1. A method for a distributed ledger, the method using at least one processor, the at least one processor configured to execute a blockchain protocol for receiving messages and processing these messages into one or more blocks of a blockchain, the messages corresponding to transactions to be included in the blockchain, the processor configured to generate different types of transactions of the method during processing of the messages, the method comprising: generating a credit transaction having an unmatched output configured to be matched with a next transaction; generating a debit transaction having an unmatched input configured to be matched to a prior transaction; generating a transfer transaction having matched inputs and matched outputs.

13. generating a coinbase transaction associated with one or more blocks of the blockchain protocol; validating the one or more blocks of the generated coinbase transaction based on validation criteria; accepting the one or more blocks of the generated coinbase transaction in the blockchain protocol based on the validation; propagating the one or more blocks of the generated coinbase transaction to a plurality of nodes associated with the blockchain protocol; and storing UTXOs associated with the one or more propagated blocks in a memory pool of each node of the plurality of nodes.

14. Initiating the creation of an obligation transaction; validating the debt transaction based on one or more permissions associated with the creation of the debit transaction; generating a debt credit transaction associated with the debit transaction; propagating the debt transaction and the debt credit transaction to a plurality of nodes associated with the blockchain protocol; and associating the propagated debt transactions and debt credit transactions with corresponding blocks in the blockchain protocol.

15. 13. The method of claim 12, further comprising maintaining all outstanding obligations in the distributed ledger in an obligation pool.

16. 16. The method of claim 15, further comprising removing a debt transaction associated with an outstanding debt from the debt pool after an input pointing to a credit transaction is assigned to the debt transaction.

17. 20. The method of claim 16, further comprising populating the debt transaction input with a plurality of parent credit transactions.

18. determining a difference between a first total amount associated with the debt transaction and a second total amount associated with the plurality of parent credit transactions, the second total amount being obtained by summing individual total amounts associated with each parent transaction of the plurality of parent credit transactions; generating a paid-off debt transaction associated with the total output amount; propagating the repaid debt transaction to one or more blocks associated with the debt transaction; validating the repaid debt transaction based on validation criteria associated with the one or more blocks; and removing the paid debt transaction from the debt pool based on the validation criteria being met.

19. 15. The method of claim 14, wherein the address associated with the debt transaction is a debt-only address.

20. 17. The method of claim 16, wherein the obligation transaction includes a locking script, the locking script specifying an obligation corresponding to the locking script including conditions that must be satisfied by the output, the conditions corresponding to criteria that allow the output to be consumed.

Citation Information

Patent Citations

  • Data structure, information processor, program, information processing method, and transaction system

    JP2018081499A

  • Data structure, information processing apparatus, program, information processing method, and transaction system

    JP2018088281A

  • Virtual currency management program and method

    JP2018160179A

  • Virtual currency management system and virtual currency management program

    WO2019198427A1