Could someone brief about the Gem's cloud service?
Aren't things getting centralized in here?
There are two main concerns with a centralized system.
The first concern is anonymity and privacy of Gems users. Centralized systems are more prone to be monitored by external entities - for example, a government agency with a warrant for access to our servers. This concern is actually not specific to centralized systems and a good security policy assumes that all traffic is always being monitored by external entities - even if the network is completely decentralized.
The Gems network operates under this assumption. Secure messages via Gems are encrypted client-client. This means that these messages cannot be monitored by anyone except the two members of the conversation. This includes anyone listening in on the traffic transmitted by the mobile devices and this even includes the server itself. In other words, this means that the servers cannot decrypt the content of these messages. In any case, the encrypted messages are only held by the server in the short time until delivery, so history of the entire (encrypted) conversation is never stored anywhere except on the mobile device itself.
The second concern is robustness of the network and the ability to freely and openly scale the network in the hands of third parties. In the Gems ecosystem, this means third parties will be able to add their own server nodes. Since server nodes can't access the content of secure messages, there is no security concern with adding nodes. This can roughly be compared to how third party routers in the Internet route your traffic to its destination.
The Gems message routing protocol is based on an open source framework (SignalR). It was designed to support multiple distributed nodes in order to support massive scale (a single server will never be able to support millions of users). We plan to open source the Gems message routing protocol and allow third parties to add new server nodes to the network. Mobile clients will be able to connect to these nodes and send messages through them just like with the original Gems servers.