Open discussion. Two possible methods are currently being researched and evaluated, but any new proposal is welcome.
It defines how many Oracle nodes should sign at least to proceed moving the transaction to the verified pool.
Some cases might be contemplated to define the threshold:
_Final formula TBD._
...
The Oracle nodes are different from the consensus nodes?
The Oracle nodes are different from the consensus nodes?
Yes
Yes, the software (neo-cli) is the same, but the role is different. Like the current consensus nodes.
Why they are different? How can I become an oracle node? What is the incentive to become an oracle node?
The Oracle nodes are different from the consensus nodes?
Why they are different? How can I become an oracle node? What is the incentive to become an oracle node?
This looks like to be a good option, @erikzhang. To keep them the same. It is almost the most "naive" possibility and the one that may be easier for the incentives (which we need to revise for NEO3, as we are currently discussing, such as compulsory staking for voting and for GAS claims, as well as removing 1000GAS to be candidate and change it to stake).
However, I think that the CN could elect more than 1 oracle, which would make the scalability better. On the other hand, the incentives for the oracles becomes lower and only focused on the oracle fees.
As @belane commented, oracles could also be voted. However, I believe it is too complex and the incentives model becomes even more difficult.
In fact, I think that @erikzhang comment is the correct direction to go, 1. is the naive solution.
If people want to be oracle nodes they can settle another parallel service and win the fees of those that want to use their service.
For example, if someone wants to be an oracle and it is not a consensus node it can create a system, let's say https://www.freeoracles.io/ and register that on the available oracle system (on our native policy). Everyone interested in using this service will pay the oracle fees to them.
Editted:
After hearing @vang1ong7ang I believe that maybe we do not need any default oracles.
@erikzhang Why do they have to be different? Well, there really is no technical need to do it, but I think it is good for the resilience of the network to have distributed roles, it is something we can talk about the pros and cons.
We can discuss the choice and rewards in their threads, but as a summary, I think that if we have to design/solve the election of consensus nodes, why not use the same system to choose oracle nodes?
@vncoelho maybe the idea of having official oracles and open oracles is a great idea to distribute the load, official oracles can have a higher price than open ones.
Perhaps, no need for official oracles, @belane.
What could we get from "official"? What is really official? There are open questions regarding who will play this role.
Perhaps a true descentralization is to not have official and just the basic protocol.
By empowering oracles service providers we may guide to a good path where oracles fees match the service that is really being used.
Hi, just a community guy here, a few questions:
1) What are incentives to becoming an oracle node? (Are there Oracle fees?)
2) Is it permissionless — can anyone sign up to become one (or will there be voting by community to elect these?)
3) If there is voting, what makes us believe people will vote. Are there any incentives for neo holders who vote? (Not everyone is altruistic, doing it for ‘good will’ so to speak)
4) will there be a way to “punish” bad actors?
Thanks for question
1.Yes,there is an Oracle fee.And it will be shared equally among all Oracle nodes
2.Oracle nodes will be strongly bound to Neo's consensus nodes
Indeed, Oracle election is indeed a more important issue.In the mechanism of Oracle, four parties will be involved:Users, public chain, Oracle nodes, data sources.
Users<------>public chain<----->Oracle nodes<----->data sources
Among them, the public chain, Oracle nodes, and data sources are not safe. If we represent their honesty with P1, P2, and P3 (0
The overall reliability of the system = P1xP2xP3, then it is actually not so reliable.But what we want now is a simple Oracle that can meet most needs
@JustinR1
@doubiliu ,
Thank you for your detailed response. I was curious, when you say that Oracle nodes will be strongly bound to Neo's consensus nodes what does this mean? Does this mean CN's will be the ones running Oracle nodes? Does this also mean that all CN's are _required_ to run them?
If there is no way to determine if an oracle node has malicious intent/motive (even if bound to a CN node), why should we trust them? Is it because existing CN's are running them so it's trust based on that? I guess I just need more clarification on this aspect. I don't 100% understand how the consensus comes into play with oracle nodes, especially if these oracle nodes are run by the same consensus nodes.
Regards,
Justin
Oracle nodes will be strongly bound to Neo's consensus nodes means each consensus node will operate an Oracle node independently.So it also can be understood that each consensus node is an Oracle node.Of course, the consensus node can also authorize a third party to operate, but it must be responsible for it.
The trust is indeed based on the consensus node. As described above, the consensus node and the Oracle node are integrated. If the Byzantine problem of the DBFT is fully met, then the Oracle data can be considered reliable.Of course, there is also the problem of freeload, but it has little effect on the reliability of the overall data.
@JustinR1
The mechanism can refer to:
https://github.com/neo-project/neo/issues/1276
Most helpful comment
Perhaps, no need for official oracles, @belane.
What could we get from "official"? What is really official? There are open questions regarding who will play this role.
Perhaps a true descentralization is to not have official and just the basic protocol.
By empowering oracles service providers we may guide to a good path where oracles fees match the service that is really being used.