The goal of the system is to enable decentralized data delivery services and payments for these services. Each service has a specific name, a subject, which allows Publishers and Subscribers to find each other. The messages are being streamed by the Publishers under specific subjects. The messages then travel through the network of Brokers to the Subscribers and/or Clients authorized by Subscribers.
There are three major components that make up the Syntropy Data Layer protocol:
- Publish-Subscribe protocol and its SDKs,
- Application-specific chain (app chain) with utility token,
- Data Layer tokenomics.
Publish-Subscribe (PubSub) protocol provides a framework for exchanging messages between Publishers and Subscribers. The PubSub protocol used in the Syntropy Data Layer is a wire-compatible fork of NATS.
Publishers only have to compute the messages once and send them to message brokers, whom we simply refer to as Brokers. Publishers provide data to the system, Brokers distribute data to Subscribers, while Subscribers pay for the data.
Each Publisher and Subscriber needs a specialized software integration to participate in the PubSub protocol. PubSub SDKs are provided and managed both by the Syntropy team as well as the community to ease and speed up the development of Publisher and Subscriber applications. SDK has multi-language support and consists of libraries that make participation in the on-chain protocol and decentralized data delivery network possible.
The chain is a synchronization layer responsible for reaching agreements between the parties and facilitating proper accounting and payment infrastructure. An elaborate staking and incentivization mechanism is implemented, which ensures that all parties act in their best interest while protecting the system from malicious behavior at the same time.
To summarize, the blockchain is used in these particular ways:
- Registry: all entities and data streaming services are registered on the blockchain
- Authentication: all parties participating in the protocol authenticate by storing the public part of the key on-chain.
- Authorization: Subscribers (and respectively their Clients) are only authorized to consume the data stream if they have expressed a monetary interest in receiving it.
- Accounting: all data streams delivered through the Syntropy Data Layer are ultimately accounted on-chain, which becomes a basis for rewards of Publishers, Brokers, and Observers.
- Payments: all payments for the on-chain services are performed in a native utility token
- Incentives and penalties: many protocol participants must bond some amount of utility tokens (the stake) to the service they are providing to ensure the best behavior in providing that service. If a misbehavior is detected and proven on-chain, some percentage of the stake is slashed.
Data layer tokenomics
The influx of value to the system is brought by Subscribers who are directly or indirectly responsible for all rewards earned within the protocol. Therefore, Data Layer tokenomics puts more emphasis on catering to the Subscribers rather than other actors of the system.
Publishers can compete with each other in terms of data price, data richness, completeness and efficiency, and overall service quality. All this competition should drive median prices per 1 GB of data down. Both Publishers and Brokers will reap profit due to the increased demand for cheap, high-quality data obtained through the decentralized protocol. Brokers are not even competing with each other in price, as they are always paid a fixed protocol fee, even if a Publisher decides to give away its data for free.
To protect the system from malicious behavior, an additional Observer entity is needed. Observers are responsible for monitoring and attesting to the actions of Brokers. In addition to delivering the data, Brokers are also responsible for accounting it off-chain and constructing Proofs of Delivery, which are subsequently attested by Observers and then can be submitted to the App Chain.
Figure: Three components of the system: Data Layer tokenomics, PubSub protocol, and Application-specific blockchain