Method and system of mining blockchain transactions provided by a validator node
Validator nodes and methods of operating a validator node to process blockchain transactions. The validator node provides a plurality of mining nodes with access to a set of unconfirmed transactions, typically by providing a hash of those transactions, in exchange for a token from each of the mining nodes. If one of the plurality of mining nodes successfully mines a block containing the set of unconfirmed transactions, the validator node refunds the token to that mining node and retains the remaining tokens. If a miner other than one of the plurality of mining nodes successfully mines a block before any of the plurality of mining nodes is able to mine a block containing the set of unconfirmed transactions, then the validator node transfers to each of the plurality of mining nodes a modified token.
1 . A method, implemented by a node in a blockchain network, the node including a processor for executing operations, the method comprising:
receiving or obtaining, by the node, an invitation from a validator node, the invitation offering a set of validated transactions for the node to use in building a block;
determining, by the node, whether to participate in mining the block;
determining, by the node, to participate in the mining of the block and generating a secret value;
responding to the invitation, by the node, wherein the response comprises an identifier for the node;
receiving, by the node, a deposit transaction, a claim transaction and a refund transaction;
signing, by the node, the deposit transaction, claim transaction and refund transaction;
returning, by the node, the signed deposit transaction, the signed claim transaction, and the signed refund transaction to the validator node;
receiving, by the node, the set of validated transactions from the validator node;
mining, by the node, the block using the set of validated transactions; and
propagating, by the node, the block or a header of the block to the validator node.
2 . The method of claim 1 , wherein the invitation specifies a deposit required and/or a validation fee payable in the event that no participating nodes are successful.
3 . The method of claim 1 , wherein the determination is based on at least one of:
an identity of the validator node;
a number of transactions offered;
transaction fees available for mining the set of validated transactions; and
verification of an authenticity of the validator node.
4 . The method of claim 1 , wherein the identifier comprises at least one of a node public key or a hash of the secret value.
5 . The method of claim 1 , wherein the node signs the transactions with its signature.
6 . The method of claim 1 , wherein the node signs an input to the deposit transaction providing its deposit value.
7 . The method of claim 1 , wherein the node signs an input to the claim transaction for spending an output from the deposit transaction.
8 . The method of claim 1 , wherein the node signs an input to the refund transaction for spending an output from the deposit transaction.
9 . The method of claim 1 , wherein the node abandons mining the block if it determines that another node has mined the block before it can mine the block.
10 . A non-transitory processor-readable medium storing processor-executable instructions, wherein the processor-executable instructions, when executed by a processor of a node, cause the processor to execute operations for a method, the method comprising:
receiving or obtaining an invitation from a validator node, the invitation offering a set of validated transactions for the node to use in building a block;
determining whether to participate in mining the block;
determining to participate in the mining of the block and generating a secret value;
responding to the invitation, wherein the response comprises an identifier for the node;
receiving a deposit transaction, a claim transaction and a refund transaction;
signing the deposit transaction, claim transaction and refund transaction;
returning the signed deposit transaction, the signed claim transaction, and the signed refund transaction to the validator node;
receiving the set of validated transactions from the validator node;
mining the block using the set of validated transactions; and
propagating the block or a header of the block to the validator node.