(for Tech WP)

What is ADKG?

Asynchronous Distributed Key Generation (ADKG) is a building block for any decentralized protocol that allows a set of mutually non-trusting nodes to jointly generate a public/private key pair.

This key pair is used to bootstrap cryptosystems without a trusted third party.

Screen Shot 2022-11-11 at 10.06.11 PM.png

How is ADKG better?

Earlier, the Arcana Network protocol used DKG with a trusted dealer mechanism which had its shortcomings such as:

The new ADKG implementation is more robust than Arcana Network’s previous DKG implementation as it does not involve any trusted dealer or a third party.

Also, unlike the other synchronous DKG protocol models, ADKG protocol is immune to any underlying synchronous network assumptions. By asynchronous network, we mean a network where the presence of a malicious adversary can corrupt a threshold of nodes and delay message sharing but must eventually deliver all messages sent between honest nodes.

Assumptions

The ADKG protocol works under the assumption that in an asynchronous network of n ≥ 3t + 1 nodes, where at most t nodes could be malicious.

The protocol can achieve an expected communication cost of O(κn$^3$ ) and terminates in expected O(log n) rounds. Here κ is the security parameter. For example, if a collision-resistant hash function is used, in that case, κ denotes the size of the hash function's output.

How ADKG works?

ADKG requires a set of at least 4 connected nodes at a minimum for accommodating a maximum of 1 malicious node.

At a very high level, the protocol requires each node to independently generate secrets and then share a part of that secret with the other nodes. Each node then shares a proposed set of key shares with other nodes. Asynchronous Binary Agreement (ABA) voting is done by the nodes for each proposed set. Only the accepted and agreed-upon set is used to derive the key shares and then those key shares are combined to arrive at the final key pair. None of the nodes have full access to the secret key.

Let’s take a closer look at each of these 4 key phases in the ADKG protocol:

  1. Asynchronous Complete Secret Sharing (ACSS)
  2. Keyset Proposal Broadcast Phase