Special relationships in a blockchain

An example operation may include one or more processing transactions of a plurality of blocks of a blockchain of the blockchain network to determine a user of a plurality of users that is a party of the respective transaction and a mining pool of one or more mining pools that included the respective transaction in the blockchain, performing a statistical analysis of the transactions to determine if the transactions of a user of the plurality of users is distributed across the one or more mining pools in a statistically expected manner, determining that the user has a special relationship with one or more of the one or more mining pools if the transactions of the user are not distributed across the mining pools in a statistically expected manner, and for a user that is determined to have a special relationship, determining one or more of the mining pools with which the determined user has a special relationship.

TECHNICAL FIELD

This application generally relates to distributed ledger and database processes, and more particularly, to special relationships in a blockchain.

BACKGROUND

A ledger is commonly defined as an account book of entry, in which transactions are recorded. A distributed ledger is ledger that is replicated in whole or in part to multiple computers. A Cryptographic Distributed Ledger (CDL) can have at least some of these properties: irreversibility (once a transaction is recorded, it cannot be reversed), accessibility (any party can access the CDL in whole or in part), chronological and time-stamped (all parties know when a transaction was added to the ledger), consensus based (a transaction is added only if it is approved, typically unanimously, by parties on the network), verifiability (all transactions can be cryptographically verified). A blockchain is an example of a CDL. While the description and figures herein are described in terms of a blockchain, the instant application applies equally to any CDL.

A distributed ledger is a continuously growing list of records that typically apply cryptographic techniques such as storing cryptographic hashes relating to other blocks. A blockchain is one common instance of a distributed ledger and may be used as a public ledger to store information. Although, primarily used for financial transactions, a blockchain can store various information related to goods and services (i.e., products, packages, status, etc.). A decentralized scheme provides authority and trust to a decentralized network and enables its nodes to continuously and sequentially record their transactions on a public “block”, creating a unique “chain” referred to as a blockchain. Cryptography, via hash codes, is used to secure an authentication of a transaction source and removes a central intermediary. A blockchain is a distributed database that maintains a continuously-growing list of records in the blockchain blocks, which are secured from tampering and revision due to their immutable properties. Each block contains a timestamp and a link to a previous block. A blockchain can be used to hold, track, transfer and verify information. Since a blockchain is a distributed system, before adding a transaction to the blockchain ledger, all peers need to reach a consensus status.

In many blockchain systems, adding a new block to the blockchain requires the solving of a complex mathematical puzzle. This process is often referred to as mining. For example, the puzzle may be to find a cryptographic hash of the previous block in the blockchain, or at least the blockchain header, that is less than a target value.

To “mine” a block requires the mining entity to repeat a hash algorithm while varying a nonce value until a valid solution is found. Mining requires both fast computational power and electricity and thus has an associated cost. The entity that mines the block may be rewarded, e.g. with cryptocurrency and/or with any transaction fees associated with the block. Mining is also competitive with other miners. To enhance the mining entity's chance of successfully mining the next block, the entity may pool computational resources with other miners into a mining pool. The mining pool then shares the rewards amongst its contributors.

The number of transactions that can be included in a block may be limited, for example by the maximum permissible size of the block. When a new block is formed, if the pending transaction queue is less than the maximum allowable size of the block, then all pending transactions will be included in the block. However, if the pending transaction queue is greater than the allowable block size, then the mining pool that generates the block may select which transactions to include in the block. To ensure that a transaction is included, a party that generates the transaction, e.g. a client, account owner, etc., may offer a transaction fee that is payable to the mining entity. Higher fee transactions are more likely to be included in the transaction block. Low value transactions with low fees may therefore need to wait many hours and sometimes days for the transactions to be confirmed by inclusion in a block.

Out of band transaction acceleration is a practice whereby a mining pool could be incentivized, out of band i.e. by something other than the transaction fee, to include the transaction in a block that it has mined. This could be done to accelerate transactions with low fees or to protect against double-spend. Businesses would always want to know if their competitors have any special business arrangements with certain payment processors (miners).

