Bitcoin Forum
November 01, 2024, 02:29:17 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Proof of Random  (Read 88 times)
theparadoxvoid (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
August 24, 2021, 04:54:49 PM
 #1

I've got an idea that I'd like to make a prototype of by forking Bitcoin and changing the mining algorithm from proof of work to a new mining scheme I've created called proof of random.

As I understand it proof of work was intended originally to distribute the block production ability as randomly as possible - anyone with a CPU.

I don't think it's controversial to recognize that the goal has not been realized. If we want to distribute mining power randomly we can do it explicitly.

I'm making this post to see what everyone thinks of this. Is it an exciting idea for you? Do you think I'm deluded? Be as brutal as you like, I want honest feedback. I also won't be surprised if I get an open-minded and curious response.

I intend to prove it's actually a trivial problem that is staring us in the face. Is it worth the attempt?
BlackHatCoiner
Legendary
*
Offline Offline

Activity: 1694
Merit: 8318


Bitcoin is a royal fork


View Profile WWW
August 24, 2021, 04:59:23 PM
Merited by ABCbits (2)
 #2

As I understand it proof of work was intended originally to distribute the block production ability as randomly as possible - anyone with a CPU.
It wasn't intended to distribute the block production as randomly as possible. Whoever had the most computational power should have the highest chances of getting rewarded.

Also:
If the network becomes very large, like over 100,000 nodes, this is what we'll use to allow common users to do transactions without being full blown nodes.  At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated.

For now, everyone just runs a full network node.

I anticipate there will never be more than 100K nodes, probably less.  It will reach an equilibrium where it's not worth it for more nodes to join in.  The rest will be lightweight clients, which could be millions.

At equilibrium size, many nodes will be server farms with one or two network nodes that feed the rest of the farm over a LAN.

The current system where every user is a network node is not the intended configuration for large scale.  That would be like every Usenet user runs their own NNTP server.  The design supports letting users just be users.  The more burden it is to run a node, the fewer nodes there will be.  Those few nodes will be big server farms.  The rest will be client nodes that only do transactions and don't generate.




I'm making this post to see what everyone thinks of this. Is it an exciting idea for you? Do you think I'm deluded?
Would you mind explaining to us how will you achieve this?

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
baro77
Member
**
Offline Offline

Activity: 90
Merit: 91


View Profile WWW
August 24, 2021, 05:20:50 PM
 #3

I'm making this post to see what everyone thinks of this. Is it an exciting idea for you? Do you think I'm deluded? Be as brutal as you like, I want honest feedback. I also won't be surprised if I get an open-minded and curious response.

You may be interested in Verifiable Random Functions ... I just know about it in layman terms, but I think Algorand has validators' provably random selection, weighted by stakes (apart from stakes, it seems what you are thinking about)
theparadoxvoid (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
August 24, 2021, 05:40:34 PM
 #4

Would you mind explaining to us how will you achieve this?

I wouldn't mind, in fact, if it wouldn't work, I'd like to know now.

Keep in mind there are multiple permutations for the general idea I'll outline. So I'll try to give concrete examples of the idea's aspects, but they won't be ideal, just easy to imagine.

Imagine every potential miner has a unique representation of identity, which they do (their address or public key). To get a concrete list for illustration purposes we could take the list of all miners who have ever minted a block in the past: now we have our list of miners.

Ok. Once you have that you must decide, who, of this list (which is identical amongst all miners) is allowed to make the next block? well, that can be determined in a deterministically random way: take the latest blockhash and prepend it to each identity then hash in order to randomize the numeric order of all identities. Then say, which of these identities is now closest to the most recent blockhash (when interpreted as a large number)? Everyone will come up with the same answer, and everyone will know the answer is essentially randomized - at least it has that beautiful feature of random that it cannot be predicted ahead of time.

That miner can make the next block.

You may say, "Well, the hard part is coming up with a list of current, valid miners that we all agree on." ok. You're right, that's a problem that can be dealt with in many various ways, but my point is that it can be done, and once it is done, as in the example above, taking a less than optimal approach, but a successful one, we can do away with proof of work without needing to replace it with proof of stake.

I'm merely trying to prove that Proof of Random is possible and, moreover, trivial. Can you see anything else I might be missing?
baro77
Member
**
Offline Offline

Activity: 90
Merit: 91


View Profile WWW
August 25, 2021, 06:24:40 AM
 #5

[...]
Imagine every potential miner has a unique representation of identity, which they do (their address or public key). To get a concrete list for illustration purposes we could take the list of all miners who have ever minted a block in the past: now we have our list of miners.
[...]
I'm merely trying to prove that Proof of Random is possible and, moreover, trivial. Can you see anything else I might be missing?

I guess this would trigger a rush by miners (or candidate ones) to get a new pubkey/privkey pair after each new block, to win the "randomness challenge". I means, I see the new block, so I start to check many privkey, choosing the one which produces the right pubkey, given the challenge metric. Which is again a sort of PoW.

If you avoid this permitting only pubkeys from the old miners list, you will prevent new miners entry damaging decentralization.

Just imho of course (the problem here seems not your idea of randomness, but to find a parameter -used to calculate the candidate value for the challenge- which can really be unique for each contender)
BlackHatCoiner
Legendary
*
Offline Offline

Activity: 1694
Merit: 8318


Bitcoin is a royal fork


View Profile WWW
August 25, 2021, 06:37:02 AM
 #6

Can you see anything else I might be missing?

What stops a miner from generating each block with a different key to increase their future odds of generating blocks?

How are the identities listed? Do they stake their public keys anywhere?

Will this use a proof of work mechanism? If yes, will the “identity winners” have higher chances (higher target) of finding the next block? If that's also a yes, how's that different from the current protocol where there's only difference between those who own more computational than the rest?

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
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!