Data transfer control method and system based on integrated blockchain

The cryptographic method and system enable efficient and secure integration of blockchain transactions with non-blockchain systems by classifying and transmitting data using cryptographic keys, addressing integration challenges and enabling secure data extraction for accounting and reporting.

JP7789857B2Active Publication Date: 2025-12-22NCHAIN LICENSING AG
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024118299
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-11-15
Filing Date
2024-07-24
Publication Date
2025-12-22
Estimated Expiration
2037-02-21

AI Technical Summary

Technical Problem

Existing blockchain systems face challenges in integrating with non-blockchain computing architectures, particularly in identifying and extracting relevant data for off-chain use without modifying the underlying platforms, and in efficiently classifying and accessing transactions for secure data transmission.

Method used

A cryptographic method and system for identifying, retrieving, and transmitting blockchain transactions using public addresses associated with cryptographic keys, enabling efficient integration with non-blockchain systems by classifying and categorizing transactions based on entity identifiers and accounting types.

Benefits of technology

Facilitates secure and efficient extraction and transmission of blockchain data to non-blockchain systems, allowing for seamless integration and utilization of blockchain data for accounting and reporting purposes without altering the underlying platforms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007789857000006
    Figure 0007789857000006
  • Figure 0007789857000007
    Figure 0007789857000007
  • Figure 0007789857000008
    Figure 0007789857000008
Patent Text Reader

Abstract

To provide a computer-implemented method for efficient determination of transactions with entities.SOLUTION: In order to do accounting on transactions associated with an entity, an accounting server associates public addresses of the entity with one or more identifiers of a first classification type to classify the public addresses based on the first classification type 210. Next, the server receives a first identifier of the one or more identifiers of the first classification type from a communication network 220. Next, the server determines a first public address set associated with the first identifier 230. Here, the first public address set is a subset of the public addresses. Then, the server determines a first transaction set in a peer-to-peer distributed ledger based on the first public address set associated with the first identifier 240. Here, the first transaction set is a subset of the transactions.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to peer-to-peer distributed technologies such as the Bitcoin blockchain. The present invention also relates to the use of cryptographic techniques for secure and efficient determination and / or identification of transactions on a blockchain, resulting in a technical solution that is highly versatile and usable for controlling processes operating in connection with and interacting with a blockchain infrastructure. The present invention can be used to determine which blockchain transaction sets (or data therefrom) are selected for copying and / or transmission to another computer-based destination. [Background technology]

[0002] A blockchain is a peer-to-peer electronic ledger implemented as a computer-based, decentralized, distributed system composed of blocks. Blocks, in turn, are composed of transactions. Each transaction is a data structure that encodes the transfer of control of digital assets between participants in the blockchain system and contains at least one input and at least one output. Each block contains a hash of the previous block, and blocks chain together to create a permanent, immutable record of all transactions written to the blockchain since its inception. Transactions contain small programs known as scripts embedded in their inputs and outputs. Scripts specify how and by whom the transaction's outputs can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language.

[0003] In order for a transaction to be written to the blockchain, it must be "verified." Network nodes (miners) perform work to ensure each transaction is valid; invalid transactions are rejected by the network. A software client installed on a node performs this validation work on unspent transactions (UTXOs) by running its locking and unlocking scripts. If the execution of the locking and unlocking scripts evaluates to true, the transaction is valid and the transaction is written to the blockchain. Thus, for a transaction to be written to the blockchain, it must i) be verified by the first node that receives the transaction; if the transaction is verified, the node relays the transaction to other nodes in the network; ii) be added to a new block constructed by miners; and iii) be mined, i.e., added to the public ledger of past transactions.

[0004] Because blockchain offers various benefits, many organizations (entities) have begun to investigate ways in which this technology can be incorporated into their computing infrastructure. Entities may implement complex internal computing systems for storing and / or processing their data. For example, these systems may be based on large database structures necessary to process large volumes of data generated and / or captured by the organization's activities. For example, financial systems may require the management and synchronization of various databases so that generated and captured data can be accurately processed or communicated. However, while using blockchain technology to record data and events is desirable because blockchain offers advantages such as tamper resistance and permanent records, technical challenges arise when different computing architectures and platforms need to be used in conjunction with each other. Blockchain platforms may not interface with an entity's internal systems. Therefore, integration and communication issues exist that arise from the use of different hardware and software systems. The difficulty of identifying and extracting data from one system (e.g., a blockchain) so that it can be sent to a different system (e.g., a DBMS) is not a trivial issue. Furthermore, it is desirable to achieve this cross-platform integration in a way that does not require changes to any of the underlying platforms. Furthermore, blockchains store data in transactions (Txs), which are built into blocks. Identifying and accessing relevant data from a blockchain is a challenging task and needs to be performed in a manner that is both secure and efficient in terms of both time and computation. The present invention addresses at least these technical concerns.

[0005] Throughout this specification the terms "comprise" or variations such as "comprises" or "comprising" will be understood to mean the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps.

[0006] As used herein, the term "blockchain" is used to encompass all forms of electronic, computer-based, distributed ledgers. These include consensus-based blockchain and transaction chain technologies, permissioned and permissionless ledgers, shared ledgers, and variations thereof. The most widely known application of blockchain technology is the Bitcoin ledger, although other blockchain implementations have been proposed and developed. While Bitcoin is referred to herein for convenience and illustrative purposes, it should be noted that the present invention is not limited to use with the Bitcoin blockchain, and alternative blockchain implementations and protocols are within the scope of the present invention.

[0007] Any discussion of documents, acts, materials, devices, products, or the like which is included in this disclosure should not be construed as an admission that any or all of these items form part of the prior art or were common general knowledge in the art relevant to the disclosure as existing prior to the priority date of each claim of this application. Summary of the Invention