Thus, what is required is a system and method to detect such out-of-band special relationships between account owners and mining pools.

SUMMARY

One example embodiment may provide a method that may comprise one or more processing transactions of a plurality of blocks of a blockchain of the blockchain network to determine a user of a plurality of users that is a party of the respective transaction and a mining pool of one or more mining pools that included the respective transaction in the blockchain, performing a statistical analysis of the transactions to determine if the transactions of a user of the plurality of users is distributed across the one or more mining pools in a statistically expected manner, determining that the user has a special relationship with one or more of the one or more mining pools if the transactions of the user are not distributed across the mining pools in a statistically expected manner, and for a user that is determined to have a special relationship, determining one or more of the mining pools with which the determined user has a special relationship.

Another example embodiment may provide a system that includes a blockchain network comprising a plurality of mining pools and a plurality of users. The plurality of mining pools create blocks containing transactions for the plurality of users and include a created block into the blockchain. The system further comprises one or more of a special relationship detection service module comprising at least one processor and operatively associated memory programmed to process transactions of a plurality of blocks of the blockchain to determine a user of the plurality of users that is a party of the respective transaction and a mining pool of the one or more mining pools that included the respective transaction in the blockchain, perform a statistical analysis of the transactions to determine if the transactions of a user of the plurality of users is distributed across the one or more mining pools in a statistically expected manner, determine that the user has a special relationship with one or more of the one or more mining pools if the transactions of the user are not distributed across the mining pools in a statistically expected manner, and for a user that is determined to have a special relationship, determine one or more of the mining pools with which the determined user has a special relationship.

A further example embodiment may provide a non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform one or more of processing transactions of a plurality of blocks of a blockchain of a blockchain network to determine a user of a plurality of users that is a party of the respective transaction and a mining pool of one or more mining pools that included the respective transaction in the blockchain, performing a statistical analysis of the transactions to determine if the transactions of a user of the plurality of users is distributed across the one or more mining pools in a statistically expected manner, determining that the user has a special relationship with one or more of the one or more mining pools if the transactions of the user are not distributed across the mining pools in a statistically expected manner, and for a user that is determined to have a special relationship, determining one or more of the mining pools with which the determined user has a special relationship.

DETAILED DESCRIPTION

Example embodiments provide methods, devices, networks and/or systems, which provide a system and method by which special relationships between miners and account owners or clients may be detected.

A blockchain is a distributed system which includes multiple nodes that communicate with each other. A blockchain operates programs called chaincode (e.g., smart contracts, etc.), holds state and ledger data, and executes transactions. Some transactions are operations invoked on the chaincode. In general, blockchain transactions typically must be “endorsed” by certain blockchain members and only endorsed transactions may be committed to the blockchain and have an effect on the state of the blockchain. Other transactions which are not endorsed are disregarded. There may exist one or more special chaincodes for management functions and parameters, collectively called system chaincodes.

Nodes are the communication entities of the blockchain system. A “node” may perform a logical function in the sense that multiple nodes of different types can run on the same physical server. Nodes are grouped in trust domains and are associated with logical entities that control them in various ways. Nodes may include different types, such as a client or submitting-client node which submits a transaction-invocation to an endorser (e.g., peer), and broadcasts transaction-proposals to an ordering service (e.g., ordering node). Another type of node is a peer node which can receive client submitted transactions, commit the transactions and maintain a state and a copy of the ledger of blockchain transactions. Peers can also have the role of an endorser, although it is not a requirement. An ordering-service-node or orderer is a node running the communication service for all nodes, and which implements a delivery guarantee, such as a broadcast to each of the peer nodes in the system when committing transactions and modifying a world state of the blockchain, which is another name for the initial blockchain transaction which normally includes control and setup information.

A chain is a transaction log which is structured as hash-linked blocks, and each block contains a sequence of N transactions where N is equal to or greater than one. The block header includes a hash of the block's transactions, as well as a hash of the prior block's header. In this way, all transactions on the ledger may be sequenced and cryptographically linked together. Accordingly, it is not possible to tamper with the ledger data without breaking the hash links. A hash of a most recently added blockchain block represents every transaction on the chain that has come before it, making it possible to ensure that all peer nodes are in a consistent and trusted state. The chain may be stored on a peer node file system (i.e., local, attached storage, cloud, etc.), efficiently supporting the append-only nature of the blockchain workload.

