1.4.1.2 Proof of Worth - the bullet point summary.

This is the original concept for proof of worth, my custom designed consensus protocol for this project.

This is just a summary.

This is the original concept for proof of worth, my custom designed consensus protocol for this project. The point of this is not to be fully fleshed out and just shows the original planning for this protocol which will be elaborated on in later development cycles.

In order to create the proof of worth census that this blockchain will run on we need to first initialise the first Leader node, where a leader node is just any public accessible, static nodes that allow worker nodes to connect to them privately. Read about leader vs worker nodes in more detail further down this page.

  • Initial leader node is created.

  • New worker nodes send a request to the leader node to be put into the active worker nodes pool.

  • These worker nodes are added to the active worker nodes pool, with a predetermined constant "trust factor" (this represents their trustworthiness ) and because these worker nodes are attached to a wallet in order to receive their payments they can also just store this "trust factor" in their wallet,

  • (IMPORTANT - The final blockchain protocol will not allow for the transfer of this trust factor by the node who's trust factor is being transferred and can only be changed by an integer value of 1 per block).

    • This effectively means that when a new block is mined, the block creator can change any other node's trust factor by 1 unit, whether that is +1 to represent a positive image or -1 to represent a negative image.

  • Now that we have a leader node and a pool of active worker nodes with a trust factor ratings we can start putting blocks on the blockchain, to do this a user sends a transaction request to a leader node, and first the leader node checks that the amount designated to itself is above the percentage of the final transactions that it wants, then it is piled into the leader node's pending transaction pool.

  • Once the transaction pool is large enough that a block can be constructed from it's contents the leader node announces that it has a new block that needs work and publishes all the contents of the block to each worker node.

  • Each worker node then starts validating all of the data it has received and then constructs the block using only valid transactions, and sends this block back to the leader node.

  • The leader node then awaits for enough nodes to send back their data so that it has a large enough quantity of the calculated block but not too many so as to prevent the user to have to wait too long for a transaction to go through.

  • Now that the leader node has a large quantity of what should theoretically be the same block, it compares all of the worker node's submitted blocks and if over a large majority (90%?) are identical then that will be the final block to be submitted to the blockchain.

  • The leader then broadcasts this block to the blockchain and it is added.

  • This then completes all of the transactions which were pending and therefore also results in the leader node receiving all of the transaction fees that it required.

  • Now that the leader node has "the block's mining revenue" it needs to distribute it to its worker nodes, which it does so by first taking its own cut (this is up to the leader node's own choice but will be 25% on the initial example node software).

  • Then it takes the remaining pile of crypto and distributes it equally to every node that helped construct the block

Leader nodes vs Worker nodes

The reason for the leader vs worker split is to allow as many computers as possible to be able to contribute to the blockchain whilst ensuring they are still rewarded for their work.

The leader/worker dynamic helps this as the requirements for becoming a leader node are about as high as typical for becoming a block contributor for other chains, whilst the requirements for becoming a worker node are much lower.

Requirements for each type of node

The approximate requirements for a leader node will be the following:

  1. An internet connection with low enough latency to support quick computations and data transfers.

  2. A computer/server powerful enough to handle large quantities of data quickly.

  3. A public DNS/IP address to allow worker nodes to connect to.

  4. Two open ports, one for http and one for web-socket connections, the http port for communicating to other leader nodes and the web-socket port for talking to worker nodes in realtime.

  5. [Ideally] Able to run the node software 24/7 so as to ensure that worker nodes that choose to work for this leader node can always mine whenever they want. Although there's no way of actually enforcing this but it will help the leader node grow their personal connections so is somewhat socially enforced.

The approximate requirements for becoming a worker node:

  1. An internet connection for connecting to a leader node.

  2. A computer that supports any form of the node software.

Summary

A leader node is one that operates at all times, allows worker nodes to connect to the network through itself and has a publicly accessible http and web-socket connection but will be rewarded for these requirements with a greater share of block rewards.

A worker node is one that can operate whenever it wants and will contribute by helping a leader node do any calculations they need doing, then will be rewarded with a lower share of block rewards.

Benefits of this system compared to the alternatives:

Bitcoin

Does not waste as much computing power to "mine" a block as a proof of work system such as bitcoin, as it requires an ideal pool of 100-1000 worker nodes per block unlike bitcoin which relies on a pool of tens of thousands of nodes for every block.

Ethereum

Does not rely on worker nodes being owned by users who already have a large investment in the system unlike a proof of stake model, which in Ethereum's case is a massive hurdle for nodes. "To participate as a validator, a user must deposit 32 ETH into the deposit contract and run three separate pieces of software: an execution client, a consensus client, and a validator." (Wackerow, 2022) At time of writing 32 ETH is £52657.46 GBP which as absolutely ridiculous hurdle and is the reason why Ethereum only managed to implement this recently which masses of users as opposed to when it was conceived.

Last updated