Status, a hybrid between a decentralised, encrypted instant messenger and a Web 3.0 browser, has announced the release of its alpha stage. In an effort to provide a gateway to the decentralised application ecosystem, Ethereum-based Status runs on Android & iOS. The developers hope that with this release Whisper can be tested on a larger scale in order to find bugs in the basic functionality and to improve the features of Status, which in itself is in a very unstable state.
The platform has implemented Hierarchal Deterministic Keys (BIP32, BIP39, BIP42) in Go. This allows the provision of keypair recovery via passphrase and password, as well as to have a recoverable identity in Whisper that can be transacted with. In the future the team plans to implement ways to make Rainbow Table attacks impractical, give plausible deniability on contacts, and decentralise the information load.
DApps available at the start of the alpha are Wallet and Jarrad. Wallet can currently be used to manage your transactions, see your current balance, send ETH to and from addresses, and contacts within Status. Wallet also exposes two commands !send & !request to be used in chat for doing transactions within the chat context. Jarrad on the other hand, is human contact (who is in fact the co-ounder of Status) to converse with.
Currently, Status supports One-to-One and Group chat, One-to-One is uses ssh.post, its application protocol makes up for the lack of inboxing in Whisper — the message it is not stored anywhere, instead, it bounces around the network node-to-node until its TTL expires. The lack of inboxing is overcome by using a logic clock for stable chat history and message acknowledgment and message re-transmission.
Group Chat however, is not implemented in the current versions of Whisper. The current application protocol allows for the group creator to add/remove users — the group conversation is encrypted and sent over a topic. The group owner sends a new keypair to each participant in the group every time a new person is removed.
There are some known issues that we may face in the alpha. The first is peer discovery. In go-ethereum, peer discovery happens over UDP, which is a problem for some mobile carriers as UDP can be firewalled on 3g/4g connections.
Most of the Ethereum network does not support Whisper, the SHH protocol is not enabled by default. Furthermore WhisperV5 has made it into go-ethereum 1.5 — however at the time of writing it is unstable so Status is using WhisperV2.
To alleviate these main issues for the alpha, Status is running 5 testnet LES servers with shh v2 enabled and Status is aware of these nodes. However if they become saturated with connections and mobile carriers block UDP users will have to resort to a Wifi connection to discover more peers.
Another issue is one of convenience and a requirement for mass adoption . Because of Whisper’s ‘DHT-UDP’-like nature, receiving notifications when you don’t have Status open is an issue which may not easily be solved because of the inherent way p2p technologies work and battery consumption management on mobile devices.
The Discover function lets users find people and DApps by hashtags, in the hope that this will help increase market liquidity and token utility by making it easier to find interesting things in the Ethereum network. There is a known issue with discover messages in that they are not signed, so they can be tampered with on redelivery. This will be solved with ecrecover.
Status is also multi-lingualand supports around 30 languages, including English, 官話, 官话, 廣東話, 上海话, Nederlands, Français, Deutsch, हिन्दी, Magyar, Italiano, 日本語, 한국어, Polski, Português brasileiro, Português europeu, română, Slovenski, Español, Español (Latin-America), Swahili, Svenska, Suisse française, Schweizerdeutsch, Svizzera Italiana, ภาษาไทย, Türkçe, русский, українська, اُردُو & Tiếng Việt! however, in-house only Russian, Ukrainian and English are spoken.
For Beta, Status is looking to implement:
- Importing of Wallets
- A feature to import existing wallets and attach them to your account.
- Solidity Support
- The possibleity to compile Solidity code on the device.
- Developer tooling & expose Chat API
- How to run the swarm daemon and adapt the webview client to make bzz URIs available.
- Storage to put the blockchain data.
- Camera for profile picture and for reading QR codes.