Bitcoin Forum
May 03, 2024, 04:50:28 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Proof-of-Useful Work Consens Algorithm without Gen,Solve and Verify components  (Read 71 times)
anon_staker (OP)
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
May 01, 2022, 08:47:24 AM
Last edit: May 01, 2022, 09:31:11 AM by anon_staker
 #1

I’m studying PoW and its alternative form PoUW (Proof-of-Useful Work). As defined, PoW is a subset of PoUW (holding for hardness, soundness, etc) without holding for usefulness. “Usefulness” (in most cases) is some kind of hard problem (OV, 3SUM, and other graph optimisation problems). While reading about these topics, I came up with an idea of an alternative “proof concept”, which doesn’t hold for hardness (and therefore is no real proof-of-work) but allows to be used with any kind of challenge (and therefore holds for usefulness). I kinda think, I’m missing some important facts and would like to know your thoughts about it. (Or it there exists something similar). Thank you!

Given a set of challenges (such as matrix multiplication, graph problems, or any other problem), where each challenge is solvable in a short amount of time (e.g. polynomial) and two challenges have roughly the same amount of computational steps.
Given a number of challenges, c:

Block creation / mining:
* Randomly select miners into groups and assign a single challenge to each group
* Round 1: All miners try to solve their assigned challenge in a given timeframe. Miners of each group, which as first solved the challenge are selected for the second round. All other miners are not eligible to mine a block in the current block-creation-round.
* Round 2: every selected miner from round 1 is given another challenge (from the solved challenges from round 1) to solve.
* Round 3 … Round c: repeat Round 2 (without assigning a challenge to a miner twice)

After Round c: each miner has computed/solved c different challenges (At this time, no miner has shared any of their solutions). Now, every miner verifies the solution of every other miner (which solved the same challenge) using a zero knowledge proof. Using zero knowledge, one can find out, if a miner computed a (valid) solution.
Voting: During voting, miners tell each other, if one wasn’t able to proof (via zero knowledge). If one gets more than 50% of all selected-miners votes he is removed from the selected miners pool.
After voting, each remaining miner is eligible to create a new block (and rewarded with challenge and transaction fees).
All selected miners publish their solutions of the assigned round 1 challenge.

Some thoughts:
* Voting is successful (n selected miners, c challenges, e evil miners), if (c >= (n - 2*e) / 2 + 2*e) or (2*e <= c and c >= math.floor(n / 2) + 1)
* There should be/ must be some kind of slashing for getting voted and wrong voting

As you can see, this concept doesn’t consist of a set of gen, solve, verify functions, where solving is way harder than gen/verify, but tries to verifies itself from the inside using “cross-checking” each other using some kind of zero knowledge proof.


Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!