The current state of the immutable ledger represents the latest values for all keys that are included in the chain transaction log. Because the current state represents the latest key values known to a channel, it is sometimes referred to as a world state. Chaincode invocations execute transactions against the current state data of the ledger. To make these chaincode interactions efficient, the latest values of the keys may be stored in a state database. The state database may be simply an indexed view into the chain's transaction log, it can therefore be regenerated from the chain at any time. The state database may automatically be recovered (or generated if needed) upon peer node startup, and before transactions are accepted.

FIG. 1illustrates a network diagram of a set of mining pools for a blockchain network according to example embodiments. Referring toFIG. 1, the network100includes a plurality of mining pools110A,110B,110C. Each mining pool has a pool of computational resources for processing blocks of a blockchain network. The mining pools may be based on a number of computing types including, without limitation, central processing units (CPUs), graphics processor units (GPUs) as shown, application specific integrated circuits (ASICs) or other technologies as may be known in the art. Each computing component will have an individual hash rate, i.e. a rate at which the component is able to perform cryptographic hashes in search of the cryptographic hash for a block. The mining pool will thus have a mining pool hash rate dependent on the amount of computing power within the mining pool and the network100will have an overall hash rate based on the aggregate of hash rates of all the mining pools110A,110B,110C within the network. The rate at which a new block is solved, or mined, will dependent on the overall hash rate of the network and the “difficulty” in mining the new block. The difficulty is a dynamic parameter that can be adjusted to control the overall rate at which new blocks are mined.

Each mining pool110A,110B,110C may maintain its own memory pool of queued and unconfirmed transactions112A,112B,112C that are the candidate transactions to be used in the next block that is mined by that pool. For example, the memory pool112A of mining pool110A is shown as having transactions Tx_1, Tx_2etc. A client, e.g. account owner, may submit a transaction to the network. The client may submit the transaction universally, i.e. to all mining pools, or to selected mining pools. The client may have negotiated a special relationship with a particular mining pool and therefore may submit the transaction to that mining pool uniquely.

The network100includes a special relationships detection service140. The special relations detection service140may include one or more processors and operatively associated memories. The memories may store application code that can be executed by the processors. The application code may include code for processing a number of inputs, applying one or more calculations to the inputs, and producing an output that indicates special relationship information.

The special relationship detection service140may be configured to read the memory pools112A,112B,112C of each mining pool110A,110B,110C. The service140may also engage an address-entity matching service144that uses various techniques, including web-scraping methods148to determine the actual entity involved in a particular transaction. The address-entity matching service may produce a table that matches addresses to entity identities.

FIG. 2Aillustrates a blockchain architecture configuration200, according to example embodiments. Referring toFIG. 2A, the blockchain architecture200may include certain blockchain elements, for example, a group of blockchain nodes202. The blockchain nodes202may include one or more nodes204-210. (4 nodes are depicted by example only). These nodes participate in a number of activities, such as blockchain transaction addition and validation process (consensus). One or more of the blockchain nodes204-210may endorse transactions and may provide an ordering service for all blockchain nodes in the architecture200. A blockchain node may initiate a blockchain authentication and seek to write to a blockchain immutable ledger stored in blockchain layer216, a copy of which may also be stored on the underpinning physical infrastructure214. The blockchain configuration may include one or applications224which are linked to application programming interfaces (APIs)222to access and execute stored program/application code220(e.g., chaincode, smart contracts, etc.) which can be created according to a customized configuration sought by participants and can maintain their own state, control their own assets, and receive external information. This can be deployed as a transaction and installed, via appending to the distributed ledger, on all blockchain nodes204-210.

