Enabling micro-transactions in the Ethereum ERC20 based DataBrokerDAO IoT marketplace with the µRaiden framework
Within the context of the DataBrokerDAO project, we often get asked by the community why we chose Ethereum as an underlying platform. Mostly with comments on transaction speed and cost of the operations we like to use on a micropayment level.
First off, the more general reasons. ETH and ERC20 tokens are the most widely accepted cryptocurrencies across the board. Being widely accepted is essential for the marketplace, since the access to, and the liquidity of these tokens enables a well-functioning market.
For the technical perspective is the platform the most stable, versatile and it keeps moving forward at a rapid rate. The Byzantine release, the improvements in the Solidity language and future proof of stake changes attest to that fact. Other possibilities, Bitcoin and Iota among the most notable, are either not progressing fast enough, with enough features, or are unstable and not proven secure respectively.
Coming back to speed and costs of the micro-transaction in a marketplace, the rapid rate of innovation on Ethereum is providing better and better solutions every day. The one I want to highlight today is how we will be integrating state channels into the marketplace using µRaiden.
Please note that this does not constitute any relationship or endorsement of Raiden Networks for DataBrokerDAO, µRaiden is an open-source tool provided by Raiden Networks which we are using in DataBrokerDAO development
While the Raiden Network is not ready for prime time yet, its little sister µRaiden is an off-the-shelf, open-source micropayment solution which already helps to solve the scalability and latency challenges of many use cases today.
The main differences between the Raiden Network and µRaiden are:
- µRaiden is a many-to-one unidirectional state channel protocol, while the Raiden Network is a many-to-many bidirectional solution and implies a more sophisticated design of channel networks. This allows the Raiden Network to efficiently send transfers without being forced to pay for opening new channels with people who are already in the network.
- µRaiden off-chain transactions do not cost anything, as they are only exchanged between sender and receiver. The Raiden Network has a more complicated incentive-based off-chain transport of transaction information, from one user to another (following the channel network path used to connect the sender and the receiver).
In a nutshell, data buyers wanting to access a sensor owners generated data, will open a micropayment channel with the marketplace contracts and fund that channel with some DATA tokens. These escrowed tokens will be kept by a separate contract that manages opening and closing of these channels.
With these open channels, the heart of the system is revealed. It lies in its data buyer -> marketplace off-chain transactions. They offer a secure way to keep track of the last verified channel balance. The channel balance is calculated each time the buyer pays for a period of data. He is prompted to sign a so-called balance proof, i.e., a message that provably confirms the total amount of transferred DATA tokens. This balance proof is then sent to the receiver’s server. If the balance proof checks out after comparing it with the last received balance and verifying the sender’s signature, the receiver replaces the old balance value with the new one.
Using this technique, we can enable free, ultra-fast transactions with no long-term commitment of funds. Particularly as it is easy to close down a channel and recover any recommitted DATA tokens.
I would go as far as calling it the “holy grail of marketplace scaling”, but that would discount all the awesome things still in development, so let’s leave it at the perfect solution for our use case at this time.
Any questions, opportunities or partnership requests are welcome on any of these channels:
- Telegram: https://t.me/databrokerdao
- Facebook: https://www.facebook.com/DataBrokerDAO/
- Twitter: https://twitter.com/DataBrokerDAO
- BitcoinTalk: https://bitcointalk.org/index.php?topic=2113309.0