News for hackers. Stuff that matters.
Re:Ethereum Goerli testnet merge goes live before move to pr... by dcow on Thursday August 11, 2022 @07:16PM (#32433017)
How do you make an honest distributed random number generator, then?
Re:Ethereum Goerli testnet merge goes live before move to pr... by jgeralnik on Thursday August 11, 2022 @07:58PM (#32433289)
A bunch of nodes generate random numbers and publish their hashes. After all hashes have been published all nodes reveal their random number, verify that their number actually corresponds to their hash. Xor all the numbers together and as long as at least one node was honest and generated a random number the result will be a random number. I don't recall if this is exactly what proof of work does but I think it's pretty solid.
Re:Ethereum Goerli testnet merge goes live before move to pr... by zik on Thursday August 11, 2022 @08:24PM (#32433474)
PoW as used in bitcoin and ethereum is a bit different. It's designed to reduce the communication needed between nodes.

Each block is published with a hash which is based on all the previous blocks plus its own data. All participants are racing to solve a puzzle: basically a big guessing game where the first to guess the winning number gets to make the next block. The game is to find a number which when combined with the previous hash and put through an expensive hash function comes up with a result which has a specific number of binary zeros at the end. Since hashes are one way functions the only way to solve the problem is for everyone to guess until the solution is found.

The first participant to find the solution gets to create the new block. They also check the last few blocks to see if anyone's been cheating by adding fraudulent transactions. If fraud is detected they just ignore those nefarious blocks like they never happened.

The algorithm scales with the number of participants by automatically making the "difficulty" higher by changing the size of the pattern that needs to be matched.

Re:Ethereum Goerli testnet merge goes live before move to pr... by jgeralnik on Saturday August 13, 2022 @04:16PM (#32453378)
Yeah I meant proof of stake, not proof of work
Re:Ethereum Goerli testnet merge goes live before move to pr... by cstejerean on Thursday August 11, 2022 @09:13PM (#32433760)
Sure but I think the question is about the random number generation used to decide in PoS who gets to do the next block.
Re:Ethereum Goerli testnet merge goes live before move to pr... by yiannisbot on Friday August 12, 2022 @11:01AM (#32439650)
You should check out drand (https://drand.love), which is based on threshold cryptography and the group running the network is composed of 16 independent organisations, none of which can manipulate or predict the next beacon. Beacons can be consumed from the public HTTP APIs (https://drand.love/developer/http-api/).

Lots of exciting features to land very soon that include Timelock Encryption, among several others.

Technical explainer can be found here: https://research.protocol.ai/tutorials/resnetlab-on-tour/dra... and documentation here: https://drand.love/docs/

Re:Ethereum Goerli testnet merge goes live before move to pr... by rufusroflpunch on Thursday August 11, 2022 @07:54PM (#32433263)
Wondering the same thing myself. The entire problem with proof of stake is that the only thing in the digital realm that can be relied on as a source of objective truth is computation, hence proof of work.

How do you get verified (true) randomness without an oracle and without a connection to the analog world (proof of work)?

It would be amusing if the answer was randomness that came from a proof of work algorithm.

Re:Ethereum Goerli testnet merge goes live before move to pr... by SEJeff on Friday August 12, 2022 @12:47AM (#32434802)
An oracle is a totally sensible approach for certain use cases, see the VRF support in chain link as an example:

https://blog.chain.link/verifiable-random-function-vrf/

Re:Ethereum Goerli testnet merge goes live before move to pr... by doubleunplussed on Thursday August 11, 2022 @10:46PM (#32434246)
I don't know how they do it but it seems easy in practice. You hash the concatenation of chunks of data submitted by participants. Adding more data to the hash can only make it more random, not less. As long as at least one participant wants the outcome to be random and therefore they submitted actual random bits, the result will be random no matter how unrandom all the other participants' data chunks were.
Re:Ethereum Goerli testnet merge goes live before move to pr... by baby on Friday August 12, 2022 @03:20AM (#32435498)
You use a vrf (verifiable random function) check what mina, dfinity, celo, and pretty much all the PoS coins dk
Re:Ethereum Goerli testnet merge goes live before move to pr... by SEJeff on Friday August 12, 2022 @12:44AM (#32434786)

    def totally_random():
        return 42
In seriousness, solana’s proof of history is a super novel take ontop of proof of stake to solve this problem.

https://solana.com/news/proof-of-history