A protocol proposal: DRNG-based distributed milestones

This is mainly here to serve as an example of a solution proposal.


  • Any TSA
  • Any mana mechanism
  • A DRNG process that outputs a RN to the network for each milestone.

Proposal description:

A tangle is built by nodes issuing and broadcasting transactions. A milestone must approve only a single un-approved milestone, that is at least s seconds old, and must not include more than t new transactions. Whenever a milestone is created, the RN assigned to it by the DRNG is used to order the set of nodes that were of the n top mana holders of any of the m latest milestones. (up to n*m nodes). Those nodes get weights 1, ½, ¼, ⅛, and so on. Each of those nodes can create a milestone, which will be assigned the node’s weight for that ‘round’. The consensus rule dictates that the weight of a tangle is the sum of the weights of its milestones.


The DRNG enables random leader election between high-mana nodes. In order to prevent a leader from halting the network by not issuing a milestone, secondary leaders are also set, with lesser weights to their milestones. The protocol-level rule of milestones only able to approve one previous milestones simplifies validation, heaviness-rule, and attack scenarios. The limit on amount of approved transactions and on time gap between milestones determine the required bandwidth.

This is a no-PoW, no-fee solution, that incentivizes high mana nodes to (cheaply) issue milestones in order to get their own transactions into consensus. The random ordering of high-mana nodes guarantees that no node can take over milestone issuance.

Optional modification:

  • A node’s past history of milestone issuance can be used along with mana value to prevent selfish-milestoning. (Punish nodes for issuing selfish or lazy milestones).
  • The ‘m’ value can be varied between 1 and higher values.

First order issues (“Can this work”):

  • Does such a DRNG process exist?
  • How is time measured?

Second order issues (“How well does this work”):

  • What kind of milestoning attacks are possible?
  • How does selfish milestoning affect the Tangle?

About this example:
This is basically to say - If the first order issues can be solved, this should be a viable solution, and then the second order issues should be explored to determine the capabilities and possible limitation of this solution.