This invention relates generally to cryptographically-enforced data recording and processing systems. In particular, the invention relates to a technical solution for communicating, recording and/or storing data provided to the system by an entity via or over a blockchain network. The data may be indicative of, for example, a selection, choice, feedback and/or decision. The invention provides techniques for secure storage and communication of such data between entities over the blockchain network, and ensures the integrity of the data that is transferred and used post-transfer. It also alleviates issues relating to identification of the source of such data on a network, to prevent authorised activity. The invention is suited for, (but not limited to) voting, electronic feedback submission, or counting applications, or other applications where data integrity, source concealment and enforcement of usage quotas or limits may be of importance.

In this document we use the term ‘blockchain’ to include all forms of electronic, computer-based, distributed ledgers. These include, but are not limited to blockchain and transaction-chain technologies, permissioned and un-permissioned 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 may be referred to herein for the purpose of convenience and illustration, it should be noted that the invention is not limited to use with the Bitcoin blockchain and alternative blockchain implementations and protocols fall within the scope of the present invention.

A blockchain is a consensus-based, electronic ledger which is implemented as a computer-based decentralised, distributed system made up of blocks which in turn are made up of transactions. Each transaction is a data structure that encodes the transfer of control of a digital asset between participants in the blockchain system, and includes at least one input and at least one output. Each block contains a hash of the previous block to that blocks become chained together to create a permanent, unalterable record of all transactions which have been written to the blockchain since its inception. Transactions contain small programs known as scripts embedded into their inputs and outputs, which specify how and by whom the outputs of the transactions can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language.

In order for a transaction to be written to the blockchain, it must be “validated”. Network nodes (miners) perform work to ensure that each transaction is valid, with invalid transactions rejected from the network. Software clients installed on the nodes perform this validation work on an unspent transaction (UTXO) by executing its locking and unlocking scripts. If execution of the locking and unlocking scripts evaluate to TRUE, the transaction is valid and the transaction is written to the blockchain. Thus, in order for a transaction to be written to the blockchain, it must be (i) validated by the first node that receives the transaction—if the transaction is validated, the node relays it to the other nodes in the network; (ii) added to a new block built by a miner; and (iii) mined, i.e. added to the public ledger of past transactions. Once recorded, the data in any given block cannot be altered retroactively without altering all subsequent blocks and a collusion of the network majority.

Transactions involve the transfer of one or more tokens from one node to another node. Tokens may represent future control of network resources. In some cases, the tokens may represent an asset or value, but not necessarily. For example, in some cases, the tokens may be understood as a cryptocurrency. However, the present application is not limited to implementations in the context of cryptocurrency and is more broadly understood as relating to blockchain networks for distributed transfer of control tokens.

A blockchain serves as a public ledger that can record transactions between parties in a verifiable and permanent way. Blockchains possess numerous properties, such as irrevocability of information stored on-chain and trust established through decentralized consensus, which make them suitable for use in various applications. One such application is electronic voting. It should be noted that the term “voting system” is not limited herein to political or administrative contexts, but is used in a generic sense to simply mean a system which enables a selection, choice, decision or parameter (i.e. a vote) to be transferred, recorded, stored, processed and/or registered in some way. Thus, the invention relates to improved communication, storage and security of data between entities.

Many types of computer-implemented systems need to enable an indication of a choice/decision, or other data, to be communicated across a network, so that the data can be acted upon or processed in some way. In many cases, it is desirable to be able to enforce certain rules or criteria relating to the number of times that a selection can be made. In other words, there may be a quota or limit to the number of times a selection or choice can be made. For the sake of convenience and ease of reference only, we may refer to such a system as an “e-voting” system but this should not be construed as limiting the invention to political or administrative contexts. Alternatively, the term “data recording system” may be used to reflect the wider applicability of the invention. The invention is not limited with regard to the type or nature of data received, recorded and stored.

A secure and reliable system for e-voting should prevent vote manipulation while preserving voter privacy (a cast vote should not be known to any participant other than the voter) and correctness of submitted ballots (invalid or unauthorized ballots should be excluded, while valid votes should count toward the final tally). Blockchains may also find practical application as platforms for recording and publishing author-originating data and information, such as feedback, opinions, reviews and evaluations. Feedback, in the form of, for example, numerical ratings or reviews, can influence consumer trust in products, services, and marketplaces. As a consequence, there may be incentives for submitting positive/negative feedback to try to manipulate audience or market perceptions. A blockchain may provide an appropriate environment for deterring vote and feedback manipulation (e.g. modification, deletion, etc.), by allowing votes/feedback to be recorded publicly and permanently on an open, distributed ledger, without reliance on a central authority to validate the votes/feedback.

