Platform corporate blockchains Exonum is fixed in the Russian market. The largest outside China mining company Bitfury Group opens representative office in Moscow. The main task of the new office will be the development and promotion of Exonum — open software platform for the creation of the block chain. How does the new platform, and what advantages does it have over other correspondent bits.media told Rust developer in Exonum (project Bitfury Group) Alexey Sidorov.
Bits.media: Alex, tell us what is the platform Exonum?
Alexei Sidorov: Platform Exonum is a framework open source. He is a skeleton on which developers build their blockchain.
Exonum has a number of features that distinguish this framework from other blockchain platforms.
First, the platform Exonum designed to create a private blockchains. That is, it works only on computing nodes validators who are interested in this system and ensure its reliable operation. The system does not require mining and does not depend on the exchange rate of a cryptocurrency.
Second, as a private blockchain, the system has high performance. The speed of the blockchain Exonum in the tens or even hundreds of times higher than the competition, namely: 5000 transactions per second with a delay of 0.5 seconds.
In addition, Exonum has multiple architectural features. First and foremost is the presence of «Byzantine consensus». That is, the system continues to work correctly even if up to a third node-validator compromised or behave in an arbitrary manner. The second feature is the presence of procedure “of Bitcoin anchoring”. She regularly sends the casts of the system state, that is, its hash, the Bitcoin public blockchain and eliminates the possibility of tampering of private blockchain Exonum and rollback of the system by collusion of nodes.
The third key feature is Exonum thin client (Light Client) by which the end-user to easily check the presence and correctness of user’s data, which he sent to the Exonum, as well as the status of anchoring.
Finally, Exonum uses the services that are counterparts of smart contracts in the systems of competitors. However, in contrast to smart contracts, services Exonum programmed to be more flexible and can be adapted in accordance with the requirements of the particular network.
Bits.media: what are the benefits of the platform over similar?
Alexei Sidorov: Exonum allows both private companies and public bodies implement a safe blockchain. Its benefits stem directly from its architectural features. For example, technology makes it impossible to do in the organization of double-entry bookkeeping and protects against forgery of documents whose hashes were made to the blockchain. That is, the user hashes a document and stores this hash in Exonum. Requesting confirmation system, he may at any time confirm the existence of this document.
The system can withstand high loads and retains the high performance that is a plus in the issue of scale of projects, particularly those that unfold at the state level.
Bits.media: As the infrastructure Exonum applied the blockchain?
Alexei Sidorov: As mentioned earlier, the platform Exonum is a framework for the development of the private blockchains. The platform runs on selected known nodes-the validators that make up the network, where each node retains a copy of the state of its database. Any atomic changes that apply to the database (for example, entering information about the registration of the contract on transfer of property rights), is a transaction, which by way of agreement nodes are processed in blocks form the blockchain.
The technology is based on a Byzantine consensus algorithm. This algorithm is mathematically justified and does not require economic guarantees correct operation of the network participants, for example, rewards in the form of tokens, as in the case of proof-of-work or proof-of-stake algorithms and their alternatives.
To disrupt the network, based on Byzantine consensus, an attacker would need to hack more than one third of nodes in the system, and to obtain control over the network, it is necessary to crack even more than ⅔ of the nodes in the network. In other words, the system is able to correctly generate and make the blocks as long as the number of compromised nodes in the network will not exceed ⅓ of the total.
Also Exonum no concept of a fork. That is, the Byzantine consensus algorithm guarantees the absence of multiple parallel chains. If a transaction got into a block, it is guaranteed to exist during the entire lifetime of the blockchain.
Bits.media: ensuring a high level of security?
Alexei Sidorov: High security is ensured by the binding Exonum public blockchain of Bitcoin. The distinction of public from private blockchain lies in the fact that the number of final participants are not limited to: anyone can join the network and to access its data base. This ensures the integrity of the data contained in it, as well as the possibility of an audit at any time. For hacking such a network you will need incredible energy and financial resources.
In private blockchain, since the number of nodes is strictly defined, furthermore, each node is the administrator, there may be a mistrust from users regarding the honesty in the behavior of nodes and correctness of stored data. To the administrators of the host validators are unable to collude and rewrite the blockchain, and to protect the network from mass hacking of nodes, a hash of the database state Exonum with some frequency in the form of multisig transactions are in the blockchain of Bitcoin, then there is the so-called “anchoring”. Information included in Bitcoin can not be tampered with in any way. If private blockchain is compromised or simply rewritten from scratch, it will be immediately obvious: on the same height of the hash of the “new” state of the blockchain Exonum will not be the same one that was Sankaran in Bitcoins.
This service is in fact the issue of security equates to a private blockchain Exonum to the public.
High level of security contributes to the storage of data in the Merkle tree. This storage format allows to provide the user with evidence of the existence of any data in the blockchain, including the availability sankarani data in the blockchain of Bitcoin.
Bits.media: What is the guarantor of the security of the platform?
Alexei Sidorov: data Security guarantees the algorithm for Byzantine consensus. At each height of the blockchain “N” the procedure of reaching consensus may take several rounds. The loop of the algorithm of consensus for the adoption of a new block in the blockchain, relatively speaking, has two stages. In the first phase in each round is chosen by a node leader (there is a separate algorithm for selecting a node leader). The leader makes the unit offer (proposal) and distributes it to all nodes in the network. Validators vote for the proposal, sending messages like prevote. This means that the validator has reviewed all transactions within the proposals and none of them were unknown to him. In the second stage, after the validator has collected more than ⅔ of the prevote messages from other validators, it performs the transaction specified in the offer, and sends a message of type precommit. The message contains the result of the execution of the proposed transaction in the form of a new hash of the network state (state hash). This message is confirmation that the sender is ready to accept a block in the blockchain, but must obtain the consent from the majority of other validators in the network. Finally, if the validator fails to collect more than ⅔ of precommit messages containing the same hash state on the results of the same proposals, this new block added to the blockchain.
Bits.media: How to implement a check transaction from a technical point of view?
Alexei Sidorov: New transactions are being entered into the so-called pool of unconfirmed transactions (memory pool), the user receives the content hash of that transaction. As soon as the transaction gets into the block, its hash is stored in the database. In a further transaction with the same hash cannot be posted again. This approach ensures that if, for example, a transaction to transfer funds will be intercepted by an attacker, he cannot perform it again and again for the full withdrawal of coins from the purse of the sender.
Bits.media: Platform Exonum written in Rust. What caused the choice of programming language?
Alexei Sidorov: first, Rust is one of the most secure programming languages. While Rust on many issues more versatile tool than Java, C and C++.
Second, Rust impressive number of utilities. This is a very convenient package Manager that easily allows you to connect any library.
Third, the rich Rust of the ability of code generation, which we are now actively used. Thus we do not need to use external utilities.
Rust protects us from many programming errors. For example, from data races when multiple threads try to simultaneously change the same variable. Of course, sometimes we have to fight with Rust. For example, he often tells us that one or the other variable is already in use by someone else, so we can’t continue to write. However, Rust is a very good friend of ours. If he missed any code, this code is guaranteed not to break. Rust will not allow that we use a reference to some variable and then this variable disappeared.
Bits.media: How does the platform works with smart contracts?
Alexei Sidorov: Smart contracts we conventionally call services. The business logic of these services is written in the same language that the platform itself Exonum — Rust. Thanks to this smart contracts Exonum have higher performance and speed than the analogs. In addition, Rust has high safety, so after an error in a smart contract, the attacker will not be able to hack the validator.
Bits.media: Where already used Exonum?
Alexei Sidorov: One of the most famous projects Exonum is a pilot project for the introduction of the blockchain in the land registry in Georgia, namely the establishment of a registration system of ownership rights for citizens of Georgia on the blockchain. The project started in 2016.
In Ukraine was a pilot for the land registry. Also successfully transferred on the blockchain, the electronic trading system of the seized property.
Recently another pilot project with the Federal registration service. The first step was the translation of the process of registration of contracts of share building on the blockchain. The contract is registered only after confirmation of the transfer of the insurance premium to the Fund for the protection of the rights of participants of shared construction. The blockchain is used in the interaction of rosreestra with the Fund, optimizing the time of confirmation to 3-5 minutes, which is 10 times faster than normal operation.
Also interesting is the case of the use of the platform Exonum for Aricent, a global engineering research and design company. They created a series of pilot projects to improve the efficiency of the process of software development (DevOps). According to internal research themselves Aricent implementation of the blockchain at tracking DevOps processes led to the acceleration of the development cycle of products by 34%.
Bits.media: How do you plan to develop the platform further?
Alexei Sidorov: At the moment we are focused on the development of convenient solutions for the further development of the platform. Exonum now shows high performance, however to achieve it it is not easy because of the stringent code requirements of the services.
We are looking towards a separation of services on various «trusted zone». So, each person that uses Exonum, you will be able to write simple services and upload them in the blockchain immediately. However, such services will not give great performance, they will be limited in resources. On the contrary, the «trusted» services, which have been security checked and verified by the validators will be able to access more resources, but the procedure expand would be more difficult. Now Exonum present only services of the second kind.
We are actively exploring WebAssembly with our colleagues from Parity Technologies. With a lightweight virtual machine WASM, we will be able to allow developers to implement services in many programming languages. It is also useful for those projects that want to use Exonum in the format of «public-permission»: to create the blocks can only validators, but to use bloccano anyone can.
We work with storage area description of the database in the blockchain. Such a description allows you to automate many things that now developers have to implement manually, for example, customization of the thin client to check proofs. With this description verification evidence will look as a call of one function and not several. But, more importantly, a single thin client can easily connect to multiple blockchains in Exonum. Just imagine the app, which contains all your accounts when you work with Exonum-ohms, and it is automatically updated!