Cyber•Fund is introducing a series of publications that provide an overview of some of the best speaker topics we’ve hosted at our meetups. Vadim Makovsky — CEO of Multy with more than 10 years experience in business development — spoke about the multi-cryptocurrency mobile wallet.
Ideology
The basic mission of the Multy project is to make cryptocurrency easy to use and accessible to the general public. Makovsky emphasized the company’s goals and principles as follows:
Support the ideas of Blockchain technology that include: openness, prevalence and security
Project must be open source
Application should work quickly, be simple and provide additional security and reliability
Architecture
The architecture of the project includes the following components:
- Android and iOS apps
- Firebase for push notifications
- Main backend of the project written on GoLand
- Native nodes of Bitcoin, Golos and Ethereum
- Clients between native nodes and main backend
- Blocksafe and Poloniex third-party services
Ameliorated Development Issues
Problems arose when choosing a client node for working with specific chains. In the Bitcoin chain there are currently two main representatives: bitcoinD and btcd. After testing the two clients Multy decided to use btcd. For the Ethereum chain two main representatives exist: Geth and Parity. Geth better suited the needs of the project because it is written in GoLand, which makes it more convenient when using the testnet. The issue with Golos involved deciding upon which node to use: a full node, delegate node or client node.
Ameliorated Client Issues
Btcd Client
This client is barely configurable with no method to send a raw transaction via the Go client. The btcd client also specifically supports socket connection, but these sockets are implemented using TLS (cryptographic protocol providing secure data transmission). Socket connections are organized through TLS, which are created in non-container containers, unaccepted and impossible to connect to the node.
Geth Client
This client is also barely configurable and it is necessary to manually manipulate the genesis of the block of the chain itself. Sometimes the node stops synchronizing and web sockets do not always work correctly.
Golos client
This client is easy to configure and to date, there are no detailed instructions for launching the Golos node.
Problems Revealed
During the testing process the following chain protocol issues were revealed:
Bitcoin Network
There are three versions of the official documentation for serializing transactions, but none of them work. This network also has a contrived system of inputs and outputs. No wallet, except the Multy wallet, can guarantee the full control of funds up to Satoshi. This is due to the fact that the commission for a transaction is determined after this transaction is formed.
Ethereum Network
This network uses a non-standard SHA-3 implementation and has a weight of 592 GB. Similar to the Bitcoin network, a user cannot commit to a transaction with the same accuracy as to Satoshi. There are also cases of canceled transactions, where a single transaction cannot include multiple recipients. Tokens are not registered in the balance of users, but rather stored in smart contracts.
Golos Network
This network is unsystematized and lacking complete documentation, however, it is important to note that the Golos team is aware of these issues and will soon have them resolved. Also, the Golos node occupies a significant amount of Ram at 64 GB.
The Solution
In order to simply the processes and make the application more functional, the developers of Multy divided the transaction into logical blocks as depicted on the five screens below.
In the first block they substitute the address, after which two requests are made to the server and the amount of commission is determined. Then the user sets the transaction amount and is directed to the final screen. Put short, everyone expects great things from this project; especially due to the fact that there currently is no strong, mobile multi-cryptocurrency wallet on the market.
For more information feel free to contact: pr@cyberfund.io