Asch
主链类比iOS
生态系统,每个节点都是一部iphone
,所有的dapp
组成了appstore
,每个节点可以自由选择安装哪些dapp
- 提供智能合约模版,通过命令行工具,选择模版,发行自己的币
- 一个
DApp
就是一条侧链,侧链由主链可选择的安装 - 主链上的资产可以充值到任意
DApp
中,也可从DApp
提现到主链 -
DApp
的内置资产无法跨链转账,只能在链内使用 -
DApp
拥有自己的数据库,与主链隔离 - 主链和侧链使用同一种加密算法,账户可以通用
侧链的灵活性
但是侧链架构依然有存在的必要性,因为并非所有的应用都需要那么高的安全性。Asch
给用户提供了一种可以选择的灵活性。 比方说,假设Asch
有1000个节点,那么其中有的dapp
比较重要,需要500个节点来运行它,有的dapp
不那么重要,可能只需要100个节点,这完全是由用户和开发者决定的。 在以太坊上,则只能选择一种,即全部节点都来运行它。据说以太坊也打算实现一种分片的机制,实际上这在Asch
系统中是一个早就解决了的问题。 另外,对于比较重要的、安全性要求较高的应用,我们依然可以选择在主链上开发(就是像以太坊那样dapp
运行在所有的Asch
主链的节点上),但是不可能对所有开发者开放这种权力,还是为了避免主链的膨胀和不可控(DAO
事件)。
侧链的灵活性还表现在,所有的区块链参数是可以定制的,简单的比如区块间隔、区块奖励、交易费的去向等,高级用户还可以修改共识算法(默认是DPOS
共识算法)。 不过最重要的还是业务逻辑,侧链上可以轻易的开发出与你的业务相关的交易类型或者智能合约。 这一点是与侧链的发明者blockstreams
不同,blockstreams
的侧链,只是一个不同的货币系统而已,开发新型交易和智能合约很不容易。
如下图所示 黑色的圆圈代表一个节点,64个节点组成了主链的网络。红色方框之内的是1号侧链,其侧链网络是由12个节点组成。蓝色方框之内的是2号侧链,其网络是由36个节点组成。
安全问题:
我们希望每一个asch
节点都能安装一个侧链,而且asch
节点的主人无需信任侧链的开发者。这就需要提供一种安全防范的措施,比如,防止侧链代码肆意读取文件系统、进行网络操作。 在asch
系统中,侧链代码会以子进程的方式启动,子进程首先加载一个使用沙箱机制隔离的javascript
虚拟机,这个js
虚拟机就是没有require
以及任何多余模块的裸体虚拟机。 然后我们为这个虚拟机植入一个定制的require
和一些常用且安全的模块, 最后再加载侧链的代码。 我们还通过进程间通讯的方式提供一系列的api。 这样,侧链的框架就拥有了足够多的api
,同时侧链的安装者也没有任何风险。
下图中,在asch
主链上发布了 CCTime.XCT
币,可以将部分货币转入CCTime DApp
流通