Preview of Asch Verision1.3 (part 1)
Asch is a decentralized application platform. It provides a public chain which we called the main chain and an suit of application SDK. Anyone can develop a complete and independent blockchain application based on this sdk. The application developed based on this sdk could transfer property with the main chain by trans-chain protocol. We choose this architecture to solve two problems: one is flexibility, the other is coupling.
Let's talk about flexibility first.
As we know , the transaction throughput of a blockchain system is still very low which also can't be increased by adding more nodes or shards which in contrast will decrease it hence every full node in the blockchain system maintains the whole ledger.
Anyone who has developed a distributed software knows that the performance of a distributed system can be reflected in two aspects: the read performance and the write performance. The read performance can be improved by replication , like master-slave backup or one master multi slave. Whereas the write performance can be impoved by sharding. Different transactions were transfered to different nodes, each node is a shard. The replication mode and the shading mode can also be combined , each sharding node has multi replication nodes so every sharding node becomes a cluster. This is a way to improve write performance in a high architecture level. Because of this low write performance, we can understand the reason why blockchain system can not reach a high transaction throughput. The mainstream blockchain system is a replication system without sharding mechanism which results in a high read performance and high level security while the write performance can't surpass a single computer.
How to increase the throughput while keeping high level security?
Generally, Asch is a multi-chain system (the main chain and the application chains), the application chains are independent of each other, and they are in parallel. Although every independent chain is not scalable, the scalability can be achieved by adding a new chain. This method will not reduce the security since the consensus algorithm used by the Asch can make the system to get away of the security issues caused by the power dispersion from adding chains.
Finally, I think a block chain system should be decentralized sufficiently, but it is not necessary to be highly decentralized (just like the Bitcoin). Many anarchists scoff at the consortium blockchain, arguing that the system cannot resist to the DDoS attack and the government intervention. However, I do not think resistances to the DDoS attack and the government intervention are two indispensable features of a block chain. What’s more, resistance to the DDoS attack can be achieved by the traditional network protection methods, and being highly centralized is not the only way. I will not talk about the government intervention here since it is not our original intention of developing the Asch. Apart from these two features, we can see that the advantages of the block chain, including the tamper resistant, publicity, decentralization and no single node failure, are still there. This is the reason why the Consortium blockchain will exist. (ASCH sees itself more as is a public chain)
As a whole，ASCH which includes main chain and application chain is a multi-chain system. Each application chain is independent of each other and also parallel. While each individual chain is not scalable, it can be scalable by adding new chains without compromising security, because the consensus algorithm adopted by ASCH determines that the system does not cause the problem of security by adding new chains to compute force.
Finally, I think a blockchain system needs to be sufficiently decentralized, but it doesn't have to be very decentralized just like BTC. Many anarchists sniff at the alliance chains, arguing that it was hard to resist ddos attacks and government interference. But I do not think that it is essential for blockchain to resist ddos and government interference. And anti-aggression can be solved by traditional network protectional measures, rather than having to be extremely decentralized. I'm not going to talk about the latter question this time, beacuse it is not something that wedevelope ASCH. Without these two features, the blockchain still has the advantages which istamper-proof、open and transparent、decentralized and preventing single point of failure.As we know,crucial advantages are still there.That's why alliance chain exists.
Actually in the time of version 1.0, the set of technical architecture has a prototype. But some details are not perfect. For example, the main chain of version 1.0 only supports single currency. Dapp can only communicate with XAS. Although Dapp can customize the new assets, it can’t communicate with the main chain and the application scenario is very limited. Version 1.2 solves this problem by adding the function of issuing assets in the main chain. In addition, the cross-chain before version 1.3 is relatively simple, and the asset interoperability between the main chain and application chain is achieved through a multi-signed managed account. The number of multi-sigh users that can be set for this account is up to 16 and can’t be updated. But version 1.3 solves the problem. And there is also an important issue that the complexity of the Dappframework,which will achieve a business logic in version 1.0, having the need to fill in redundant code, even for the bottom database process. That is very unfriendly to developers. Version 1.3 will save this problem, too.
The last problem is the performance of the Dapp. We implement a tool called Smartd, It encapsulates access to the cash and database and supports different granularity of the automatic rollback mechanism. The developers only need to be concerned about the need of increase or modify the data, without having to worry about whether the data is in memory or disk and the operation of the data is successful. in the support of smartdb, Dapp can not only have high performance, but also maintain the simplicity of the code at the same time. (The difficulty of the development is close to Ethereum ’s solidity, and far lower than lisk. )
The article will be divided into two parts. The first part is about introducing some knowledge of backgrounds and the main updating contents of version 1.3. The second part will explain how to achieve the function through technical code analysis.
The development of the version 1.3 is close to its end. The current test and completion of the document are in the progress. It will first be released to testnet in about one week. After 1 to 2 months test run, the version 1.3 will be published to main chain officially.
16 Jun 2017