Difference between revisions of "Proof-of-Giving"

From BiblePay Wiki
Jump to: navigation, search
Line 128: Line 128:
<tr><td>80016            <td>0      <td>0
<tr><td>80016            <td>0      <td>0
'''Complex Payment example with widely disparate tithes'''
<table frame=box>
<tr><th>Miner </th><th>Tithe Amount<th>Tranche
<tr><td>Miner 1          <td>40,000  <td>15
<tr><td>Miner 2          <td>10      <td>0
<tr><td>Miner 3          <td>20,000  <td>11
<tr><td>Miner 4          <td>1,000  <td>0
<br> Divide the highest tithe (40,000) by 16 (2,500) to compute the 16 tier tranche breaks table:
<table frame=box>
<tr><th>Tranche </th><th>Breaks<th>
<tr><td>Tranche 0        <td>0-2500 
<tr><td>Tranche 1        <td>5000     
<tr><td>Tranche 2        <td>7500 
<tr><td>Tranche 3        <td>10000
<tr><td>Tranche 11        <td>20000
<tr><td>Tranche 12        <td>25000
<tr><td>Tranche 13        <td>30000
<tr><td>Tranche 14        <td>35000
<tr><td>Tranche 15        <td>40000
In the above example, miners 2 and 4 would be rewarded together in tranche 0, but miners 3 and 1 would be rewarded in their own dedicated blocks.

Revision as of 19:52, 19 November 2018

By: Rob Andrews

Date: 11-19-2018


Proof-of-Giving is a flavor of Proof-of-Work geared for a high adoption rate.

It rewards miners who are small, medium, or large in tranches.

The idea is to increase the chance of solving based on those who have tithed the greatest in the block-tranche to the orphan foundation.

First, the sum of tithes to the orphan foundation wallet is summed over the last 24 hours of blocks. This miner-public-key-sum is the weight reward level the miner will receive for block solving for a given tranche-interval-phase block.

Orphan foundation tithes will be modified to contain the miners signature, so that the sum of orphan tithes over 24 hours for that miner will accumulate and give the miner an even higher chance of solving a block in their tranche.

To remove the necessity of having a pool, miners tithes will 'register' the miners public receiving address and signature for 24 hours. It will be of greater benefit for a miner to send incremental tithes (over the 24 hour period) from the same registered wallet, for a greater chance of a reward (in contrast to sending tithes from separate wallets). As the sum of the amount tithed will place the miner in a higher tranche paying a higher reward.

This also prevents botnets from forming, because rewards are based on individual miner controller wallets and tithe amounts, not based on ramping up POW competition.

The system will constantly use a 205 block lookback, so it will constantly be updated with the most recent 24 hour information.

The statistics for the "round" will be available in the wallet and on the overview, for a nice new UI feature.

Example with one tithe of 100 bbp and one tithe of 225,000 bbp: Current Round Tithes: 225,000 Tranche 0: 0-14062 BBP Tranche 1: 14063-29,100 BBP ... Tranche 15: 205,930-225,000 BBP ...

How does this system promote easy adoption? A brand new user is able to mine in a plug-n-play environment, with as little as 10 bbp. They boot the wallet, use the defaults, and tithe .50 bbp to the foundation. They are now mining in tranche 0.

What happens on a day where no one tithes? All tranches will be zero in the breaks table. Therefore anyone can mine on that day.

How does this system reward a very high giver? If one gives 50,000 BBP and this lands in tranche 15, this miner will have a very high advantage every 15th block.

How does this system root out botnets? The very first requirement to running a botnet is to be rewarded on 1-nth of the machines for POW work (otherwise it would be a useless endeavor). For example, if BiblePay was pure POW, it would be advantageous to run 10 POW machines and collect a random reward on 1 machine. However, since POG is set up to increase your chances of mining a block by the SUM of the individual wallet contribution (IE: three tithes from one wallet create an advantage, as the sum of the tithes is used), this is an advantage over three distinct tithes from 3 wallets - as the higher tranches pay a higher reward.

The miner who found the block is given 20% of the block reward and the remaining 80% of the reward is split equally to everyone in the tranche, weighted by the tithe amount. Therefore no pool is required.

Pool mining is replaced with the action of tithing. Once you have a tithe in a tranche, you are guaranteed to receive a reward once a tranche block is solved.

PODC is removed, so as to give the entire reward to the POG miners, and to promote 'easy adoption' by new users.

100% of the foundation tithes are used for orphan sponsorships.


The POG algorithm is very green, because miners who do not have a tithe in a certain Tranche will sleep during that block. The block interval phase determines which miners will mine that block deterministically.

51% attack resistance Since all mining public keys will be registered in Tithes, it will not be possible to create a standard outsider 51% attack, but instead the attacker will first need to buy out the tranches first (IE tithe more than the current tranche levels). Then they will need to deal with the competition in each tranche, and finally we still have DGW which will increase dramatically if blocks are solved too fast. As a final protection mechanism, less weight will be awarded to hashpower and more to tithing power.


In this example, Tranche 0 (this is equal to block interval 0, occurring once every 16 blocks), in this tranche we have the lowest amount givers. Let us assume 5 miners tithed, with 3 tithes from miner 1:

    Inbound Tithes
  • Miner 1: Tithed 20+100+100 = 120 TOTAL
  • Miner 2: Tithed 20
  • Miner 3: Tithed 30
  • Miner 4: Tithed 40
  • Miner 5: Tithed 50

Let us assume Miner 2 found the block (even though miner 1 had the greatest tithe-hash-power).

    The tranche is broken into weights: Sum of Tithes to foundation : 260 bbp
  • Miner 1 weight: 46%
  • Miner 2 weight: 8%
  • Miner 3 weight: 12%
  • Miner 4 weight: 15%
  • Miner 5 weight: 19%
    Block distribution:
    There will be 5 recipients in this block. Block subsidy is 10,000 bbp (without PODC, after Sanc was paid). 2,000 BBP bonus is reserved for miner 2 (since s/he found the block - this promotes controller wallets to be ON). 8,000 bbp remains for the group.
  • Miner 1 Reward: 3680
  • Miner 2 Reward: 640 + 2000
  • Miner 3 Reward: 960
  • Miner 4 Reward: 1200
  • Miner 5 Reward: 1520

Total: 10000 BBP


Unlike Proof-of-stake, where the rich get richer, with POG, the ones participating in the tithing round get richer.

Also, this system levels the playing field between powerful machines and small miners by weighting the miner by tithe amount. This is accomplished by giving a higher magnitude of weight by tithe weight (not by hashpower). This system removes the necessity of pools, meaning that no one misses out on solo mining. This simplifies the biblepay infrastructure.


We will also make it so the wallet will have an option to automatically tithe in the future with selectable amount and frequency.

Block Interval and relationship to Tranche

Block NumberIntervalTranche
80000 0 0
80001 1 1
80015 15 15
80016 0 0

Complex Payment example with widely disparate tithes

Miner Tithe AmountTranche
Miner 1 40,000 15
Miner 2 10 0
Miner 3 20,000 11
Miner 4 1,000 0

Divide the highest tithe (40,000) by 16 (2,500) to compute the 16 tier tranche breaks table:

Tranche Breaks
Tranche 0 0-2500
Tranche 1 5000
Tranche 2 7500
Tranche 3 10000
Tranche 11 20000
Tranche 12 25000
Tranche 13 30000
Tranche 14 35000
Tranche 15 40000

In the above example, miners 2 and 4 would be rewarded together in tranche 0, but miners 3 and 1 would be rewarded in their own dedicated blocks.