Reward Bounties via Smart Contract with Veto Clause

by BlakeKeiller, Monday, December 07, 2020, 15:15 (363 days ago) @ BlakeKeiller

The hard fork at Block 5000 (estimated to happen near Christmas) will stop creating 25 bar bounties at random propositions. There was a discussion period in October, but no clear agreement on what to replace it with. In the end I decided to spend 10000 blocks (about a year) with the new 25 bars intended to be bounties at each block to be controlled by an address for which I have the private key. I would decide what (meaningful) propositions to place the bounties on, hopefully with input from others in the community.

There has been some resistance to this option because it obviously places too much power in my hands. An option suggested and implemented since the last release candidate is to send the new 25 bars to a smart contract with a veto clause. After a staker creates a new block, the staker will have 48 blocks to "veto" allowing me to collect the 25 bars for the reward bounty fund. If someone vetos, they should send 25 bars to a proposition of their choice. After 48 blocks, I can collect the 25 bars for the reward bounty fund and use it to place bounties on propositions of my choice.

There are ways this could go wrong.

It is easy to create a theorem that can only be proven by a specific person. For example, the theorem could say "there exists an x such that sha256(x) = y." Only someone who knows x can prove the theorem. Creating a bounty at a proposition like this is a roundabout way of sending the funds to yourself while technically complying with the obligation to create a bounty.

I cannot define what a "meaningful proposition" is, but propositions like existence of preimages of hashes do not qualify as "meaningful".

If stakers (including me) were to start placing bounties on "meaningless propositions" (or gaming the system in some other unforeseen way), this should be clear by auditing the proofs published into the blockchain. I know I won't (purposefully) create bounties on meaningless propositions, but I will make it a point to explain and make public what propositions I am putting bounties on so that it is clear to others who want to audit what is happening. Likewise, if someone vetos the bounty fund and places bounties on propositions, they should post to the forum explaining what the propositions are. (It is possible to post to the forum from the software anonymously.)

In case someone wants to veto and place a bounty on a proposition they don't need to explain or justify, they can take the propositions from Mizar's MML and HOL4 proposed by Brown here:

Small files with the names of the problems and the correspond Proofgold address are here:

As long as users choose to put bounties on one of these addresses (assuming the proposition has not yet been proven) there is no need to justify choosing the address for the bounty.

To be concrete there is a new command vetobountyfund that can be simply used like this:

vetobountyfund <blockid> <address>

The easiest way to use it is to choose an address from the files linked above. The command should take care of placing a bounty of 25 bars (minus transaction fees) at the address.

Of course, a simpler possibility is that stakers simply veto to collect the 25 bars and not place a bounty at all. If this starts happening with a small staker, we can quickly modify the code to start orphaning all blocks created by that staker. If it starts happening with a large staker, then we will have to have a serious discussion about the future of the network.

Complete thread:

 RSS Feed of thread

powered by my little forum