[0008] Methods and systems according to the present invention are defined in the accompanying claims. The present invention may provide a cryptographic method and corresponding system. The present invention may provide a blockchain-implemented method / system. The present invention may provide a control system for securely identifying, retrieving, transmitting, processing, and / or updating data. This data may be retrieved, accessed, or copied from a blockchain. The present invention may provide a method / system for integrating a blockchain with non-blockchain-implemented computing resources, such as data storage / processing resources, using cryptographic keys. The present invention may provide a method / system for identifying and / or retrieving data from a blockchain with cryptographic keys. The present invention may provide a method / system for integrating blockchain-provided data with non-blockchain-implemented storage resources. An entity may be referred to as an organization, a system, or a network. An entity may be a logical, virtual, computer-based, or physical entity. An entity may include a natural person.

[0009] A computer-implemented method may be provided for efficiently identifying, associating, or determining blockchain transactions (Txs) by one or more entities. Blockchain transactions may be recorded on a peer-to-peer distributed ledger (blockchain).

[0010] The method is: associating the public address of an entity with one or more identifiers of the first classification type to classify the public address according to the first classification type, which may include a logical link or association with at least one identifier of the public address, the identifier belonging to the classification type; receiving a first identifier of the one or more identifiers of the first classification type from a communications network; determining a first set of public addresses associated with the first identifier, the first set of public addresses being a subset of the public addresses; identifying a first set of transactions in a blockchain based on the first set of public addresses associated with the first identifier; The first transaction set may be a subset of the transactions on the blockchain.

[0011] The method may further include extracting or copying at least a data portion (sometimes referred to as "transaction data") from the first blockchain transaction set, and / or transmitting the extracted transaction data to a computational resource that is not part of the blockchain platform or network; The public address may be derived from or based on a cryptographic key, which may be a determining key.

[0012] Additionally or alternatively, the present invention may provide a method for generating public keys for linked or associated entity structures, wherein a function is applied to a determination key to generate the public key, said determination key being generated by applying a hash function to a parent entity identifier to generate a parent determination key, or to the sum of said parent determination key and a child entity identifier to generate a child determination key.

[0013] The key may form part of a public / private key pair. There may be one key or key pair designated as the "master" or "root" key / pair. Sub-entities, units, or elements within an entity may be associated with sub-keys or pairs derived from the root. Sub-keys may be generated in a deterministic manner. Sub-keys may be generated or determined substantially as described in the examples provided below. Sub-keys may be generated, derived, or determined based on another (preceding) key. Sub-key generation may include the use of ECC techniques. Sub-keys may be generated, derived, or determined using a deterministic key (DK) based on a cryptographic hash of the message (M) or identifier. The message or identifier may be random, pseudo-random, predetermined, or selected. In a preferred embodiment, the message / identifier is selected, configured, or generated to correspond to a meaningful value, such as an account number, patient ID, network node identifier, company identifier, etc. The message or identifier may have some meaning associated with the entity or sub-entity / element. The message may provide a link, association, or reference to an entity or element. A subkey may be determined based on a scalar sum of the scalar multiplication of the associated public parent key and determination key with a generator (G). The message / identifier may be stored in metadata within a blockchain transaction (Tx). The message / identifier may be rehashed to provide further subkeys.

[0014] In some embodiments of the present invention, a method may include associating a public address with one or more identifiers of a first classification type to classify the public address based on the first classification type. In this manner, the method may efficiently determine transactions (Txs) recorded on a peer-to-peer distributed ledger (blockchain) based on the classified public address. As a result, the methods disclosed in this disclosure are particularly useful for any type of system in which data needs to be identified and / or extracted from transactions being submitted to a blockchain. Examples of useful applications may include accounting and reporting on transactions recorded on a blockchain, although it is important to note that the present invention is not limited with respect to this use, application, or context.

[0015] The method is: receiving a first data item associated with the first identifier from the communications network; generating a first data output based on the first accounting item and the first transaction set.

[0016] For convenience and simplicity, in a non-limiting manner, data items may be referred to as "accounting items" and data outputs may be referred to as "accounting reports."

[0017] The method includes receiving, from a communications network, a second accounting item associated with a second identifier of the one or more identifiers of the first classification type; determining a second set of public addresses associated with the second identifier, the second set of public addresses being a subset of the public addresses; determining a second set of transactions in the peer-to-peer distributed ledger based on the second set of public addresses associated with the second identifier, the second set of transactions being a subset of the transactions; generating a second accounting report based on the second accounting item and the second transaction set; performing a first hash operation on the first accounting report to generate a first report hash representation of the first accounting report; performing a second hash operation on the second accounting report to generate a second report hash representation of the second accounting report; combining the first reported hash representation and the second reported hash representation; The method may further include performing a third hash operation on the combined first reported hash representation and second reported hash representation to generate a third hash representation of the combined first reported hash representation and second reported hash representation.

[0018] The method may further include storing the third reported hash representation in a storage device.

[0019] The method is: combining the first accounting report and the second accounting report; and performing a hashing operation on the combined first and second accounting reports to generate a hashed representation of the combined first and second accounting reports.

[0020] The method is: associating the public address of the entity with one or more identifiers of a second classification type to classify the public address according to the second classification type; receiving a third identifier of the one or more identifiers of the second classification type from the communications network; determining a third set of public addresses associated with the third identifier and the first identifier, the third set of public addresses being a subset of the public addresses; The method may further include determining a third set of transactions in the peer-to-peer distributed ledger based on the third identifier and the third set of public addresses associated with the first identifier, the third set of transactions being a subset of the transactions.

[0021] The first classification type may represent a classification of the public address according to the identity of the entity.

[0022] The one or more identifiers of the first classification type are: the name of said entity; the hexadecimal code of said name, Network node identifier, the entity's Australian Business Number, and / or the entity's Australian Company Number; may include one or more of:

[0023] The second classification type may represent a classification of the public address according to an accounting type of the entity.

[0024] The one or more identifiers of the second classification type are: Credit accounting, Debit accounting, Receipt accounting, Receipt accounting, Payroll accounting, and Interest accounting, The suffix may include one or more of:

[0025] Associating the public address of the entity with the one or more identifiers of the first taxonomy includes: storing the one or more identifiers of the first classification type in association with the public addresses of the entities in lookup table entries, each entry in the lookup table including one of the one or more identifiers of the first classification type and one of the public addresses.

