OpenChat puts code updates to the vote thanks to Internet Computer
Millions of people use messaging apps such as Twitter (now X), WhatsApp, Signal, Threads, and others to communicate online. Many businesses too, rely on messaging apps for branding, product announcements, and keeping in touch with customers. Typically, none of these account holders have any say in how platforms develop, unless they’ve signed up to OpenChat, which has a different view on the governance of messaging apps.
We’ve become used to the model of tech giants offering free or low-cost services in return for the insights gained from customer data. But the creators of OpenChat, which runs on the Internet Computer – a decentralized platform for hosting computer code, data, and compute (see below) – offer their app as an open internet service.
“This means there is no backing company tracking and selling your data,” explained Hamish Peebles, OpenChat co-founder and one of the Rust developers on the project, in an online introduction to OpenChat. “Instead, the service is owned and managed by the holders of the service’s governance tokens. And in our case, we will be distributing those tokens amongst the users.”
Changes to the open internet service are made via proposals, which are made public, and users who want to get involved in the decision-making process can vote on the proposed code or feature changes. Proposals that gain enough support are then adopted.
Also, to encourage others to get involved, contributions are rewarded with additional governance tokens.
“Nothing happens behind closed doors, everything happens out in the open, and everyone is welcome to get involved,” said Peebles, when introducing the project back in 2021. “And for those that just want to use [OpenChat] as a normal chat app, that’s fine too.”
How OpenChat on ICP works
The first step is to sign up – for example, by creating an Internet Computer identity. And users have the option to generate a passkey – a unique public/private key pair that is stored in the secure hardware chip present in smartphones and other messaging devices.
Messages carry an initial tick to indicate that they’ve been received by the OpenChat services and a second one appears when the correspondence has been read by the recipient. Users can add emojis to their messages and upload attachments.
Media files such as images and videos are rendered directly in the message panel, and other file types are badged as a downloadable attachment. The OpenChat team recently launched a communities feature and has a roadmap of technical updates advertised online.
Notifications and messages can be sent between browsers using peer-to-peer Web RTC connections that are brokered using the OpenChat service operating on the Internet Computer, according to co-founder Matt Grogan – another software engineer working on the project. And this enables extremely fast messaging – for example, when two users in a conversation are both online.
Search data is available on a user’s own chat canister secured on the Internet Computer. And this means that a user can query their entire chat history from any device.
Another feature of the service is the ability for users to send so-called Cycles to each other. “Cycles are similar to gas in Ethereum, and are used to pay for Internet Computer resources down to the CPU instruction and byte of memory,” Grogan explains.
The basic unit of Cycles is in trillions, and this is a good point in the story to answer the question – what is the Internet Computer?
What is the Internet Computer?
To borrow the words of Dominic Williams – Founder and Chief Scientist at DFINITY, the foundation responsible for building the federated computing resource – the purpose of the Internet Computer project is to ‘extend the internet and make it far more powerful’.
Rather than have services hosted by private firms in the cloud, the Internet Computer aspires to provide a worldwide compute platform. And Williams dubs the project ‘the third great innovation in blockchain’, with the first being the invention of Bitcoin in 2009 – conjuring up the notion of digital gold – followed by the second milestone of smart contracts on Ethereum in 2015.
A decade ago, Williams witnessed how blockchain could do much more than enabling cryptocurrencies, and could be used to host computer code (smart contracts), data, and – critically – computation. Internet Computer smart contracts can deliver user experience (UX) by processing HTTP commands, which sets the platform apart from other projects.
Also, recent developments mean that Internet Computer nodes can talk to Bitcoin nodes. “That enables smart contracts on the Internet Computer to directly process Bitcoin on the Bitcoin blockchain without the need for bridges,” said Williams earlier this year, recapping the project’s achievements so far. “The next step is to integrate with Ethereum.”
The Internet Computer’s governance system is known as the network nervous system (NNS) and it provides the means for an adaptive blockchain, where protocol upgrades can be introduced without having to perform hard forking.
Williams points to other efficiency gains too. He believes that the Internet Computer’s crypto cloud can be more efficient than centralized tech in the end. The foundation has worked with Carbon Crowd on a ‘Proof of Green’ initiative. And it’s been reported that a single Google search is four times more energy intensive than a transaction on the Internet Computer.
OpenChat – one of a number of Internet Computer apps – is hosted across independent data centers running Internet Computer Protocol (ICP). And some believe that ICP could be a potential replacement for legacy IT stack, considering not just messaging applications, but other products too.
Software is reimagined as interoperable compute units known as canisters, which comprise a bundle of WebAssembly byte code and associated memory. Parallelizable, canisters run at web speed, and can be used to build various services from websites to enterprise systems and industrial platforms.
Developers write code in any language that compiles to WebAssembly, such as Rust, and then upload the resulting canisters to the Internet Computer through ICP. The architecture is said to eliminate cloud services, database servers, web servers, and the use of a content distribution network to speed up delivery.
Williams goes as far as to say that the approach even does away with firewalls as canisters run within a tamperproof environment. Supporting the system are node machines (arranged as subnets) that host the canisters, with everything permissioned by a so-called network nervous system.
Looking at the Carbon Crowd Internet Computer dashboard shows that the majority of nodes are hosted in Switzerland (DFINITY is headquartered in Zurich), with a total of 26 data centers and 66 nodes providers worldwide.
Internet Computer architecture explained by Dominic Williams.
In OpenChat, canisters are created when users register for the decentralized messaging service. They hold direct chats and list which groups a user belongs to. Cannisters also behave as individual user wallets by linking to a ledger account.
System security comes from the fact that the canister’s user is the only person with permission to instruct that canister, which also benefits voting rights. The one user, one canister approach also makes the system highly scalable and avoids having to shard users as the platform grows.
OpenChat was hugely successful earlier this year in raising ICP funds, with the Internet Computer community endorsing the project. And now it’s in the developers hands to live up to those expectations and deliver a decentralized messaging app to rival WhatsApp and other big names in chat services.
Practically, for the OpenChat team, that means ramping up from tens of thousands of daily active users to hundreds of times more and beyond.
29 September 2023
28 September 2023
28 September 2023