浅谈:区块链多链挖矿dapp系统开发技术逻辑

2022-11-09 17:23:17 浏览数 (3)

多链(multi-chain)不同于跨链(cross-chain),多链不需要第三方的跨链桥、跨链协议,也不存在抵押增发跨链资产,是指在相同的通信协议下无缝转移原生资产(native assets)。跨链与多链的本质性区别是安全性不一样,多链是确保状态一致,即如果回滚那么也会状态一致的回滚。但跨链受制于不同区块链的状态不同,无法做到同步一致,一旦发生攻击,那么跨链资产的平衡将会打破。

层次设计

多链一共分为3层,链管理层SMC,通过一个合约SMC管理验证节点押金,验证节点随机抽样等;Date为具体的交易数据层,各个子链分别维护各个子链的全状态数据和主链的全状态;state层主要是交易的产生层,也可以说是智能合约的执行层。

基本的分片结构

假如一台计算机的处理能力为C笔交易,主链节点能观察C条子链,则整个系统能处理C*C笔交易。

多链系统中的大多数用户都会运行两部分程序。

多链架构图

主链变更

本子链协议可单独于现有MainChain主链实施。只需再主链中作出如下修改,其中第二个变更非技术必须。

在MainChain主链上增加合约;该合约支持存入DEPOSIT_SIZE的ETH;deposit函数以:

代码语言:javascript复制
fields = {

    # Hash of the parent block

    'parent_hash': 'hash32',

    # Slot number (for the PoS mechanism)

    'slot_number': 'int64',

    # Randao commitment reveal

    'randao_reveal': 'hash32',

    # Attestations

    'attestations': [AttestationRecord],

    # Reference to bumo chain block

    'bu_chain_ref': 'hash32',

    # Hash of the active state

    'active_state_root': 'hash32',

    # Hash of the crystallized state

    'crystallized_state_root': 'hash32',

}

主链状态分为活跃状态和结晶状态两种。

以下为活跃状态

代码语言:javascript复制
/ActiveState:

fields = {

    # Attestations that have not yet been processed

    'pending_attestations': [AttestationRecord],

    # Most recent 2 * CYCLE_LENGTH block hashes, older to newer

    'recent_block_hashes': ['hash32']

}

MainChain主链处理

处理MainChain链与处理bu1.0链在很多方面非常类似。客户端下载并处理区块,维护当前“规范链”,终止于当前的“头部”。但是,由于主链链与现有bu1.0链的关系,并且本身是一个多链的架构,所以(处理)也存在一定的差异。

0 人点赞