[0026] Associating the public address of the entity with the one or more identifiers of the first taxonomy includes: using a script to associate the one or more identifiers of the first taxonomy with the public address in the peer-to-peer distributed ledger.

[0027] The first classification type may represent the classification of the public addresses by a tree structure linking the entities.

[0028] The one or more identifiers of the first taxonomy may include a determination key associated with the entity, the determination key being generated based on the tree structure.

[0029] The entities may have parent entities in the tree structure and child entities associated with the parent entities; the parent entity is associated with a first one of the decision keys, and the child entity is associated with a second one of the decision keys; The first determination key is determined based on a parent designation associated with the parent entity, and the second determination key is determined based on the first determination key and a child designation associated with the child entity.

[0030] The method comprises: receiving the parental instructions from the communications network; determining the first determination key based on the parent instruction; determining the second determination key based on the first determination key and the child instruction; determining a fourth set of public addresses associated with the second determination key, the fourth set of public addresses being a subset of the public addresses; determining a fourth set of transactions in the peer-to-peer distributed ledger based on the fourth set of public addresses associated with the second determination key, the fourth set of transactions being a subset of the transactions; generating a third accounting report based on the fourth transaction set.

[0031] The step of determining the fourth public address set may further include the step of determining the fourth public address set based on the second determination key.

[0032] The public address may have the public keys of an asymmetric cryptographic pair, each of which may have one of the public keys and a private key corresponding to one of the public keys.

[0033] The peer-to-peer distributed ledger may be a blockchain created according to the Bitcoin protocol.

[0034] The public address may comprise the entity's Bitcoin address used in the Bitcoin protocol.

[0035] There is provided a computer software program having machine executable instructions which, when executed by a processor, cause the processor to perform any one of the methods described above.

[0036] A computer system for efficient determination of transactions by entities is provided, the transactions being recorded on a peer-to-peer distributed ledger, the computer system comprising: 1. A processor, comprising: associating the public addresses of the entity with one or more identifiers of the first classification type to classify the public addresses according to the first classification type; receiving a first identifier of the one or more identifiers of the first classification type from a communications network; determining a first set of public addresses associated with the first identifier, the first set of public addresses being a subset of the public addresses; determining a first set of transactions in the peer-to-peer distributed ledger based on the first set of public addresses associated with the first identifier, the first set of transactions being a subset of the transactions.

[0037] The present invention may provide a method for generating public keys for linked or associated entity structures, the method comprising: The method may include applying a function to a determination key to generate a public key, the determination key being generated by applying a hash function to a parent entity identifier to generate a parent determination key, or to a sum of the parent determination key and a child entity identifier to generate a child determination key. The method may further include any of the features described above.

[0038] Any of the features described above relating to the method of the present invention may be applicable to the corresponding system, and vice versa. [Brief explanation of the drawings]

[0039] Features of the present disclosure will now be illustrated by way of non-limiting examples, in which like numbers refer to like elements. [Figure 1] 1 illustrates a cryptocurrency system including an accounting server according to the present disclosure. [Figure 2] 1 illustrates a computer-implemented method for efficient decision making of transactions on a peer-to-peer distributed ledger in accordance with the present disclosure. [Figure 3A] 1 illustrates an example of associating an entity's public address with a classification type identifier according to the present disclosure. [Figure 3B] 1 illustrates an example of associating an entity's public address with more than one taxonomic type identifier according to the present disclosure. [Figure 4A] 1 illustrates an exemplary application of the present disclosure to a network of entities organized in a tree structure. [Figure 4B] 1 illustrates an exemplary application of the present disclosure to a network of entities organized in a tree structure. [Figure 5] 1 shows an exemplary schematic diagram of a computer system that may be used to implement the methods described herein. DETAILED DESCRIPTION OF THE INVENTION

[0040] 1 illustrates a cryptocurrency system 100 including a server 111 according to the present disclosure. In this example, the server is an accounting server, although in other embodiments the server may be deployed for other types of purposes or functions.

[0041] Cryptocurrency system 100 provides a platform for entities 103, 105-1 through 105-7 to send and receive cryptocurrency. Entities 103, 105-1 through 105-7 are connected to one another by communications network 101. Cryptocurrency system 100 of the present disclosure uses a peer-to-peer distributed ledger (i.e., blockchain) 109 to record transactions (Txs) conducted through cryptocurrency system 100. A copy of the public shared database (i.e., blockchain) 109 is stored on currency processing terminal 107. Although only one currency processing terminal 107 is shown in FIG. 1 , more than one currency processing terminal 107 may be present in cryptocurrency system 100 without departing from the scope of the present disclosure.

[0042] The cryptocurrency system 100 of the present disclosure is described as a Bitcoin system 100 using a blockchain for purposes of illustration. In another example, the cryptocurrency system 100 may be another cryptocurrency platform, such as Ethereum. Additionally, although the cryptocurrency system 100 and the methods of the present disclosure are described in the context of accounting and reporting transactions recorded on a peer-to-peer distributed ledger (i.e., blockchain) 109, the cryptocurrency system 100 and these methods may be used in different ways. The present invention is not limited to use for accounting purposes.

[0043] In Bitcoin system 100, one or more transactions (Txs) may occur between entity 103 and entities 105-1 through 105-7. For example, a specific number of Bitcoins (BTC) may be transferred from entity 103 to entity 105-1. Transactions are defined and processed according to the Bitcoin protocol. An exemplary Bitcoin transaction (Tx) is shown in Table 1 below.

[0044] Table 1: Example Bitcoin transactions

[0045] [Table 1] The above transaction in Table 1 is a data structure configured according to the blockchain protocol and includes multiple fields and scripts. These fields and scripts contain information and commands used by the currency processing terminal 107 to perform a Bitcoin transaction (Tx). It should be noted that a transaction may have different fields and scripts for different purposes.

[0046] A transaction (Tx) typically contains a brief description of the transaction, including, for example, the transaction hash value, the Bitcoin protocol version number, the number of inputs, the number of outputs, the size of the transaction, etc.

