One of the most fascinating, probably most complicated and yet unsolved problems in the context of blockchain protocols and smart contracts is the secure generation of random numbers.
Different methods have been proposed, but none of them meets the goal in providing an ultimate solution. This is due to the complexity of the economic incentives infrastructure and the strictly deterministic nature of blockchain protocols.
The lack of a solution to this problem is limiting what smart contracts can accomplish today. Besides the obvious applications leveraging a source of randomness for gaming and gambling systems, there are many others — efficient probabilistic payment channels, random ballots systems and possibly some yet to be invented. Unfortunately, a theoretical solution seems nowhere near of being discovered.A different approach
Staying consistent with the architecture that Oraclize has been designing during the last 2 years, we have tried to address this very problem using a different approach. Smart contracts and blockchain protocols not only enable trustless applications, but also applications with clearly defined trusted boundaries. As a data carrier, Oraclize is well familiar with the concept: any party interacting with a data-dependent smart contract must trust the data provider (but not necessarily the data carrier!).
Today, we are presenting the random datasource — an architecture that enables smart contracts to receive a random number from a trusted, super partes source, without having to rely whatsoever on the data carrier.We explain the rationale behind the Oraclize random datasource in the following paper “A Scalable Architecture for On-Demand, Untrusted Delivery of Entropy”.
Thanks to its flexibility, the random datasource can be used by any type of application (both decentralized and traditional ones)...