The goal of KYVE is to verify any data streams and store them validated on decentralized storage providers without the need for trust. This is achieved by a network of storage pools which are secured by KYVE's own Proof of Stake blockchain.
In summary, uploaders are collecting data from the data sources, storing them on decentralized storage providers and submitting them for validation in storage pools so that other network participants (validators) can verify it. Data consumers then can use the validated data without needing to trust KYVE or other intermediaries to further build decentralized applications.
KYVE has two main layers of concern: the chain layer and the protocol layer. Each are essential but come with different tasks and responsibilities.
The chain layer consists of the KYVE blockchain and is the backbone of KYVE. The KYVE blockchain is built with the Cosmos SDK and uses Tendermint as the consensus engine. This blockchain is run by independent nodes we call chain nodes since they're running on the chain level. The native currency of the KYVE chain is $KYVE. It secures the chain and allows chain nodes to stake and other users to delegate to them.
Because the KYVE blockchain is a Cosmos app chain the custom KYVE logic needed for data validation and archival is directly implemented into the blockchain itself.
NOTE: The source code can be found here: https://github.com/KYVENetwork/chain
Since KYVE's blockchain is based on Tendermint it relies on a set of validators that are responsible for committing new blocks in the blockchain. These validators participate in the consensus protocol by broadcasting votes which contain cryptographic signatures signed by each validator's private key.
NOTE: You can find more information about chain nodes here
The protocol layer sits on top of the chain layer and enables the actual use case of KYVE. Every feature and unit of logic which makes KYVE unique is implemented directly into the chain nodes with the help of Cosmos' Application-Specific Blockchains.
Protocol nodes are the backbone of a KYVE storage pool. A protocol node always runs in a specific storage pool which validates a specific source of data. They are responsible for collecting data from a data source, bundling and uploading them to a Web3 storage provider like Arweave and verifying it.
NOTE: You can find more information on protocol nodes here