Witnet Community Q&A : January 2020 – The Witnet Foundation Blog
Q: Why does reputation expire? Does every node’s reputation expire within the same time frame?
Rather than relying on Proof of Work (PoW) or other traditional consensus mechanisms, the Witnet protocol uses a reputation system: nodes are probabilistically elected to committees based on node reputation score attained by resolving previous data requests.
By choosing a reputation-based mechanism, Witnet does not have the usual financial or hardware prerequisites necessary to participate in the network. The reputation system is also designed to reward loyal nodes, whilst punishing nodes that deliver dishonest or inaccurate data.
To ensure that reputation is not hoarded by any particular node or group of nodes (which could, for example, result in a 51% attack on the network), and to encourage nodes to continue to participate in the network, all reputation points expire after a fixed number of epochs. These expired reputation points (alongside reputation points subtracted from “dishonest nodes”) are redistributed amongst nodes participating honestly in the following network request.
Reputation epochs are not tied to human time, but instead to the velocity of the network, based on the number of requests being fulfilled (the more requests being fulfilled, the quicker reputation points will expire). Each reputation points awarded will expire after the same number of epochs, regardless of the node it was awarded to.
This means that:
- A batch of reputation points collected over a longer period of time are more valuable than a batch acquired all at once, since the latter will expire all at once, too. This encourages constant participation in the network.
- As more and more nodes join the network, reputation points will naturally be redistributed evenly amongst all honest participants.
There are many more technical details about how committee selections are elected cryptographically — you can read more about the process below:
Or to read more about how reputation works, head here:
Q: What is Rust, and what does it have to do with Witnet? What are the best places and resources to start learning about it?
A: Rust is a multi-paradigm system programming language. Its structure is syntactically very similar to C++, and it has been designed with memory safety and high performance in mind.
Witnet-rust is an open-source implementation of the Witnet protocol written in Rust. It is a native app providing “full node” functionality of the Witnet Decentralized Oracle Network protocol. RADON, Witnet’s native domain-specific language, uses a subset of Rust, and allows for fully parameterizable, explicit and unambiguous design of data requests.
After analyzing possible languages with which to build Witnet, Rust was selected by the community for the following:
- Performance
- Memory safety
- Influence from functional languages
- Statically typed with type inference
- Strong compiler and tooling
- Metaprogramming
- Thriving community
If you want to learn more about Rust fundamentals can be found on the link below.
Published at Wed, 29 Jan 2020 14:02:33 +0000
{flickr|100|campaign}
