Core architecture, components, protocol, and token-economics
ARPA BLS Threshold Signature Network (ARPA) is a decentralized (permission-less) network consisting of multiple, dynamic groups of nodes that can securely generate BLS threshold signatures. ARPA can serve as the infrastructure of many Blockchain applications such as verifiable random beacons, secure (keyless) wallets, cross-chain bridges, decentralized custody, etc.
Goals | Description |
---|---|
Decentralization | Eliminate the requirement for centralized authorities or single point of failure in nodes/groups management within the network. |
Control | Give entities, both human and non-human, the power to directly control the generation and usage of the BLS signature without the need to rely on external authorities. |
Security | Enable sufficient security for requesting parties to depend on the generated BLS signature for their required level of assurance |
Proof-based | Enable BLS signatures to provide cryptographic proof when used in their applications |
Discoverability | Make it possible for entities to discover the state of nodes and the network, to learn more about or interact with the nodes and the network |
Interoperability | Use interoperable standards so the ARPA infrastructure can make use of existing programming language, tools, and software libraries designed for interoperability |
Portability | Be platform- and network-independent and enable entities to run a node on any operating system with internet connection |
Simplicity | Favor a modular design where each module is simple to make the technology easier to understand, implement, and deploy |
Extensibility | Where possible, enable extensibility provided it does not greatly hinder interoperability, portability, or simplicity. |
ARPA network relies on a smart-contract-capable Blockchain to manage its dynamic global states. On a high level, these dynamic global states include node information, group information, and all BLS signature tasks.
This is achieved by implementing and deploying a single "controller" smart contract on a particular Blockchain. And each unregistered node directly interacts with the "controller" to register themselves into the ARPA network and discover the information needed to communicate with other registered nodes.
For higher throughput and better service availability, the nodes in the ARPA network are split into multiple groups to handle BLS signature tasks in parallel. The "controller" is also responsible for initiating the grouping of the nodes and storing the group information.
The grouping process is essentially a Distributed Key Generation process (DKG). A "coordinator" smart contract is implemented and deployed ad-hoc to coordinate a subset of nodes through the different phases of the DKG process, then submits the information of the new "group" to the "controller".
An "adapter" smart contract is implemented and deployed to each blockchain to provide BLS services for all smart-contract-capable Blockchains. The "adapter" acts as the APIs for other DApp clients to request BLS signatures.
The DApp client requests the BLS signature by calling the "adapter" APIs. The "adapter" assigns the BLS signature task to a specific group. Each grouped node monitors the BLS signature task event emitted by the "adapter" and starts a BLS signature task if it belongs to the assigned group, then submits the signature to the "adapter" upon completion. The "adapter" then returns the results to the caller DApps. A backup mechanism is also in place if the assigned group fails to fulfill the request within a reasonable time.
+------------------------------------+
| Blockchain (Smart Contract) |
+------------+-------------+---------+
| Controller | Coordinator | Adapter |
+------------+-------------+---------+
+------+ +------+ +------+ +------+ -+
| Node | | Node | | Node | | Node | |
+------+ +------+ +------+ +------+ |
| Node | | Node | | Node | | Node | +-- Group
+------+ +------+ +------+ +------+ |
| Node | | Node | | Node | | Node | |
+------+ +------+ +------+ +------+ -+
Figure A: A high-level architectural view; Please note that each group can have more than three nodes.
This section describes and defines the fundamental attributes of the ARPA network. It provides crucial information on what the network achieves and the general principles of how it works.
- To fulfill BLS threshold signature and randomness requests
- To manage nodes for joining and exiting the network
- To group nodes dynamically via the DKG process
- To maintain the global network states
- To sustain the token economics and handle rewards for the participating nodes
- To track the historical BLS signature tasks
- To verify any BLS signature task completed by the network
The ARPA network consists of many groups of nodes, and the groups are formed dynamically by the DKG process.
Nodes --> Groups --> ARPA Network
The major components of the ARPA network are:
- Node
- Controller
- Coordinator
- Adapter
Note that we do not consider the group an ARPA network component because it is a transient entity consisting of many nodes.
- Blockchain Event Listeners
- Listen to new block events
- Listen to recent DKG task events
- Listen to new randomness task events
- Context Cache
- Maintain the Blockchain information
- Maintain the DKG private key
- Maintain the DKG public key
- Maintain the networking information
- Track the unhandled events
- DKG Module
- Run DKG process
- Detect DKG phase
- BLS Module
- Sign partial signature
- Verify partial signature
- Aggregate partial signatures
- Verify signature
- Committer Module
- Commit the BLS signature result
- Manage network parameters & constraints
- Node token staking amount (50,000 ARPA)
- Node disqualification penalty amount (1,000 ARPA)
- DKG post-process reward amount (100 ARPA)
- Minimum signature threshold (3)
- Number of committers (3)
- Duration of each DKG phase (10 blocks)
- Maximum group capacity (10 nodes)
- Number of groups in an equilibrium stage
- Exit cool-down period (100 blocks)
- Emit DKG task events
- Handle node registrations
- Handle node activations
- Handle node exits
- Receive DKG result commits
- Handle DKG post processes
- Handle unresponsive-group reports
- Manage phases in each particular DKG process
- Manage DKG shares
- Manage DKG responses
- Manage DKG justifications
- Manage network parameters & constraints
- BLS signature task reward (50 ARPA)
- BLS signature commit reward (100 ARPA)
- BLS signature incorrect commit penalty (1,000 ARPA)
- BLS signature result challenge reward (300)
- BLS signature task time window (30 blocks)
- BLS signature failure limit (3)
- Emit BLS signature task events
- Handle reward claims
- Handle randomness requests
- Fulfill randomness requests
This section describes and defines the communication protocol between the nodes in the ARPA network.
This section defines the interface of interacting with the ARPA network.
This section describes the possible application of the ARPA network and the example SDKs for generating randomness via a BLS signature.
This section describes the methodology for testing the network and the test scenarios.
TODO: re-organize the words below
TODO: define each word
key expiration
Components are the network-level entities. Modules are the node-level entities.