Category Archives: english

Is There a Future for Blockchain-based Messaging Apps?

Blockchain enables building decentralized applications in a way that has not been possible before. This makes me — and others excited by this new technology — think continuously about the applications that can really benefit from this new decentralized infrastructure. As many blockchain enthusiasts know, there are not many clear cases where building a blockchain-based application would be superior to building an application using existing technologies such as cloud computing and web 2.0. The reason for this can be grouped into:

(1) Blockchain-based apps incur high overhead: To build a decentralized application on blockchain, you must be prepared for both the monetary cost of deploying and running smart contracts as well as the performance overhead as the latency to interact with smart contracts is high.

(2) Does blockchain bring a clear benefit to the application? Compared to other technologies, blockchain offers unique features such as decentralization and a natural coupling with monetary (cryptocurrency) functions. However, are these (and other) features of blockchain important for the users of some applications we consider?

Some time ago, I started thinking of messaging as a blockchain-based decentralized application. Would messaging be a good application in this domain? There is no doubt that messaging is one of the most widely used applications nowadays, across services such as WhatsApp, Telegram, Signal, and others. This is in addition to applications that have messaging as an integral function in their operation, such as online social networking applications. The question I ask is whether the existing (non-blockchain) structure of messaging apps is enough for consumers, or is there a potential for some users to find benefits in a blockchain-based messaging app?

To answer this question, let’s take the two points above on how to evaluate whether a blockchain-based app can be superior to traditional (cloud-based) apps. First in terms of costs involved. Messaging is an inherently decentralized/peer-to-peer-type application. When I want to message a friend, it is sufficient for my message to go straight from my device to their device. In fact, this is how many existing messaging applications operate today. This means that the majority of the operation of a messaging app is performed between the devices of the users (outside of the blockchain). This means that the costs involved are reduced. Operation on blockchain can be limited to being the address book of users.

Although this means that the core of the messaging app may not incur significant cost/performance overhead, this is only the case if we are willing to forgo some nice features that cloud-based messaging apps provide us. One feature is the ability to store messages on users’ behalf to make the delivery of messages more reliable and efficient. This, however, is not necessarily a fundamental problem or limitation to blockchain-based apps. Currently, there is significant progress in off-chain and layer-2 solutions that may enable supporting such functionalities without threatening the decentralized nature of the blockchain-based application (This is another topic that I may expand on in a future blog post.)

The second point to consider is whether blockchain offers a unique advantage that would incentivize (at least some) users to switch to a blockchain-based messaging application. Let’s see some of the unique aspects of blockchain and whether they are relevant to messaging apps. The first aspect is “decentralization”; the absence of a centralized entity to control the application beyond the deployed smart contracts. Messaging apps — similar to online social networks — are the topic of continued debates about data privacy and protection. A centralized entity that controls the messaging application is likely to find ways to profit from such control. The common way nowadays is through monetizing users’ data, through ways such as ads and selling to third-party companies. Decentralization can be a way to avoid such monetization of data. However, it remains unclear whether a significant percentage of the population would care about this issue enough to leave traditional (non-blockchain-based) messaging apps and accept the possible shortcomings of decentralized applications. Furthermore, centralization is actually desired in certain situations. For example, a centralized entity that can help prevent and control spam would be welcomed by many users.

Another advantage of building on blockchain is the coupling with cryptocurrency which may enable an easier way to exchange payments. In the context of messaging apps, this may offer an opportunity to build messaging apps that would have the functionality to send/receive payments without extra steps and integrations. This seems to be a feature that is anticipated by many users and several existing messaging and online social networking applications have already integrated or started integrating payments into their platforms. Whether the stronger coupling of payments in blockchain-based applications would make such integration easier and more natural for users remains to be proven as blockchain-based applications gain more adoption.

From a high-level view, there are some unique properties in blockchain that may make a decentralized messaging app attractive to a segment of users. In the blog, I mention some of these reasons as well as why they might not be strong cases for adoption. We should not think of these reasons as ones to prevent us from thinking about this further. Rather, I see them as a collection of goals to try to overcome in the quest of building blockchain-based messaging applications. The recent advancements in off-chain solutions, usability, and web3, may provide the infrastructure that would bring out the benefits of blockchain-based messaging apps.

What’s hot in systems/networking research?

What is the future of computer systems and networking research? This is what the joint NSF CSR/NeTS PI meeting helped me answer earlier this week. And the answer might surprise you! This meeting is hosted by the National Science Foundation (NSF) where more than 300 professors were invited to discuss what the next exciting challenges would be in the broad areas of computer systems and networking research.

csrnetsmeeting

The PI meeting was organized by holding parallel break-out sessions. Each break-out session has a topic of discussion and a lead. These topics of discussions were sampled from attendees and the organizers aggregated all the answers and came up with the program. The dominating topic in these break-out sessions was a surprise to me! Many would expect that the dominating topics would be machine learning and/or blockchain. (Machine learning DID come second in the aggregated answer.) Blockchain, however, was second to last and did not have a dedicated break-out session! The topic of discussion that was most requested in the PI meeting was edge computing systems! This translated into having most of the break-out sessions be about or around edge computing topics (9 out of the 23 break-out sessions here) and many of the rest of the sessions have edge computing and related topics as one of the points of discussions.

