Sybil-resistant identity generation
AssigneeVisa International Service Association
InventorsMahdi Zamani, Abhinav Aggarwal
Life of this patent
Estimating the term…
Abstract
A method is disclosed. A node in a plurality of nodes can perform an identity set generation process. The node can then determine a leader node. The node may diffuse an identity set from each node of the plurality of nodes to the plurality of nodes. The node can then determine a majority set including identities occurring in at least one half of the identity sets, wherein the leader node diffuses the majority set of the leader node to the plurality of nodes. The node can verify the majority set of the leader node. The node may then update the identity set based on the majority set of the leader node.
Claims20
A method generating an identity set comprising, the method comprising:
- generating, by a node, a public key, a private key, and a random challenge string;
- transmitting, by the node, the random challenge string to a plurality of nodes in a computing network, which includes the node, wherein each node in the plurality of nodes is a computing device and each node may not store data relating to a total number of nodes that will be in the computing network;
- receiving, by the node, a plurality of random challenge strings from the plurality of nodes;
- generating, by the node, a challenge set comprising the plurality of random challenge strings and the random challenge string;
- determining, by the node, a nonce that solves a proof of work;
- transmitting, by the node, a tuple comprising the public key, the nonce, a hash value from the proof of work, and the challenge set to the plurality of nodes;
- receiving, by the node, a plurality of tuples from the plurality of nodes;
- and
- verifying, by the node, the plurality of tuples, wherein when a tuple of the plurality of tuples is valid then storing a public key associated with the tuple in an identity set, and
- wherein each node in the plurality of nodes can verify each tuple that the node has received, and after each node verifies each tuple, can contain one identity for every non-malicious node in order to prevent a malicious node from performing a successful Sybil attack on the nodes in the computing network.
A node comprising:
- a processor;
- and
- a non-transitory computer readable medium, the non-transitory computer readable medium comprising code, executable by the processor, for performing a method comprising:
- generating, by the node, a public key, a private key, and a random challenge string;
- transmitting, by the node, the random challenge string to a plurality of nodes in a computing network, which includes the node, wherein each node in the plurality of nodes is a computing device and each node may not store data relating to a total number of nodes that will be in the computing network;
- receiving, by the node, a plurality of random challenge strings from the plurality of nodes;
- generating, by the node, a challenge set comprising the plurality of random challenge strings and the random challenge string;
- determining, by the node, a nonce that solves a proof of work;
- transmitting, by the node, a tuple comprising the public key, the nonce, a hash value from the proof of work, and the challenge set to the plurality of nodes;
- receiving, by the node, a plurality of tuples from the plurality of nodes;
- and
- verifying, by the node, the plurality of tuples, wherein if a tuple of the plurality of tuples is valid then storing a public key associated with the tuple in an identity set, and
- wherein each node in the plurality of nodes can verify each tuple that the node has received, and after each node verifies each tuple, can contain one identity for every non-malicious node in order to prevent a malicious node from performing a successful Sybil attack on the nodes in the computing network.
A system comprising:
- a node comprising
- a processor, and
- a non-transitory computer readable medium, the non-transitory computer readable medium comprising code, executable by the processor, for performing a method comprising
- generating, by the node, a public key, a private key, and a random challenge string,
- transmitting, by the node, the random challenge string to a plurality of nodes in a computing network, which includes the node, wherein each node in the plurality of nodes is a computing device and each node may not store data relating to a total number of nodes that will be in the computing network,
- receiving, by the node, a plurality of random challenge strings from the plurality of nodes,
- generating, by the node, a challenge set comprising the plurality of random challenge strings and the random challenge string,
- determining, by the node, a nonce that solves a proof of work,
- transmitting, by the node, a tuple comprising the public key, the nonce, a hash value from the proof of work, and the challenge set to the plurality of nodes,
- receiving, by the node, a plurality of tuples from the plurality of nodes, and
- verifying, by the node, the plurality of tuples, wherein when a tuple of the plurality of tuples is valid then storing a public key associated with the tuple in an identity set;
- and
- the plurality of nodes in communication with the node, and
- wherein each node in the plurality of nodes can verify each tuple that the node has received, and after each node verifies each tuple, can contain one identity for every non-malicious node in order to prevent a malicious node from performing a successful Sybil attack on the nodes in the computing network.
Dependencies are inferred from the claim text.