The blockchain base or platform212may include various layers of blockchain data, services (e.g., cryptographic trust services, virtual execution environment, etc.), and underpinning physical computer infrastructure that may be used to receive and store new transactions and provide access to auditors which are seeking to access data entries. The blockchain layer216may expose an interface that provides access to the virtual execution environment necessary to process the program code and engage the physical infrastructure214. Cryptographic trust services218may be used to verify transactions such as asset exchange transactions and keep information private.

The blockchain architecture configuration ofFIG. 2Amay process and execute program/application code220via one or more interfaces exposed, and services provided, by blockchain platform212. The code220may control blockchain assets. For example, the code220can store and transfer data, and may be executed by nodes204-210in the form of a smart contract and associated chaincode with conditions or other code elements subject to its execution. As a non-limiting example, smart contracts may be created to execute reminders, updates, and/or other notifications subject to the changes, updates, etc. The smart contracts can themselves be used to identify rules associated with authorization and access requirements and usage of the ledger. For example, transaction information226include the transaction parties may be processed by one or more processing entities (e.g., virtual machines) included in the blockchain layer216. The result228may include confirmed transaction information. The physical infrastructure214may be utilized to retrieve any of the data or information described herein.

A chaincode may include the code interpretation of a smart contract, with additional features. As described herein, the chaincode may be program code deployed on a computing network, where it is executed and validated by chain validators together during a consensus process. The chaincode receives a hash and retrieves from the blockchain a hash associated with the data template created by use of a previously stored feature extractor. If the hashes of the hash identifier and the hash created from the stored identifier template data match, then the chaincode sends an authorization key to the requested service. The chaincode may write to the blockchain data associated with the cryptographic details. InFIG. 2A, a node such as the special relationships detection service may request transaction data, including pending transaction data from the memory pool of a mining pool. One function may be to receive the request and to provide the transactions of the last B blocks of the blockchain to enable the committed transactions from those blocks to be ascertained, the information may be provided to one or more of the nodes204-210and/or the special relationships detection service.

FIG. 2Billustrates an example of a transactional flow250between nodes of the blockchain in accordance with an example embodiment. Referring toFIG. 2B, the transaction flow may include a transaction proposal291sent by an application client node260to an endorsing peer node281. The endorsing peer281may verify the client signature and execute a chaincode function to initiate the transaction. The output may include the chaincode results, a set of key/value versions that were read in the chaincode (read set), and the set of keys/values that were written in chaincode (write set). The proposal response292is sent back to the client260along with an endorsement signature, if approved. The client260assembles the endorsements into a transaction payload293and broadcasts it to an ordering service node284. The ordering service node284then delivers ordered transactions as blocks to all peers281-283on a channel. Before committal to the blockchain, each peer281-283may validate the transaction. For example, the peers may check the endorsement policy to ensure that the correct allotment of the specified peers have signed the results and authenticated the signatures against the transaction payload293.

Referring again toFIG. 2B, the client node260initiates the transaction291by constructing and sending a request to the peer node281, which is an endorser. The client260may include an application leveraging a supported software development kit (SDK), such as NODE, JAVA, PYTHON, and the like, which utilizes an available API to generate a transaction proposal. The proposal is a request to invoke a chaincode function so that data can be read and/or written to the ledger (i.e., write new key value pairs for the assets). The SDK may serve as a shim to package the transaction proposal into a properly architected format (e.g., protocol buffer over a remote procedure call (RPC)) and take the client's cryptographic credentials to produce a unique signature for the transaction proposal.

In response, the endorsing peer node281may verify (a) that the transaction proposal is well formed, (b) the transaction has not been submitted already in the past (replay-attack protection), (c) the signature is valid, and (d) that the submitter (client260, in the example) is properly authorized to perform the proposed operation on that channel. The endorsing peer node281may take the transaction proposal inputs as arguments to the invoked chaincode function. The chaincode is then executed against a current state database to produce transaction results including a response value, read set, and write set. However, no updates are made to the ledger at this point. In292, the set of values, along with the endorsing peer node's281signature is passed back as a proposal response292to the SDK of the client260which parses the payload for the application to consume.