While the potential for deploying voting/feedback platforms using blockchains is attractive, numerous other issues, such as prevention of multiple ballot submissions, credential checking, and preservation of user privacy, remain to be addressed. In particular, preserving voter/reviewer privacy may require anonymization in the vote/feedback submission process. While blockchain technologies, such as Bitcoin, may provide pseudo-anonymity of transactions, it is possible, using secondary data (e.g. a shipping address required to complete a transaction) and analytics, for interested third parties to combine publicly available information to associate the identities of users to specific Bitcoin addresses. Without appropriate precautions, data (e.g. votes, selections, decisions, feedback, etc.) that is submitted and recorded on the blockchain may be traceable to their source. A lack of anonymity may, in turn, adversely affect the integrity of a data submission process. In other applications, too, it is often desirable to hide or conceal the source of the data received by the system as this can give rise to targeting of the source. Security can be enhanced by removing traceability of the source of the data.

Thus, it is desirable to provide improved methods and devices for facilitating privacy-preserving submissions of data across a computer-implemented network. Such an improved solution has now been devised.

In accordance with the present invention there are provided methods and devices as defined in the appended claims.

The invention may provide a computer-implemented method and corresponding system. The method/system may be described as a blockchain-implemented method/system. The invention may be described as a security method or cryptographic method/system, or cryptographically-enforced method/system. It may provide for the secure transfer of a digital asset (or “resource”) such as a portion or quantity of cryptocurrency. Additionally or alternatively, it may provide a control mechanism for controlling the transfer of a digital asset such as a portion or quantity of cryptocurrency.

Additionally or alternatively, the present application may describe a computer-implemented method for submitting data from an entity to a blockchain. The data may be any type of data, including (but not limited to) feedback, decisions, selections (“votes”) or reviews. Additionally or alternatively the invention may be described as a data transfer method. It may be arranged to enable transfer of data from an entity to a blockchain.

The method may be implemented at one of a plurality of (participating) nodes. These may be nodes that are arranged to participate in a process for submitting and/or verifying data (e.g. feedback) in accordance with the various techniques described herein. The method may include: obtaining a first key, the first key being one of a fixed set of keys distributed to participating nodes that are eligible to submit data for the entity; generating first data (rj) for the entity for submission to the blockchain; encrypting the first data (rj) using at least the first key; and submitting the encrypted first data to a mixing service, the mixing service being configured to generate a mixed transaction based on the encrypted first data and at least one other encrypted data submission from one or more eligible participating nodes.

In some implementations, the first key may be a first key share (kj) of a private key (k), the first key share (kj) being one of a plurality of key shares that are distributed to eligible participating nodes and that are used for collaboratively constructing the private key (k)

In some implementations, the first data (rj) may be encrypted using the first key share (kj) and a public key (PkCi) associated with the entity.

In some implementations, the method may further include: encrypting the first key share (kj) using the public key (PkCi) associated with the entity; collaborating with other eligible participating nodes to generate a secret (kG) using the first key share (kj); and providing the encrypted first key share (kj) and the generated secret (kG) to an entity node associated with the entity for use in verifying the validity of the first key share (kj).

In some implementations, the secret (kG) may be collaboratively generated based on a secret share joining process.

In some implementations, the first data (rj) may comprise an alphanumeric string.

In some implementations, the first data (rj) may comprise a concatenation of a review string and a second string containing at least a portion of a public key (PkCi) associated with the entity.

In some implementations, the first data (rj) may further include a third string identifying a service provided by the entity.

In some implementations, obtaining the first key may comprise receiving the first key share (kj) from the entity.

In some implementations, the first key share may be received from the entity in response to a transfer of tokens to an entity node associated with the entity for a service rendered by the entity.

In some implementations, the first data (rj) may be encrypted using an exclusive- or encryption.

In some implementations, the first key (ki) may be a first public key (PkCij) associated with the entity, the first public key (PkCij) being one of a first set of node-specific public keys that are generated by the entity and that are distributed to eligible participating nodes, each of the public keys in the first set having a corresponding private key that is retained by the entity.

In some implementations, the mixed transaction may specify a first quantity of tokens to transfer to the entity, the first quantity depending on a number of encrypted data submissions for the entity that are included as inputs in the mixed transaction.

The present application further describes a computing device for performing the described methods, where the computing device is one of a plurality of participating nodes and includes at least one processor, memory, a network interface to provide network connectivity, and a blockchain application containing processor-executable instructions that, when executed, cause the processor to carry out the operations of one or more of the methods described herein.

The present application further describes a non-transitory processor-readable medium storing processor-executable instructions to participate in a process for submitting feedback for an entity to a blockchain, where the processor-executable instructions, when executed by a processor in one of a plurality of participating nodes, cause the processor to carry out the operations of one or more of the methods described herein.

The present application describes systems and methods which facilitate secure, cryptographically enforced and efficient implementation of schemes for encrypting, validating, and broadcasting data items that are submitted by users to a blockchain. The users may, in some useful application, be participants in a voting or feedback platform. In some implementations, the present application provides protocols that are designed to prevent submissions of data from malicious actors. This can preserve the integrity and reliability of results which are produced by the system based on the received data.