[0047] The "Input" field ("In") contains a reference to the previous transaction ("prev_out") from which the Bitcoins were received, and the "Output" field ("Out") contains the number of Bitcoins ("value") to be sent to a public address or Bitcoin address used by the entity, and the public address or Bitcoin address (contained in "scriptPubKey") to which the Bitcoins should be sent. In the example shown in Table 1, the Bitcoins received from the previous transaction "0437cd7f8525ceed2324359c2d0ba26006d92d856a9c20fa0241106ee5a597c9" are sent to two public addresses.

[0048] The above transactions are forwarded to currency processing terminals 107, which are sometimes referred to as "miners" in the Bitcoin protocol. Currency processing terminals 107 group a certain number of past transactions (i.e., blocks) and verify these transactions using a proof-of-work mechanism.

[0049] When a block is validated, it is combined with other previously validated blocks. These blocks make up a peer-to-peer distributed ledger 109, referred to as the "blockchain" in the Bitcoin or Ethereum protocol. A copy of the blockchain 109 is stored on currency processing terminals 107 and is publicly accessible. Transactions recorded on the Bitcoin system's blockchain can be found, for example, at https: / / blockchain.info.

[0050] As known in the context of the Bitcoin protocol, an address is a hashed version of a cryptographic public key. The public key forms part of a public / private key pair. Every address is therefore linked to a private key owned by or associated with an entity (human, logical, virtual, or computer-based).

[0051] It should be noted that in cryptocurrency system 100, which operates according to the Bitcoin protocol using blockchain technology, entities 105-1 through 105-7 that receive bitcoins may have multiple public addresses or Bitcoin addresses for receiving bitcoins from entity 103. On the other hand, entity 103 may have multiple public addresses or Bitcoin addresses for receiving bitcoins from entities 105-1 through 105-7. Therefore, it is difficult to identify transactions associated with a particular classification. For example, it is difficult to identify transactions associated with a particular entity by accessing the blockchain. Furthermore, it is also difficult to identify transactions associated with a particular accounting type (e.g., debit accounting, credit accounting, etc.). This creates difficulties when using data stored on the blockchain for off-blockchain purposes. For example, if an organization wants to use a blockchain platform for currency transfer purposes to take advantage of the benefits provided by blockchain-implemented technology, they may need to import relevant data from the blockchain to an internal system, such as a database on a server, for further storage and / or processing. The aforementioned challenges in identifying related blockchain transactions (Tx) make this data extraction process a challenging technical task. For example, on transactions recorded on the blockchain 109, it becomes difficult to use the data for, for example, accounting, communication, processing, or reporting purposes.

[0052] In this example, for simplicity, we discuss using embodiments of the present invention for accounting reports. Accounting reports are used in this disclosure to report on transactions recorded in a blockchain. An accounting report includes one or more accounting items. Accounting items can take different forms. Essentially, an accounting item represents a question to be answered. For example, an accounting item may represent the question, "How many transactions have taken place with entity 105-1?" The answer to this question is a value representing the number of transactions with entity 105-1.

[0053] The accounting items to be included in the financial report may be presented on a user interface for selection by a user associated with the entity. For example, the accounting items may be presented on a computer screen of a computer used by the user. The user selects one or more of the accounting items to be included in the financial report using an input device associated with the computer (e.g., a keyboard, pointing device, or touch screen). Once the accounting items are selected by the user, these accounting items are transmitted to the accounting server 111 via the communications network 101. The method described below then executes on the accounting server 111 to calculate values ​​corresponding to the selected one or more of the accounting items.

[0054] The accounting server 111 further generates an accounting report by assembling the selected one or more of the accounting items and their corresponding values ​​into an electronic file. In part, the accounting report may be an electronic spreadsheet containing the selected one or more of the accounting items and their corresponding values. The generated accounting report may be stored in a storage device or transmitted to the user's computer or another computer previously designated by the user.

[0055] Exemplary accounting items that may be selected by a user associated with entity 103 are shown in Table 2. These accounting items include accounting items 1 through 5 associated with entity 105-1 ("Ducks Myth Electronics"), with which entity 103 conducts transactions.

[0056] [Table 2] Example accounting items

[0057] [Table 2] 2 illustrates a computer-implemented method 200 for efficient determination of transactions with entities in accordance with the present disclosure. Transactions are conducted by a cryptocurrency system 100 and recorded on a blockchain 109.

[0058] In this example, the method 200 is implemented on an accounting server 111 for accounting on transactions associated with the entity 103 .

[0059] Specifically, method 200 associates 210 the public addresses of entities 105-1 through 105-7 with one or more identifiers of a first classification type to classify the public addresses according to the first classification type.

[0060] The first classification type represents the classification of the public address in a specific way. In this example, the first classification type represents the classification of the public address by the identity of the entity 103, 105-1 to 105-7. Thus, one or more identifiers of the first classification type represent unique identifiers of the entities 103, 105-1 to 105-7. The identity of an entity in this disclosure may be represented by the name of the entity or a hexadecimal code of a name converted from the name of the entity. For example, as shown in FIG. 1, the name of entity 103 is "Alice" and the name of entity 105-1 is "Ducks Myth Electronics." In other examples, the identity of an entity may also be represented by an Australian Business Number (ABN), an Australian Company Number (ACN), or an internal alphanumeric client identifier such as "ABC14114800389."

[0061] In other examples, public addresses may be classified in different ways. For example, public addresses may be classified by the entity's accounting type. Thus, one or more identifiers of a first classification type indicate a particular accounting type associated with the public address, including any one or more of the following accounting: credit accounting, debit accounting, receipt accounting, payment accounting, payroll accounting, and interest accounting. Identifiers may indicate other types of accounting without departing from the scope of this disclosure.

[0062] As an example, entity 103 conducts a transaction with entity 105-1, and entity 105-1's name is “Ducks Myth Electronics.” Method 200 associates entity 105-1's name with this transaction.

[0063] Once the association is established, method 200 uses the association to account for a transaction. For example, a user associated with entity 103 uses an input device associated with his or her computer to select an accounting item 1 (e.g., "Number of Transactions with Entity 105-1") associated with a first identifier (e.g., "Ducks Myth Electronics"). The selected accounting item 1 is transmitted to accounting server 111 via communications network 101.

