1

Is there a solution to verifying a transformation of raw values on the blockchain available?

Example: You have a (private, permissioned) blockchain solution to verify how many apples you have in your storage. New apples arrive randomly every 1 to 5 minutes. Same is for outgoing apples.

After every hour that passed you want to calculate the apples that have arrived within the last hour. After every day you want to calculate the average apples that arrived per hour.

Does Ethereum (and others) solve this with Smart Contracts? What are alternative approaches?

To make it a bit more complex: let's assume the transformation itself is very complex and cannot be stored in a smart contract - like using a neuronal network that can not be replicated across all nodes. How can the other nodes confirm the transformation was done correctly and is trustworthy and store the result only on the blockchain?

2

The blockchain is an internally consistent data structure. It is deterministic so that all nodes can verify the transitions.

It cannot see the apples. That is an external reality. Generally, this is sometimes called the onboarding problem - how to get information from the real-world into the blockchain. It is a common design challenge.

in the simplest case, someone signs a transaction, to a function in a contract, to add or remove apples. The ledger itself is updated (+/-) accordingly. All nodes have a copy of this ledger and it is reliable, as far as it goes.

The onboarding issue is about the truthfulness and reliability of the inputs.

Approaches to such problems include creating trusted sources of authority (only certain accounts are allowed to add and remove apples), relying on trusted sources such as an API (Oracle), incentive-based schemes and verification schemes.

Although neural networks are unlikely candidates for replication (not deterministic), HAL can be a user that instructs a contract to take action - buy, sell, grant access, etc. and it will be reliably executed.

iExec have trusted computations - contracts that deal with computationally complex problems. In their implementation, complex problems are packaged as containers with executables for someone to run and a verification suite so others can confirm the returned result is in the realm of acceptable answers.

For example, an image blurring problem has many possible answers, but all acceptable answers retain certain facial geometry and maybe minimal blurriness. This implementation collapses the non-deterministic result into a de facto consensus about the result or record. A marketplace of problems and pools of computing power organizes things and provides parallelism.

Hope it helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.