Blockchain-implemented methods and systems for authorisation based on bilinear map accumulators
The invention relates to distributed ledger technologies such as consensus-based blockchains. Computer-implemented methods for locking and unlocking transaction inputs and outputs are described. The invention is implemented using a blockchain network, which may be, for example, a Bitcoin blockchain. A group of entities form a group in with membership may be proven using an accumulation tree. A variety of methods are described for generating the accumulation tree, including methods that use a central authority and methods that use a decentralized protocol in place of the central authority. In various implementations, parties are able to unlock transaction outputs that are based on group membership without revealing their identity generally.
1. A computer-implemented method comprising:
generating a digest of an accumulation tree, each element of the accumulation tree representing a computer system in a set of computer systems;
generating a record for insertion into a distributed data structure, the record containing authorization information that is based at least in part on the digest; and
causing the record to be inserted into the distributed data structure; wherein
a subset of the set of computer systems share information of the subset with other members of the subset so that members of the subset are able to determine a local digest for the subset;
computer systems that are in the set of computer systems and not in the subset are not provided with the shared information and are unable to determine the local digest;
membership in set of computer systems is determined via an authoritative computer system; and
the authoritative computer system establishes, amongst the set of computer systems, a shared set of parameters associated with the accumulation tree, wherein:
a set of tree parameters are negotiated amongst the set of computer systems, the set of tree parameters including a tree depth and a number of child nodes per intermediate node; and
the accumulation tree is constructed in accordance with the set of tree parameters.
2. The computer-implemented method claimed in claim 1 , wherein:
the record includes a locking script; and
the authorization information identifies a hash of a local digest of the accumulation tree.
3. The computer-implemented method claimed in claim 2 , wherein:
the record includes an unlocking script; and
the authorization information identifies a number derived from the local digest represented by a point on an elliptic curve.
4. The computer-implemented method claimed in claim 1 , wherein:
the record includes an unlocking script; and
the authorization information identifies a number derived from a global digest represented by a point on an elliptic curve.
5. The computer-implemented method claimed in claim 1 , wherein a structure of the accumulation tree is determined based at least in part on an organisational structure associated with the set of computer systems.
6. The computer-implemented method claimed in claim 1 , wherein the set of computer systems share information with each other that allows each computer system to reconstruct a common secret and a global digest of the accumulation tree.
7. The computer-implemented method claimed in claim 1 , wherein the computer systems that are in the set of computer systems and not in the subset are provided with a hash of a local digest of a parent node of the subset of the set of computer systems.
8. The computer-implemented method claimed in claim 1 , further comprising generating a witness that, in combination with the digest, proves membership in the set of computer systems.
9. The computer-implemented method claimed in claim 1 , wherein each computer system in the set of computer systems shares a hash of a credential of the computer system with the other members of the set so that each member of the set is able to determine a global digest of the accumulation tree.
10. The computer-implemented method claimed in claim 1 , wherein:
the distributed data structure is a blockchain; and
the record is a Bitcoin transaction record.
11. A system, comprising:
a processor; and
memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method of claim 1 .
12. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer, cause the computer to at least perform the computer-implemented method of claim 1 .
13. A system, comprising:
a processor; and
memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method of claim 2 .
14. A system, comprising:
a processor; and
memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method of claim 3 .
15. A system, comprising:
a processor; and
memory including executable instructions that, as a result of execution by the processor, cause the system to perform the computer-implemented method of claim 4 .
16. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer, cause the computer to at least perform the computer-implemented method of claim 2 .
17. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer, cause the computer to at least perform the computer-implemented method of claim 3 .