[0064] At the accounting server 111, the method 200 receives 220 a first identifier (“Ducks Myth Electronics”) from the communications network 101. In particular, the method 200 receives 220 an accounting item 1 associated with the first identifier (“Ducks Myth Electronics”) from the communications network 101.

[0065] Method 200 determines 230 a first public address set associated with the first identifier ("Ducks Myth Electronics") from the association established in step 210, where the first public address set is a subset of the public addresses. Specifically, method 200 searches the association by the first identifier ("Ducks Myth Electronics") to determine the first public address set associated with the first identifier ("Ducks Myth Electronics"). As a result, the first public address set used by "Ducks Myth Electronics" is determined.

[0066] The method 200 further determines 240 a first set of transactions in the peer-to-peer distributed ledger 109 (specifically, in this example, the blockchain 109) based on the first set of public addresses associated with the first identifier ("Ducks Myth Electronics"). Here, the first set of transactions is a subset of transactions recorded in the blockchain 109. For example, the method 200 downloads the blockchain 109 from the currency processing terminal 107 and searches the blockchain 109 for transactions having any one public address in the first set of public addresses used by "Ducks Myth Electronics." As a result, all transactions made by "Ducks Myth Electronics" are determined.

[0067] Based on accounting item 1 ("Number of Transactions with Entity 105-1") and the first transaction set determined above, method 200 generates a first accounting report. For example, method 200 determines a corresponding value indicating the number of transactions with entity 105-1 ("Ducks Myth Electronics") by counting the number of transactions in the first transaction set. Further, method 200 generates the first accounting report by creating an electronic spreadsheet that includes accounting item 1 ("Number of Transactions with Entity 105-1") and their corresponding values.

[0068] The user may select multiple accounting items, in which case method 200 repeats steps 210-240 to generate an accounting report containing these accounting items and their corresponding values. An exemplary accounting report is shown in Table 3 below.

[0069] [Table 3] Example accounting report

[0070] [Table 3] As can be seen from the above, based on different accounting items, method 200 can generate different accounting reports for accounting purposes, including balance sheets, income statements, inventory reports, delivery reports, custom reports, billing and payment reports, and other reports for non-accounting purposes without departing from the scope of this disclosure. An exemplary balance sheet and an exemplary income statement are shown in Table 4 and Table 5, respectively.

[0071] [Table 4] Example balance sheet

[0072] [Table 4] [Table 5] Example Income Statement

[0073] [Table 5] FIG. 3A illustrates an example of associating an entity's public address with a taxonomy identifier according to the present disclosure.

[0074] In the example shown in Figure 3A, lookup table 310 is used to associate public addresses of entities with classification type identifiers. Each entry in lookup table 310 includes two fields: a "public address" field 311 and a "client ID" field 313. The value of an entry's "public address" field 311 indicates the particular public address used in the transaction. The value of an entry's "client ID" field 313 indicates the unique identification of the entity associated with the public address. It should be noted that in another example, "client ID" field 313 may be replaced with a different classification type, such as accounting type, to classify public addresses by the accounting type associated with the public address.

[0075] If a transaction involving entity 103 originates with an entity using a public address not stored in lookup table 310, method 200 adds an entry to lookup table 310. For example, if a payment is made from entity 103 to a public address used by entity 105-1 ("Ducks Myth Electronics") that is not stored in lookup table 310, method 200 adds an entry to lookup table 310 and stores an identifier for entity 105-1 ("Ducks Myth Electronics") in the entry of lookup table 310 in association with the public address used by entity 105-1 ("Ducks Myth Electronics"), as shown in the first and third entries of lookup table 310. As a result, each entry in lookup table 310 associates one of the identifiers of a particular classification type with one of the public addresses by including them in the entry.

[0076] When a user selects an accounting item associated with entity 105-1 ("Ducks Myth Electronics") and the accounting item is transmitted over communications network 101 to accounting server 111, method 200 searches lookup table 310 for an entry having "Ducks Myth Electronics" in its "Client ID" field 313 to determine a first set of public addresses used by "Ducks Myth Electronics" (i.e., entity 105-1). In this example, the first set of public addresses determined in this example includes the public addresses contained in the first and third entries of lookup table 310.

[0077] Further, method 200 may determine a first set of transactions in peer-to-peer distributed ledger 109 (specifically, blockchain 109) based on a first set of public addresses associated with entity 105-1 ("Ducks Myth Electronics"), as described above with reference to step 240. Thus, all transactions made by "Ducks Myth Electronics" are determined. Method 200 may also generate a first accounting report based on the first set of transactions, as described above. The first accounting report may be transmitted from accounting server 111 to a computer used by the user or a computer previously designated by the user, and displayed on a computer screen for viewing by the user or a third party.

[0078] In another example, the user further selects a second accounting item (e.g., "Number of transactions with entity 105-3") associated with a second identifier of the first classification type ("iVision Pty Ltd," i.e., entity 105-3). The user transmits the second accounting item to accounting server 111 via communications network 101.

[0079] Method 200 receives a second accounting item associated with a second identifier ("iVision Pty Ltd") from communication network 101. Method 200 further determines a second set of public addresses associated with the second identifier ("iVision Pty Ltd"), where the second set of public addresses is a subset of the public addresses. In particular, method 200 searches lookup table 310 for entries having "iVision Pty Ltd" in the "Client ID" field 313 to determine the second set of public addresses used by "iVision Pty Ltd" (i.e., entity 105-3). The second set of public addresses determined in this example includes the public addresses included in the second entry of lookup table 310.

[0080] Method 200 then determines a second set of transactions in blockchain 109 based on a second set of public addresses associated with a second identifier ("iVision Pty Ltd"), where the second set of transactions is a subset of transactions in blockchain 109.

[0081] The method 200 further generates a second accounting report based on the second accounting item and the second transaction set, as described above.

