Taking a combination of world events-- thunder, astronomical imagery, vote outcomes, stock index value-- and deriving the ID of the source of truth from a hashed combination of them could be used instead of a proof-of-work algorithm. Why isn't it used?
-
$\begingroup$ The good thing with a proof of work is that you can verify it on your own though. Hard to know world events without trusting anybody $\endgroup$– Florian BourseCommented Apr 24, 2018 at 13:15
-
$\begingroup$ I looked into pulsars as a source for this. It's theoretically possible to use multiple overlapping pulsar waveforms as a random source but the equipment required to make observations is costly and cumbersome, which is very problematic. $\endgroup$– Adam IerymenkoCommented May 15, 2018 at 18:57
2 Answers
A true source of randomness or a Common Reference String (CRS) as it's referred to in cryptography, could potentially be used in some cases in the place of Proof-of-Work, although as forest pointed out it isn't immediately clear how to achieve this or whether it is possible, especially in settings such as blockchains where something closer to a Random Oracle (RO) is needed. However, it may be possible to substitute the two in settings such as Proof-of-Stake, like Ouroboros is doing. In the latter case, because of the design of the system, a CRS is not really needed – the participants can generate their randomness locally.
However, for the sake of argument, I will now describe some reasons for which using the types of events you mentioned as a CRS is inappropriate for designing cryptographically secure decentralized systems.
Public verifiability. It is easy for any machine to locally verify proof of work in polynomial time. If you give a piece of proof of work to a mobile phone or a laptop, they can check to make sure it has been computed correctly. However, they cannot do so for thunders, unless they constantly monitor the earth. Public verifiability means that anyone can verify, even after the fact.
Consensus. Participants can easily agree on whether a piece of proof-of-work is correct. The condition is clear and well-defined. However, for real world events, this may not be so. For instance, there are weird physical phenomena which may be considered thunder by some scientists and not by others, or a thunder may be captured by one observer, but not by others, even if they are actively monitoring for such events. This disagreement can break consensus protocols which require that all participants agree.
Sustainability. Proof-of-work is a system which will continue to work ad infinitum, because it is based on a mathematical formula. Systems such as stock indices may not. Stock exchanges close down and indices are redefined or sunset. While these events may be rare, if we are building the economy of the future which we want to last for more than a hundred years, we want a system that can continue to function regardless of such changes. If these changes do happen and we rely on them instead of proof-of-work, we would have to redefine our systems every time a change happened, and such a redefinition would require making difficult consensus decisions (which can lead to forks in the case of blockchains).
Centralization. It is difficult to define an objective source of truth for the values of these events. If the source of truth is defined as, say, the stock exchange website, then the central party that runs the website can manipulate the values that are displayed there. This makes the system prone to centralized manipulation. For instance, a court can order the exchange website to display false data in order to subvert the system.
Distribution. It is difficult to say what kind of distribution is followed by various sources of randomness such as the stock market. The fact that the stock market is just a random walk is controversial, and using this hypothesis to ensure our economy's future is an incorrect approach, especially because we cannot quantify it and prove our claims. While there exist ways to extract good randomness from skewed randomness, some quantification of the entropy in the source is needed, for which we also have a limited understanding.
Manipulation. This is related to the last two points above. Some of the systems you are proposing may be possible to manipulate by participants, given enough incentives. For example, if I am a rich investor, I could buy or sell a particular stock to change the value of the index, skewing the randomness in a particular predictable manner. If this artificial biasing is something I can use in my favour to make more money than I need to invest to cause the skewing, then it may be rational to act in that manner. It is difficult to give a game theoretic argument that such acts are impossible. With proof-of-work, the outcome cannot be artificially manipulated.
-
$\begingroup$ Ad 1. let's forget the thunders, although I can think of a consensus algorithm, that solves this problem. $\endgroup$ Commented Apr 24, 2018 at 8:15
-
$\begingroup$ How would you publicly verify the stock market prices from, say, a smartphone? $\endgroup$– dionyzizCommented Apr 24, 2018 at 8:23
-
$\begingroup$ Ad2. Consensus protocol is an algorithm, that has to bee agreed upon, therefore it is open to discussion. What I mean is that it does not need to be rigid. For example - if 80% of participants agree - then OK. Ad 3. again - a matter of algorithm and voting. From time to time a new source of random truth will be discovered proposed to the network and accepted. Also other sources might get voted out. Ad4 Ad5 Ad6 We should use as many sources as possible add them and hash. $\endgroup$ Commented Apr 24, 2018 at 8:27
-
$\begingroup$ I think it is not about verification of one stock market. it should be the verification of as many of them as possible. And then it can be done via on-line services $\endgroup$ Commented Apr 24, 2018 at 8:29
-
$\begingroup$ @MatthiasDanetzky You bring up many issues. I will answer them in separate comments. (1) Regarding the use of online services for checking the stock market. This brings in a centralized trusted third party, which can be subpoenaed by a court. Even if we use multiple parties here, it still forms a "cothority" (collaborative authority) and all of them could be subpoenaed. This may be OK for some systems depending on your threat model, but is a weaker result than a completely decentralized system. $\endgroup$– dionyzizCommented Apr 24, 2018 at 11:44
You are misunderstanding what a proof-of-work algorithm is designed to accomplish. It's designed to provide an economic disincentive to repeating the process many times (e.g. sending an email or visiting a website). Real-world values on the other hand have the distinct property of being difficult to predict in advance, making it useful for proving that a given document was not created before a certain date (for example). There is no way to use that property in a proof-of-work system.
-
1$\begingroup$ You are absolutely right. Unfortunately the proof-of-work is what is used to choose the miner in the blockchain and I didn't know of any other easy to understand name for the 'miner choice' problem. $\endgroup$ Commented Apr 24, 2018 at 8:32