In response, the application of the client260inspects/verifies the endorsing peers signatures and compares the proposal responses to determine if the proposal response is the same. If the chaincode only queried the ledger, the application would inspect the query response and would typically not submit the transaction to the ordering node service284. If the client application intends to submit the transaction to the ordering node service284to update the ledger, the application determines if the specified endorsement policy has been fulfilled before submitting (i.e., did all peer nodes necessary for the transaction endorse the transaction). Here, the client may include only one of multiple parties to the transaction. In this case, each client may have their own endorsing node, and each endorsing node will need to endorse the transaction. The architecture is such that even if an application selects not to inspect responses or otherwise forwards an unendorsed transaction, the endorsement policy will still be enforced by peers and upheld at the commit validation phase.

After successful inspection, in step293the client260assembles endorsements into a transaction and broadcasts the transaction proposal and response within a transaction message to the ordering node284. The transaction may contain the read/write sets, the endorsing peers signatures and a channel ID. The ordering node284does not need to inspect the entire content of a transaction in order to perform its operation, instead the ordering node284may simply receive transactions from all channels in the network, order them chronologically by channel, and create blocks of transactions per channel.

The blocks of the transaction are delivered from the ordering node284to all peer nodes281-283on the channel. The transactions294within the block are validated to ensure any endorsement policy is fulfilled and to ensure that there have been no changes to ledger state for read set variables since the read set was generated by the transaction execution. Transactions in the block are tagged as being valid or invalid. Furthermore, in step295each peer node281-283appends the block to the channel's chain, and for each valid transaction the write sets are committed to current state database. An event is emitted, to notify the client application that the transaction (invocation) has been immutably appended to the chain, as well as to notify whether the transaction was validated or invalidated.

FIG. 3illustrates an example of a permissioned blockchain network300, which features a distributed, decentralized peer-to-peer architecture, and a certificate authority318managing user roles and permissions. In this example, the blockchain user302may submit a transaction to the permissioned blockchain network310. In this example, the transaction can be a deploy, invoke or query, and may be issued through a client-side application leveraging an SDK, directly through a REST API, or the like. Trusted business networks may provide access to regulator systems314, such as auditors (the Securities and Exchange Commission in a U.S. equities market, for example). Meanwhile, a blockchain network operator system of nodes308manage member permissions, such as enrolling the regulator system310as an “auditor” and the blockchain user302as a “client.” An auditor could be restricted only to querying the ledger whereas a client could be authorized to deploy, invoke, and query certain types of chaincode.

A blockchain developer system316writes chaincode and client-side applications. The blockchain developer system316can deploy chaincode directly to the network through a REST interface. To include credentials from a traditional data source330in chaincode, the developer system316could use an out-of-band connection to access the data. In this example, the blockchain user302connects to the network through a peer node312. Before proceeding with any transactions, the peer node312retrieves the user's enrollment and transaction certificates from the certificate authority318. In some cases, blockchain users must possess these digital certificates in order to transact on the permissioned blockchain network310. Meanwhile, a user attempting to drive chaincode may be required to verify their credentials on the traditional data source330. To confirm the user's authorization, chaincode can use an out-of-band connection to this data through a traditional processing platform320.

FIG. 4illustrates a flow diagram400of an example method of detecting a special relationship(s) in a blockchain, according to example embodiments. For any flowchart shown herein, the process flow will depict a particular order to the steps. The order depicted is not considered to be essential or limiting, and the order of steps may be different in different embodiments. For example, two distinct steps may determine two inputs for a third step. It may not be essential in which order the two input determining steps are performed.

At step401, the transactions of a plurality of blocks of a blockchain of the blockchain network are processed to determine the user account of the respective transaction and the mining pool that included the transaction in the blockchain. A statistical analysis is then performed on the transactions to determine if the transactions of a user of the plurality of users is distributed across the mining pools in a statistically expected manner (step402). If the transactions of the user are not distributed across the mining pools in a statistically expected manner, then it may be determined that the user has a special relationship with one or more of the mining pools (step403).

