IOTA Foundation adds IOTA Streams to its growing product portfolio; reaching new levels for data sharing, security and control on connected devices.
Authors: Mathew Yarger & Jonathan Shaffer
The IOTA Foundation is excited to announce the final release of the IOTA Streams Alpha!
Visit the IOTA Streams webpage!
Today, we’re excited to announce the final Alpha release for IOTA Streams, an open-source DLT framework for decentralized data streaming and encryption on embedded systems.
IOTA Streams brings granular data access and sharing to connected devices and other IoT integrations. In essence, it gives data producers fine-grained control over who can access the data that they produce; whether from a mobile device, environment IoT sensor, connected vehicle, Industrial IoT solution, or something else.
This post will focus primarily on the vision for IOTA Streams. For a more technical explanation, you can read our recent posts about Streams here and here, as well as the documentation and newly-released specifications.
Chrysalis Phase 2 Integration
First off, why are we still in Alpha? Streams will remain in Alpha until it has transitioned to the Chrysalis phase 2 protocol upgrade. When updated for full feature compatibility, Streams will then transition to Beta.
What follows is an explanation of IOTA Streams, the problems it solves, and the novel use cases it enables.
Streams is all about data
Devices generating data create value. That value can only be captured if the data is protected. Waiting until data reaches the cloud introduces many security risks, including risks of data theft, manipulation and single points of failure. IOTA Streams was created to secure and structure data on the device itself. Using cryptography, tamper-proof historical verification, and data ordering on the Tangle, we can secure the value of data at the point of creation.
In our recent IOTA Access release we talked about the necessary balance between decentralized technologies and centralized processes. The same balance is important for data. We see constant headlines about our data being stolen when centralized databases are compromised. Immutability and decentralization of data through a distributed ledger like IOTA can help to alleviate such threats, but not all data needs to be decentralized all the time.
IOTA Streams was created so that users, organizations, devices and systems can incorporate tamper-proof data where it makes sense. If the data needs quick processing with minimal security, like streaming videos online, that would not be an appropriate use case for Streams. Where data is valuable and needs to be secured, Streams can provide that protection.
IOTA Streams is a Layer 2 Technology
IOTA Streams is designed to complement other IOTA Layer 2 frameworks, like IOTA Access (announced late September). Building with an embedded-first approach, our tooling is lighter, more efficient, and hardware enforceable.
To secure data from a device, structure it in an easily consumable fashion, and share it securely, the operations need to be conducted on the device, on premises, or on chip depending on the use case. By enabling these functions as an embedded integration, something important is enabled — the “Own your own data” movement.
For an idea of how valuable your data can be, take a look at John Ellis’ presentation on “The Zero Dollar Car.”. Ellis estimates that a family of four’s Google search data amounts to $5500 in value a year. This is based on standard use of laptops, mobile devices, and tablets alone. Once we add vehicles with Android Auto or Apple Carplay, smart home devices such as Alexa or Google Home, Ring, Nest, and the growing range of other IoT Devices, then that $5500 estimate becomes significantly more. With the Zero Dollar car, Ellis outlines how this data can actually end up being more valuable than the vehicle itself.
What if we could take that data and recuperate its value against the cost of purchasing the vehicle?
Imagine the impact that value could bring to individuals and families struggling through the current economic climate brought on by the pandemic. With increasing numbers of job losses, conversations around Universal Basic Income and growing income inequality, being paid directly for your data could be an important part of the solution.
Data Privacy and Security
But what if you don’t want your data being sold? Some people simply find their privacy more important than the value obtained from selling their data. With this in mind, by paying to keep our data private certain products would stay at cost price. But if we wanted a cheaper product, or potentially free products, we could have the option to opt in to sharing the data we produce on those devices.
With existing centralized systems, these types of scenarios may not be possible due to where the data is stored and who owns it. The vision can only be achieved if built in a way that is verifiable and enables accountability.
Taking that storage and management away from a centralized system, allowing the structuring and processing of that data in a granular way, and doing so with a framework that creates an intrinsic level of trust, offers a unique opportunity for a more fair system to be put in place. Building embedded first allows it to scale up, from the lightest most resource-constrained devices, to cloud integrations and enterprise-scaled solutions. Allowing for a future where everyone can take control of their own data, and generate revenue based on their level of comfort and personal interest.
If you are interested in supporting sustainability initiatives, you could integrate weather sensors and emission monitoring to measure your own impact through your vehicle and home. You could sell that data so that climate researchers, local governments, and sustainably focused organizations can start being proactive in their efforts instead of reactive.
Big businesses and enterprises face a number of concerns around data. Consumption of their employees’ data puts the products and services they offer at risk, impacting their ability to protect their intellectual property. They need ways to verify that their business efforts remain protected and private. Businesses also want to build products and services that harness the value of data themselves. Do they want the risks and possible regulatory consequences of managing their storage?
So how can businesses take advantage of data, without substantial infrastructure costs and the risk of regulatory consequence? By putting their users and customers first, and letting them make the choice. Incentivizing their customers to share their data, but not taking advantage of them. And doing so in a way where the customer has control. If they want to share their data, they can choose to do so and get paid for it (preferably in IOTA of course). When they no longer want to share that data, they opt-out. This way the situation is fair to the customers, and fair to the business.
The goal of IOTA Streams
This is the fundamental goal of IOTA Streams and encapsulates what it stands for — granular control over data and reduction in reliance on centralized systems that take advantage of data.
Streams is another example of how the layer 2 capabilities of the IOTA protocol are focused on enabling utility. Scale is already baked into the Tangle and there are no fees. It’s time to show that decentralization can create a real impact on the way systems are designed and solutions are built. Lowering the barrier to entry, enhancing transparency and accountability, increasing the efficiency of existing solutions and raising the bar for ethical use and management of data.
Try It Out!
We are pleased to announce that we are now releasing our draft specification for IOTA Streams. You can view the specification here.
We welcome feedback on the specification, as we continue to improve it. We would also like to note that once Streams has been upgraded to Chrysalis Phase 2, the specification will be submitted to the OMG Request for Proposals (RFP) for Linked Encrypted Transaction Streams (LETS).
To get started with development, you can view a tutorial on building a messaging app here.
For an understanding of how streams works under the hood, you can read the documentation page and review our recent pre-release announcement. Examples of single and multi-branch channel implementations can be found in the examples repository.
Programming Language Support
As mentioned in our recent release of IOTA Access, the Rust programming language has been chosen for most of our products. Continuing on this path, the Streams Library and Channels Application are both written in Rust. However, we also have plans to develop a C library to cater for certain embedded applications.
At the moment, IOTA Streams includes the following crates:
- Channels Application contains the Channels Application;
- Core layers contains the Spongos automaton for sponge-based authenticated encryption, pre-shared keys, and pseudo-random generator;
- Keccak for core layers contains Keccak-F as Spongos transform;
- Curve25519 asymmetric crypto contains Ed25519 signature and X25519 key exchange;
- DDML contains a data definition and manipulation language for protocol messages;
- Application layer for common Application definitions;
- Bindings contains the C bindings;
- Specification is the Streams Specification in PDF form (Markdown coming soon).
The introduction described the path towards Beta and Production Readiness. Internally we have been working to define what this means from a product perspective. Accordingly, we consider production readiness accomplished once the following criteria are met:
- Initial Product Benchmarks are robust, finalized, documented and reviewed.
- Initial Product Specifications have been finalized. Specs have been reviewed by partners and the ecosystem, and are being pushed forward towards standardization with OMG .
- SDK structure is thoroughly refined and includes product demos for the IOTA Community and partners to build upon.
- Supported hardware references are available for easy testing and integration.
- Full in-depth Security Audits have been completed by third parties.
- Bug bounty programs have been set up.
- Verification and Regression Testing is completed and well documented.
- RFCs have been published and merged to enable community involvement.
Market Adoption Requirements:
- Supporting partners are confirmed and participating in product testing and review.
- ELI5 and other documentation are readily available, including:
- Industry-specific 2 pagers for Mobility and Automotive focus cases.
- Industry-specific 2 pagers for Global Trade and Supply Chain focus cases.
- Case studies of completed pilots.
- Product whitepapers.
- Introduction deck with example user stories.
Call for Collaboration
The possibilities are numerous, and we’re just getting started.
IOTA Streams is now in its final stage of Alpha development. The IOTA Foundation will continue to adhere to our dedication to open-source and will continue to work to enable our ever-growing ecosystem to put Streams into practice.
As the IOTA protocol continues to evolve, products built on the second layer will continue to be refined before Beta and full production readiness. We’re always looking for more partners and contributors to the project. You can directly reach out to us if you want to be part of this initiative.
Jonathan is leading the IOTA Streams X-Team, a group of community and IOTA Foundation members working together to improve IOTA Streams. To get started, discover the IOTA Experience Teams on GitHub and apply through this form.
We welcome the IOTA Community to contribute to the development of IOTA Streams. Reviews and comments on the Streams Specification are also welcome.
The efforts during Q4 2020 will now focus on making Streams compatible with IOTA Chrysalis Phase 2.
As always, stop by on Discord on the #streams-discussion channel to share your experience with this release!
Follow us on Twitter to keep track of all the latest news: https://twitter.com/iotatoken