## 3 Materials and Methods
### Materials
#### 3.1.2 IOTA Streams  
IOTA Streams is a cryptographic messaging protocol designed to enable secure, private, and decentralized communication, built upon the IOTA technology stack. It operates under the core principle that data are owned by their creator, allowing individuals or entities to have complete control over who can access and utilize their information. This control is essential in ensuring privacy and security, especially in decentralized environments like IoT. With IOTA Streams, users can establish private communication channels where only authorized recipients, based on predefined permissions, are able to read or interact with the messages.  
The protocol facilitates end-to-end encryption and offers features such as message authentication, integrity, and confidentiality, ensuring that the content of communications remains protected against unauthorized access or tampering. IOTA Streams is particularly suited for environments where trustless communication is necessary, as it leverages the underlying IOTA Tangle to provide scalability, fee-less transactions, and high throughput without the need for miners or centralized intermediaries.  
Key aspects of the IOTA Streams protocol include  
* Access Control and Authorization: The protocol enables the precise control over who can send or receive messages, ensuring that only authorized entities can access specific data, whether for reading or interacting with services.
* Message Encryption and Integrity: Using cryptographic techniques, IOTA Streams guarantees that messages are both secure and tamper-proof, preventing unauthorized modifications and ensuring data integrity.
* Scalable and Fee-less Communication: Built on the IOTA Tangle, the protocol benefits from fee-less transactions, making it highly suitable for IoT devices that require frequent, small-scale exchanges of data. This eliminates the need for costly or resource-intensive operations typically seen in traditional blockchain systems.
* Decentralization: The IOTA Streams protocol is inherently decentralized, aligning with Self-Sovereign Identity (SSI) principles by removing the need for intermediaries or centralized authorities in managing the flow of information. This ensures that users retain full control over their data and how it is shared.  
* Flexible Data Streams: The IOTA Streams protocol allows for the creation of \"data streams\", which can be tailored to specific use cases. These streams are versatile and can be used for various types of data transfer, ranging from small IoT device communications to larger enterprise-level exchanges.
* Interoperability: Because it integrates seamlessly with the IOTA network, which is designed for cross-platform communication, IOTA Streams is compatible with a wide range of IoT devices and applications, making it highly interoperable across different ecosystems.
* IOTA Streams enhances the capability of IoT and decentralized networks by enabling secure, scalable, and private communication channels, offering key advantages such as lower operational costs and greater control for users. It is especially well suited for applications requiring secure messaging, such as IoT devices, digital identities, and supply chain tracking.  
The key feature of IOTA Streams is that access control is applied cryptographically and stateless, allowing messages to be shared over public networks like the Tangle. This means that each message contains the necessary information for authorized subscribers to decrypt it, while those without access to the corresponding encryption key cannot read the message. Encrypted data can only be decrypted by subscribers who have received the decryption key through a \"keyload\" message. Additionally, IOTA Streams is transport-independent, meaning it can be used over any transport layer.