[0082] Method 200 further performs a first hash operation on the generated first accounting report to generate a first reported hash representation for the first accounting report, and a second hash operation on the second accounting report to generate a second reported hash representation for the second accounting report. Method 200 combines the first reported hash representation and the second reported hash representation. The method further performs a third hash operation on the combined first reported hash representation and the second reported hash representation to generate a third hash representation of the combined first reported hash representation and the second reported hash representation. In this manner, the first reported hash representation and the second reported hash representation are combined into a single hash representation.

[0083] In another example, the method 200 combines a first accounting report and a second accounting report and performs a hash operation on the combined first accounting report and second accounting report to generate a hashed representation of the combined first accounting report and second accounting report.

[0084] Lookup table 310 may include an additional field (hereinafter referred to as a second classification type) to categorize the public addresses of entities by two classification types. In this manner, the public addresses associated with an entity are categorized by both the entity's identity and the accounting type associated with the public address. Furthermore, public addresses may be categorized by even more classification types without departing from the scope of this disclosure.

[0085] FIG. 3B illustrates an example of associating an entity's public address with more than one taxonomic type identifier according to the present disclosure.

[0086] 3B, each entry in lookup table 320 includes, in addition to "Public Address" field 311 and "Client ID" field 313 (i.e., the first classification type described above), an additional "Account Type" field 315 (i.e., a second classification type) to further classify public addresses based on the account type associated with the public address. The account type identifier represents a particular account type, including one or more of a credit account, a debit account, a receipt account, a payment account, a payroll account, and an interest account. The identifier may indicate other types of accounts without departing from the scope of this disclosure.

[0087] In this case, if a payment is made from entity 103 to a public address used by entity 105-1 ("Ducks Myth Electronics"), in addition to storing an identifier that is the identity of entity 105-1 ("Ducks Myth Electronics") in a new entry in lookup table 320 associated with the public address used by entity 105-1 ("Ducks Myth Electronics"), as described above with reference to FIGURE 3A, method 200 also associates the public address with a particular account type associated with the public address to categorize the public addresses by account type. As shown in the first entry of lookup table 320, the public address in the first entry is further associated with a "debit account," and the public address in the third entry is further associated with a "credit account."

[0088] The user selects a third accounting item (e.g., "Number of credit accounting transactions with entity 105-1") associated with a first identifier ("Ducks Myth Electronics" i.e., entity 105-1) of a first classification type (i.e., entity identification information) and a third identifier ("credit accounting") of a second classification type (i.e., accounting type associated with the public address). The user transmits the third accounting item to accounting server 111 via communications network 101.

[0089] Method 200 receives from communication network 101 a third accounting item associated with a first identifier of a first classification type ("Ducks Myth Electronics") and a third identifier of a second classification type ("Credit Accounting"). Method 200 further determines a third set of public addresses associated with the third identifier ("Credit Accounting") and the first identifier ("Ducks Myth Electronics"), where the third set of public addresses is a subset of the public addresses. In the example shown in FIG. 3B, method 200 searches lookup table 320 for an entry having both "Ducks Myth Electronics" in the "Client ID" field 313 and "Credit Accounting" in the "Account Type" field 315 to determine the third set of public addresses used by "Ducks Myth Electronics" (i.e., entity 105-1) for credit accounting. As shown in FIG. 3B, the determined third set of public addresses in this example includes only the public addresses included in the third entry of lookup table 320.

[0090] Method 200 may further determine a third set of transactions in the peer-to-peer distributed ledger 109 (particularly, the blockchain 109) based on the third set of public addresses, where the third set of transactions is a subset of the transactions. Method 200 may further generate a further accounting report based on the third set of transactions and store the further accounting report in a storage device as described above.

[0091] It should be noted that the entries shown in lookup table 310 or 320 may represent a portion of the transactions that take place in relation to entity 103, and lookup table 310 or 320 may include more entries in other examples.

[0092] An example of associating an entity's public address with a taxonomy identifier according to the present disclosure is set forth below.

[0093] In this example, if a payment is made from entity 103 to a public address used by entity 105-1 ("Ducks Myth Electronics"), method 200 associates the public address used by entity 105-1 with an identifier ("Ducks Myth Electronics") that is the identity of entity 105-1 within the transaction itself. For example, method 200 uses a script within the transaction to associate the public address used by entity 105-1 with an identifier ("Ducks Myth Electronics") that is the identity of entity 105-1 in blockchain 109.

[0094] In this case, when an accounting item associated with entity 105-1 ("Ducks Myth Electronics") is selected by a user and transmitted over communication network 101 to accounting server 111, method 200 may search blockchain 109 for transactions matching a public address used by "Ducks Myth Electronics" to determine transactions in blockchain 109 made by "Ducks Myth Electronics." Method 200 may further generate an accounting report based on the determined transactions. Method 200 may further store the accounting report in a storage device.

[0095] 4A and 4B illustrate an exemplary application of the present disclosure to a network of entities organized in a tree structure.

[0096] In the exemplary application shown in Figure 4A, entity network 400 includes multiple entities 401-413 arranged in a tree structure. Although entity network 400 is shown in Figure 4A to represent a retail store network, which is traditionally structured in a tree structure, entity network 400 may represent other entity networks without departing from the scope of this disclosure.

[0097] To categorize the public addresses associated with the checkout terminals 407-413 arranged in the tree structure shown in Figure 4A, a classification type called "Decision Key" is introduced in this example, shown as the "Decision Key" field 413 in the lookup table 420 of Figure 4B. Thus, identifiers of this classification type represent the specific decision keys associated with each of the entities 401-413 linked by the tree structure.

[0098] As shown in FIG. 4A , the stores and checkout terminals 401-413 in retail network 400 are arranged in a tree structure. Specifically, entity or store 401 is at the top of the tree and has two child entities or stores 403 and 405. Child entity or store 403 is also the parent entity of child entities 407 and 409, which are checkout terminals installed in or associated with store 403. Similarly, child entity or store 405 is also the parent entity of child entities 411 and 413, which are checkout terminals installed in or associated with store 405. Each of stores 401-405 has an associated merchant indication (MID) (e.g., the name of the store), and each checkout terminal 407-413 has an associated terminal indication (TID) (e.g., a manufacturer identification number assigned to the checkout terminal). Transactions are conducted at checkout terminals 407-413 using public addresses associated with checkout terminals 407-413.