The flowchart400ofFIG. 4outlines a methodology in which it is assumed that if all mining pools play fairly for all users, the distribution of any user's verified transactions among pools should be in proportion to the pools' hash power share. An abnormal relationship can be detected if the expected relationship does not hold true. A specific embodiment of the method is depicted in flowchart500inFIG. 5. At step501, the Special Relationship Detection Service140collects all transactions from newly created B blocks. The number of blocks utilized may be based on a number, e.g. the last 100 blocks, or a time, e.g. the last 48 hours. The specific number (or time period) of blocks B to be used in the calculation is not considered essential to the broadest embodiments. It is assumed that the last B blocks contain n such transactions. The transactions may be obtained by sending a smartcontract request to inspect the ledger.

At step502, the number of transactions in blocks created by mining pool i is counted. The number is denoted ni.

At step503, each mining pool's hash power share siis estimated. If there are N mining pools, then the probability of any pool creating a block is proportional to the hash power share of that pool. In one embodiment, the hash power may be calculated for each mining pool (s1, s2. . . , sN) as a maximum likelihood estimator. If the total number of transactions in the blocks under analysis is n, and out of the n there are nitransactions included by blocks found by pool i, then the hash power share for mining pool i may be expressed as:
Ŝi=ni/n.

At step504, the transactions m from newly created blocks that belong to user j is determined, which may be denoted as mj.

At step505, the number of transactions that belong to user j in blocks created by mining pool i is counted, which may be denoted as mji.

From these inputs, a statistical analysis is performed to determine if a particular user's transactions are distributed across the mining pools in a manner that is within expectations (step506).

In one embodiment, the statistical analysis includes comparing a statistical calculation to a null hypothesis. The null hypothesis, H0may be that user j has no special relationship with any pool. Under such a hypothesis, it could be expected that the transactions for user mjwould be spread across the mining pools i in direct proportion to the mining pools' share of the overall hash rate. A Pearson's Chi-squared test for each user j may be calculated as follows:

χ2=∑i=1N⁢(mji-mj⁢s^i)2mi⁢s^i,
where N is the number of mining pools. The X2values can be converted to statistical p-values using a quantile function for a system with N−1 degrees of freedom to reveal a p-value for user j: pj.

The value pjrepresents the probability that the observed distribution of user transactions amongst the mining pools matches the null hypothesis, i.e. the transactions are distributed in proportion to the mining pool's share of the overall hash rate. Values of pjbelow a particular level may be indicative of a special relationship between a user and a mining pool. In one embodiment, a special relationship may be indicated for pjvalues less than approximately 0.05.

The special relationship may be a preferred relationship in which a user's transactions are included in a particular mining pool at a higher rate than expected for that mining pool's hash rate. The special relationship may alternatively be a prejudicial relationship in which a user's transactions are included in a particular mining pool at a lower rate than expected for that mining pool's hash rate.

Optionally, an allowance for false detection may be performed (step507). The false detection may be based on the Benjamin-Hochberg procedure. For a given false detection rate (FDR) level a, for total K users, their P-values are sorted in ascending order to {p(1), p(2). . . , p(K)} to find the largest k such that:

Users having p-values smaller than p(k)are identified as abnormal users. Example values for α may be 0.05, 0.01, though other values may be used.

Once the statistical analysis has revealed a user to have an abnormal transaction distribution, further analysis for that user can be undertaken to determine the relevant mining pool. For each user k that is deemed an abnormal user, the highest/lowest value of mki/Ŝican be used to determine the mining pool i with which the user k has the special relationship. The k-i pair is thus identified as the special user-pool relationship.

The statistical analysis above may uncover specific users that have special relationships with mining pools. However, the user, which may be identified by address in the transaction, may have insufficient information to properly reveal the user. The special relationship detection service140may receive additional inputs that enable the service140to properly identify the user. In one embodiment, a web scraping service148may scrape various digital information sources include forums, social media, messaging platforms, etc. This information may include content that states both a blockchain network address as well as information that can be used to determine the entity identity, such as user names, weblinks, references etc. From this content, the web scraping service148generates an address-entity matching table144so that the true entity—pool relationship can be determined.

