Author Topic: Order of witnesses signing blocks  (Read 1039 times)

0 Members and 1 Guest are viewing this topic.

Offline bytemaster

Not all nodes get the same latency metrics from the peers so latency data cannot be factored into consensus *UNLESS* a witness publishes / signs the latency values they see.
If a witness publishes / signs the values they see then they can fake the values they publish in order to control who they get paired with.

The reason witnesses are randomized is to prevent victimization of one witness by another.  Introducing these kinds of things into the protocol would de-randomize it and open up attack vectors.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline Bhuz

  • Committee member
  • Sr. Member
  • *
  • Posts: 467
    • View Profile
  • BitShares: bhuz

Offline Bhuz

  • Committee member
  • Sr. Member
  • *
  • Posts: 467
    • View Profile
  • BitShares: bhuz
Hi guys,
I have a question / idea...but not knowing exactly how the DPOS 2.0 protocol works, maybe this idea is based on wrong assumption and/or is not feaseble for implementation or security problems...you tell me :)

My assumption is that even if the order of witnesses signing blocks seems random, it really is deterministic, based on...previous hashes?... I don't know, but still, is deterministic.

At this point, could we change the way in which the order is determined?
Maybe the protocol should take into account the latency between witnesses?

It should knows all the latency from a witness to the others, for each witness, and then maybe with a modified version of Dijkstra algo (some kind of algo for shortest paths), it could find the best routing through all the witnesses.

This could lower the average latency between consecutive witnesses and so it could be easier to decrease the blocks interval (specially for 1 sec) without the necesity of increasing the bandwidth, and above all it should also decrease (kind of eliminate) the number of missing blocks due to:
1)high latency between very distance node
2)nodes with not so high bandwidth capacity

Since we anyway should aim to a good decentralization of witnesses around the world in different regions and continents, this approach could really keep the overall latency very low.
...or maybe not?!
« Last Edit: October 07, 2015, 01:12:29 pm by Bhuz »