[0099] The determination keys associated with the entities 401-413 are determined such that the determination keys are deterministically mapped to the entities 401-413. Specifically, the determination key associated with the root entity or store 401 is based on the MID associated with the root entity or store 401. For example, the determination key associated with the root entity or store 401 may be determined by executing a set of cryptographic functions based on the MID associated with the root entity 401. An example is shown below of generating a generator value (GV401) associated with the root entity 401 by using the cryptographic hash algorithm SHA-256 based on the MID associated with the root entity 401 ("MID401").

[0100] GV401=SHA-256(MID401) (Equation 1) For child entities or stores 403 and 405, the determination key associated with each of the child entities or stores 403 and 405 (e.g., "GV403" for store 403, or "GV405" for store 405) is determined based on the determination key associated with the parent entity 401 (in this example, the root entity 401) (i.e., "GV401") and its own MID (e.g., "MID403" for store 403, or "MID405" for store 405).

[0101] GV403=SHA-256(GV401+MID403) (Formula 2) GV405=SHA-256(GV401+MID405) (Formula 3) For checkout terminals 407 and 409, the decision key associated with each of checkout terminals 407 and 409 (e.g., "GV407" for checkout terminal 407 or "GV409" for checkout terminal 409) is determined based on the decision key associated with its parent entity 403 (i.e., "GV403") and its own TID (e.g., "TID407" for checkout terminal 407 or "TID409" for checkout terminal 409). Similarly, for checkout terminals 411 and 413, the decision key associated with each of checkout terminals 411 and 413 (e.g., "GV411" for checkout terminal 411 or "GV413" for checkout terminal 413) is determined based on the decision key associated with its parent entity 405 (i.e., "GV405") and its own TID (e.g., "TID411" for checkout terminal 411 or "TID413" for checkout terminal 413). For example, GV407=SHA-256(GV403+TID407) (Equation 4) GV409 = SHA-256(GV403 + TID409) (Equation 5) GV411=SHA-256(GV405+TID411) (Formula 6) GV413 = SHA-256(GV405 + TID413) (Equation 7) These determination keys are then used to derive the respective public addresses used by the stores 401-405 and checkout terminals 407-413. For example:

[0102] Public address = F(decision key) (Formula 8) Here, F() is a function that generates a public address based on a determination key.

[0103] When a transaction involving a checkout terminal (e.g., checkout terminal 407) occurs, method 200 may add an entry to lookup table 420. For example, a payment is made from a customer to a public address used by checkout terminal 407 that is derived from a determination key associated with checkout 407. If the public address used by checkout terminal 407 is not stored in lookup table 420, as shown in the first and third entries of lookup table 420, method 200 adds a new entry to lookup table 420 and stores the determination key associated with checkout terminal 407 (i.e., "GV407") in the new entry in lookup table 420, associated with the public address used by checkout terminal 407. In other examples, the determination key associated with checkout terminal 407 is already stored in an entry in lookup table 420 before the transaction occurs. In this case, method 200 stores the public address used by checkout terminal 407 in the entry where the determination key is stored, in order to associate the public address with the determination key. As a result, each entry in lookup table 420 includes a determination key associated with one of checkout terminals 407-413 and one of the public addresses used by one of checkout terminals 407-413.

[0104] At the end of the business day, the store manager of store 403 may wish to obtain an accounting report for store 403. The store manager selects accounting items associated with store 403 (e.g., "Number of transactions with store 403"), for example, by entering the MID associated with store 403. In this example, the accounting items and the MID associated with store 403 are transmitted to accounting server 111 via communications network 101.

[0105] The method 200 receives a MID and a transaction item associated with the store 403 from the communication network 101. If the store 403 is a root store, the method 200 determines a first determination key associated with the store 403 and a MID associated with the store 403. If the store 403 is not a root store, the first determination key may be determined based on a determination key associated with the parent store 401 and a MID associated with the store 403. The method 200 further determines determination keys (e.g., “GV407”, “GV409”) associated with child entities of the store 403 or checkout terminals 407 and 409 based on the first determination key and the TIDs of the checkout terminals 407 and 409, respectively.

[0106] By searching lookup table 420 for entries having in their "Decision Key" field 413 any one of decision keys "GV407" and "GV409" associated with checkout terminals 407 and 409, method 200 determines a fourth set of public addresses associated with decision keys "GV407" and "GV409," where the fourth set of public addresses is a subset of the public addresses. As shown in FIG. 4B , the determined fourth set of public addresses includes the public addresses included in the "Public Address" fields 411 of the first three entries in lookup table 420.

[0107] Method 200 may further include determining a fourth set of transactions in blockchain 109 based on the fourth set of public addresses, where the fourth set of transactions is a subset of the transactions. Method 200 may further include generating a third accounting report based on the fourth set of transactions, as described above. Method 200 may further include storing the accounting report in a storage device.

[0108] Because the public addresses used by stores 401-405 and checkout terminals 407-413 are derived from their respective determination keys, method 200 can determine the fourth set of public addresses without searching lookup table 420 by applying the determination keys associated with checkout terminals 407-413 to (Equation 8).

[0109] It should be noted that in this disclosure, a public address has public keys of an asymmetric cryptography pair, each of which has one of the public keys and a private key corresponding to one of the public keys, and each of which may be generated based on an Elliptic Curve Cryptography (ECC) algorithm.

[0110] Furthermore, in the Bitcoin system, a public address is an entity's Bitcoin address used in the Bitcoin protocol.

[0111] 5 shows an exemplary schematic diagram of a computer system 500 that may be used to implement the described methods. The computer system 500 may be an example of an accounting server 111.

[0112] The computer system 500 includes a processor 510, a memory device 520, a bus 530, and a communication interface 540. The processor 510, the memory device 520, and the communication interface 540 are connected by the bus 530 to communicate with each other. The communication interface 540 of the computer system 500 is used to connect the computer system 500 to the communication network 101, as shown in Figure 1. The communication interface 540 may be an Internet interface, a WLAN interface, a cellular telephone network interface, a Public Switch Telephone Network (PSTN) interface, an optical communication network interface, or any other suitable communication interface.