The special relationship detection service140may execute across the entire blockchain, i.e. for all users and all mining pools. Alternatively, the special relationship detection service may target a particular mining pool or a particular user.

The special relationship detection service140may be implemented in one or more nodes of the blockchain network or may be a standalone node that is able to transact with the nodes of the blockchain network to receive the various inputs discussed above that are used in the statistical analysis algorithms. The special relationship detection service140may be a computing node of the blockchain network such as the computer node700shown inFIG. 7and described in more detail below. The service140may include at least one processor and at least one memory that is operatively associated with the at least one processor. The memory may include memory for storing data, executable code, statistical algorithms, the address-entity identity table, etc. as well as random access memory for use in the processor operations. The application code may include instruction sets (chaincode) for forming queries to the blockchain for retrieving the blockchain transactions. The service may include a communications module for providing the queries to other blockchain nodes, data sources, etc. and for receiving the returned query responses. The application code may further include instructions sets for processing the transaction data, applying the statistical analysis algorithms, and determining the special relationship data.

In the embodiments described herein, the special relationship detection service140queries the ledger and the last B blocks contained in the ledger. In an alternative embodiment, the service140may also submit a query to one or more memory pools112A,112B,112C to retrieve the uncommitted or pending transactions contained in the respective memory pool. One or more of the mining pools may make all the uncommitted transactions that are under consideration to be processed visible publicly. Uncommitted transactions will not be included in the statistical analysis but the transactions in the memory pools can be used to indicate a potential special relationship. For example, committed transactions may be compared with uncommitted transactions (whose timestamps are earlier or similar to transactions in the latest block) in the memory pools. If committed transactions have lower transaction fees, then the submitters of those transactions could be suspected to have abnormal relationship with certain pools. These submitters should therefore be included in statistical tests.

FIG. 6Aillustrates an example physical infrastructure configured to perform various operations on the blockchain in accordance with one or more of the example methods of operation according to example embodiments. Referring toFIG. 6A, the example configuration600includes a physical infrastructure610with a blockchain620and a smart contract640, which may execute any of the operational steps612included in any of the example embodiments. The steps/operations612may include one or more of the steps described or depicted in one or more flow diagrams and/or logic diagrams. The steps may represent output or written information that is written or read from one or more smart contracts640and/or blockchains620that reside on the physical infrastructure610of a computer system configuration. The data can be output from an executed smart contract640and/or blockchain620. The physical infrastructure610may include one or more computers, servers, processors, memories, and/or wireless communication devices.

FIG. 6Billustrates an example smart contract configuration among contracting parties and a mediating server configured to enforce the smart contract terms on the blockchain according to example embodiments. Referring toFIG. 6B, the configuration650may represent a communication session, an asset transfer session or a process or procedure that is driven by a smart contract640which explicitly identifies one or more user devices652and/or656. The execution, operations and results of the smart contract execution may be managed by a server654. Content of the smart contract640may require digital signatures by one or more of the entities652and656which are parties to the smart contract transaction. The results of the smart contract execution may be written to a blockchain as a blockchain transaction.

FIG. 7is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the application described herein. Regardless, the computing node700is capable of being implemented and/or performing any of the functionality set forth hereinabove.

As shown inFIG. 7, computer system/server702in cloud computing node700is shown in the form of a general-purpose computing device. The components of computer system/server702may include, but are not limited to, one or more processors or processing units704, a system memory706, and a bus that couples various system components including system memory706to processor704.

Program/utility716, having a set (at least one) of program modules718, may be stored in memory706by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules718generally carry out the functions and/or methodologies of various embodiments of the application as described herein.

Computer system/server702may also communicate with one or more external devices720such as a keyboard, a pointing device, a display722, etc.; one or more devices that enable a user to interact with computer system/server702; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server702to communicate with one or more other computing devices. Such communication can occur via I/O interfaces724. Still yet, computer system/server702can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter726. As depicted, network adapter726communicates with the other components of computer system/server702via a bus. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server702. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.