Skip to content

Commit

Permalink
Update consensus.rst
Browse files Browse the repository at this point in the history
  • Loading branch information
igoraxz committed Jun 3, 2019
1 parent 2f8f219 commit 5792dac
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion doc/consensus.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,30 @@
Consensus
=========

TODO
Papyrus Network is a distributed computing system, where network nodes has to agree on transactions, before they are included in the distributed ledger, to maintain synchronized copies of the ledger and avoid inappropriate transactions. How network nodes reach the agreement is determined by consensus protocol, deisgned with the goal to maintain system reliability in the presence of a number of faulty processes.

Assumptions used in Papyrus Network design

* Cost of network protocol manipulation should exceed potential benefit for an attacker;

* If total amount of value stored in the network is X, than cost of an attack on the network should be >X;

* Economy processes within the network is complemented with economy processes outside the network:

** poor behaviour of network node owned by some business entity, may be covered in the media and cause reputational damage to the entity's other businesses, leading to its financial losses;

** attack on the network by a group of network nodes will cause their removal from the network and possible hard fork, meaning that they will lose ability to receive mining rewards in the network;

* There are governance rules, initially established as constitutional for the network, which require agreement not only
between network nodes, but also between token holders, to change protocol;

* Technically collusion/agreement between minimum of >50% of active network nodes should be required to manipulate/change the protocol, but it is not enough to run a successful attack, as it will be detected and considered as constitution violation, if change was not approved by token holders according to established policy.

Keeping in mind these assumptions we developed a Proof-of-Authority consensus for Papyrus Network, which have the following features:

* Network nodes allowed to participate in consensus protocol for network transactions confirmation are called Authority Nodes;

* Amount of Authority Nodes is allowed to be in a range of 5 to 47 nodes, upper limit of 47 is chosen as reasonable to avoid excessive infrastructure cost, while keeping network security at high level;

* We use the same logic as in EIP225 ( https://eips.ethereum.org/EIPS/eip-225 ) Clique consensus to reach an agreement between Authority Nodes, but change the voting logic to elect Authority Nodes (see http://docs.papyrus.network/en/latest/doc/network_architecture.html for more details).

0 comments on commit 5792dac

Please sign in to comment.