Everywhere on the internet people are blogging/bragging about how smart contract can reinforce payment to musicians/content providers (on each usage (download, listening/clicking) of the content!!), but I don't see it happen at the technology level, especially after reading this answer. So is it really possible to trigger the contract through changes in real-life outside of the blockchain?

A broader question would be, what are the restrictions on the input data into the contract each time on execution? I could certainly imagine the aforementioned reinforcement be possible if each executing node were allowed to fetch input data from the internet, but there would arise at least two problems:

  1. since the execution time can't always be the same throughout the network, such fetched input data can hardly be checked against forgery because a faked fetch is indiscernible from a fetch at another point in time. An agreement will then never be made.

  2. if the input data is fetched constantly from another server, that server could have huge influence on the execution, should it be centralized.

  • I was going to write an answer to this, but all of your concerns are covered by this previous answer: ethereum.stackexchange.com/a/2336/52 Mar 27, 2017 at 20:21
  • Thanks for the link and the comment. However, what if we're fetching dynamic data? If I have understood the other link (from my question body) correctly, i.e. if the execution of the contract is done on many nodes for the same block, the resulting output will probably be different, and therefore the block will not be accepted?
    – andrew
    Mar 27, 2017 at 22:14


Browse other questions tagged or ask your own question.