“The topic of discussion that was most requested in the PI meeting is edge computing systems!”

Seeing this was delightful to me, as I have started a couple of years ago working in data management for edge-cloud systems, and seeing that this area is recognized as an important area by my peers (and ultimately NSF reviewers!) validates my area choice. Nonetheless, I was surprised as I knew that there are overwhelming interest and opportunities in both ML and blockchain. But attending the break-out sessions helped me realize what is happening.

Unfortunately, all break-out sessions were in parallel for two sessions only, so we can only attend two! The choice was hard. I knew I wanted to go to an edge session — but there were so many! I ended up choosing to go to the session about “Computer Architecture for Edge Computing”, in which we discussed the challenges and opportunities in computer architecture for edge computing. In that session, I quickly realized why many PIs viewed the edge as one of the main areas of future research. A lot of them were already tackling problems in ML, blockchain, cloud computing, and others. And what many PIs realize is that utilizing the edge infrastructure can be a frontier to overcome the fundamental limits of today’s computing paradigms. Their view of the edge is as an extension to the cloud or to as a new infrastructure for their applications that would enable doing more compute and storage closer to users.

“what many PIs realize is that utilizing the edge infrastructure can be a frontier to overcome the fundamental limits of today’s computing paradigms.”

The edge seems to be the infrastructure that would enable many of the exciting emerging applications in ML and video-based social networks. These applications that deal with rich multimedia data and require real-time performance can only be realized by removing the gap between the users and the cloud, which is a natural role for the edge.

The second session I attended was the “Internet-Scale Distributed Systems” session, which asked questions about how to support emerging data-intensive applications such as 360-degree video streaming, and real-time analytics in applications like Industrial IoT (IIoT). The conclusion of that session was similar to the first one — the enabler of these technologies is an edge infrastructure.

The sentiment about the edge and how it can enable future technologies was clear. However, there are challenges in its way, as recognized by many in the audience. After all, the edge is not a new idea — it has been there for many decades and it has been already successful for streaming and content delivery applications. The reason for this renewed excitement about the edge is that it seems to have the potential to bring together a lot of the foreseen applications in ML, and cloud computing and making them a reality. From various discussions in both sessions, the main challenges standing in the way of this happening are the following:

“The reason for this renewed excitement about the edge is that it seems to have the potential to bring together a lot of the foreseen applications in ML, and cloud computing and making them a reality.”

From what was discussed, the main challenge, in my opinion, is a chicken and egg problem. Edge applications cannot be deployed without an accessible edge infrastructure. But, an edge infrastructure would not be built without a proven business model and business case for it. The edge infrastructure can be built by a big telecommunication company that already has the infrastructure around the country, by say placing accessible compute and storage service providers on their infrastructure. However, why would they make this investment? Would there be a return? If we do not want to rely on these big players and wait until they take the step forward, another approach to realize the edge infrastructure is to start at a small scale. Various small players (maybe universities!) could start building edge sites that collectively would be a playground for researchers and practitioners to prove the case for the edge from both a practical and a business perspective. This bottom-up academic edge infrastructure can be for the future global edge infrastructure what ARPANET was for the Internet.

“Various small players (maybe universities!) could start building edge sites that collectively would be a playground for researchers and practitioners to prove the case for the edge from both a practical and a business perspective.”

The other challenge deals with the right abstraction for the edge. It turned out that different communities have different definitions of what constitutes an edge environment and whether there is a need to draw a line between edge datacenters, telecommunication infrastructure, user’s stationary devices and mobile computing. The conclusion to this is to be aware of the differences between these abstractions and to be clear which one is considered in one’s work (and grant proposals!). Many shared the view that these represent natural tiering starting from the source of data until the cloud. An area of suggested research in one of the sessions is to build data management systems as a hierarchical design that adapts to the tiers of the users’ infrastructure.

Another concern that I had pertains to my interest in extending cloud applications to leverage edge locations. There are still many colleagues who have a traditional view of what an edge application is — video analytics in applications like surveillance, smart homes, cars, etc. These are definitely great applications that we should continue working on. However, there are more opportunities and applications that can benefit from the edge. In particular, many of the traditional web and cloud applications continue to increase their demands on data processing and communication. This includes video-based online social networks and VR/AR/MR applications. These applications are not only about detecting objects in images and rendering. Eventually, these applications are going to be tied up with a data application that would require real-time retrieval of data to be part of the experience of the video-based social network or VR/AR/MR application. Without this support, many of these applications are going to be stuck as single-user applications with simple functionality.

“There is something for everyone in edge computing. It is worth it to consider how your research problem/solution would be different if deployed on the edge. The reward could be great if (when?) the edge materializes globally.”

There were many other discussed challenges and concerns that I won’t describe in detail, such as security, privacy, policy, and education. We were told that the reports of all break-out sessions will be available online soon! I recommend to look out for them. My feelings coming out of the meeting is that there is something for everyone in edge computing. It is worth it to consider how your research problem/solution would be different if deployed on the edge. The reward could be great if (when?) the edge materialized globally.