[0113] The processor 510 executes machine-executable instructions stored in the memory 520 to implement the exemplary method described above with reference to FIGS. 1-4B. The machine-executable instructions are included in a computer software program, which in this example resides in the memory device 520. In other examples, the computer software program is stored on a computer-readable medium that is not part of the computer system 500 and is loaded into the memory device 520 from the computer-readable medium. Specifically, the processor 510: associating the public addresses of the entity with one or more identifiers of a first classification type to classify the public addresses according to the first classification type; receiving a first identifier of one or more identifiers of a first classification type from a communications network; determining a first public address set associated with the first identifier, the first public address set being a subset of the public addresses; and identifying a first set of transactions in the peer-to-peer distributed ledger based on a first set of public addresses associated with the first identifier.

[0114] It should be understood that the exemplary methods of the present disclosure can be implemented using a variety of technologies. For example, the methods described herein may be implemented by a series of machine-executable instructions residing on a suitable computer-readable medium. Suitable computer-readable media may include volatile (e.g., RAM) and / or non-volatile (e.g., ROM, disk) memory, carrier waves, and transmission media. Exemplary carrier waves may take the form of an electrical, electromagnetic, or optical signal that carries a digital data stream along a local network or a publicly accessible network such as the Internet.

[0115] It should be understood that, unless otherwise indicated, and as will be apparent from the following discussion, throughout the following description, discussions using words such as "determine," "obtain," "receive," or "transmit," or "generate" refer to the operations and processing of a computer system or similar electronic computing device that manipulates and converts data represented as physical (electronic) quantities in the computer system's registers and memory into other data similarly represented as physical quantities in the computer system's memory or registers or information storage, transmission, or display, etc. [Explanation of symbols]

[0116] 101 Communication Network 103 Entities 105 entities 107 Currency Processing Terminal 109 Public Shared Database 111 Accounting Server

Claims

1. 1. A computer-implemented method comprising: associating public addresses of a plurality of entities with one or more identifiers of a first classification type to classify the public addresses according to the first classification type, the identifiers representing determination keys associated with each of the plurality of entities; receiving a first identifier of the one or more identifiers of the first classification type from a communications network; determining a first set of public addresses associated with the first identifier, the first set of public addresses being a subset of the public addresses; identifying a first set of transactions in a blockchain based on the first set of public addresses associated with the first identifier; 20. A computer-implemented method comprising:

2. receiving a first data item associated with the first identifier from the communications network; generating a first data output based on the first data item and the first transaction set; The computer-implemented method of claim 1 further comprising:

3. receiving, from a communications network, a second data item associated with a second identifier of the one or more identifiers of the first classification type; determining a second set of public addresses associated with the second identifier, the second set of public addresses being a subset of the public addresses; determining a second set of transactions in the blockchain based on the second set of public addresses associated with the second identifier, the second set of transactions being a subset of transactions; generating a second data output based on the second data item and the second transaction set; performing a first hash operation on the first data output to generate a first output hash representation of the first data output; performing a second hash operation on the second data output to generate a second output hash representation of the second data output; combining the first output hash representation and the second output hash representation; performing a third hash operation on the combined first output hash representation and the second output hash representation to generate a third hash representation of the combined first output hash representation and the second output hash representation; The computer-implemented method of claim 2 further comprising:

4. storing the third hashed representation in a storage device; The computer-implemented method of claim 3 further comprising:

5. combining the first data output and the second data output; performing a hashing operation on the combined first and second data outputs to generate a hashed representation of the combined first and second data outputs; The computer-implemented method of claim 3 further comprising:

6. associating the public address of the entity with one or more identifiers of a second classification type to classify the public address according to the second classification type; receiving a third identifier of the one or more identifiers of the second classification from the communications network; determining a third set of public addresses associated with the third identifier and the first identifier, the third set of public addresses being a subset of the public addresses; determining a third set of transactions in the blockchain based on the third identifier and the third set of public addresses associated with the first identifier, the third set of transactions being a subset of transactions; The computer-implemented method of any of claims 1 to 5, further comprising:

7. The computer-implemented method of any one of claims 1 to 6, wherein the first classification type represents a classification of the public address according to the identity of the entity.

8. The one or more identifiers of the first classification type are: the name of said entity; the hexadecimal code of said name, the entity's Australian Business Number; Network address, or the entity's Australian Company Number; The computer-implemented method of any of claims 1 to 7, comprising one or more of:

9. The computer-implemented method of claim 6 , wherein the second classification type represents a classification of the public address according to an account type of the entity.

10. The one or more identifiers of the second classification type are: Credit accounting, Debit accounting, Receipt accounting, Payroll accounting, and / or Interest accounting, The computer-implemented method of claim 9 , comprising one or more of:

11. Associating the public address of the entity with one or more identifiers of the first taxonomy includes:

11. The computer-implemented method of claim 1, further comprising: storing the one or more identifiers of the first classification type in association with the public addresses of the entities in entries of a lookup table, each entry of the lookup table including one of the one or more identifiers of the first classification type and one of the public addresses.

12. Associating the public address of the entity with one or more identifiers of the first taxonomy includes:

11. The computer-implemented method of claim 1, comprising associating the one or more identifiers of the first classification type with a public address in the blockchain using a script.

13. The computer-implemented method of claim 1 , wherein the first classification type represents a classification of the public addresses by a tree structure linking the entities.

14. The computer-implemented method of any of claims 1 to 13, wherein the blockchain is generated according to the Bitcoin protocol.

15. 15. The computer-implemented method of claim 14, wherein the public address comprises a Bitcoin address of the entity used in the Bitcoin protocol.

Citation Information

Patent Citations

  • Information processor and information processing method

    JP2008146601A

  • Method of generating cipher key, network system, and program

    JP2010219912A

  • Entity Network Translation (ENT)

    JP2015536617A

  • Generalized entity network translation (GENT)

    US20150244690A1