浅谈区块链的运用和原理

2023-04-26 17:12:34 浏览数 (1)

互联网进入生态时代,其应用已渗透到金融服务、物联网、供应链管理、数字资产交易、电子商务等多个领域。区块链的出现,使得互联网发展从信息互联网到价值互联网、秩序互联网转型,其以共享经济与价值链接为主要特征的“分布式商业”模式,将催生大量的跨机构新型创新合作场景,构建起以区块链技术为虚拟中心的新产业生态系统,将对经济社会治理、产业变革与创新产生颠覆式影响。因此我公司与时俱进已开始着力布局区块链。

什么叫区块链呢?区块链是新一代信息技术的重要组成部分,是分布式网络、加密技术、智能合约等多种技术集成的新型数据库软件,具有数据透明、不易篡改、可追溯等优点。

区块链由哪些内容构成呢?

一、运行结构

联盟链是一个支持平行链和侧链的区块链网络。在联盟链网络中,有一条特殊的链——Zero 链。Zero 链管理联盟链 网络的其它平行链,并提供跨链服务。其中基于 Zero 链诞生的超级燃料 联盟链是整个联盟链 网络运行消耗的燃料。Zero 链有以下功能:

(1)创建独立的一条链;

(2)支持与各个链的数据交换;

(3)管理整个联盟链网络的运行参数。

联盟链是一个能包容一切区块链技术的区块链网络, 其平行链可以支持联盟链 的解决方案,也同时支持其它开源区块链网络技术方案。

二、共识机制

(1)可插拔共识机制

在当前的技术背景下,没有哪一种共识机制是完美无缺的,每一种共识机制都有其优点和缺点,不同的应用场景可能需要不同共识机制。为了应对不同的应用需求,联盟链设计了一套可插拔的共识机制,主要体现在两点:

1.联盟链不同的平行链允许采用不同的共识机制,以此来满足不同的共识应用需求,用户可通过 API 创建自己的区块链, 并指定初始的共识机制。

2.联盟链还支持在任意时刻通过投票表决机制实现共识的升级,从而实现共识机制的热升级。

联盟链的共识机制包括但不限于 POW、POS、PBFT、中心化共识(Raft)等。

(2)DPOS 共识算法创新

基于POS 基础上衍生出了很多改进算法,DPOS 就是其中一种。DPOS算法是用户通过投票选出代表进行区块的生产。

联盟链 在已有的 DOPS 算法基础上自主创新研发了一套DPOS 共识,我们称之为 CDPOS,依据这种算法,全网持有通证的人都可以给候选人投票。

CDPOS 的参数包括每轮的 proposer 个数、出块间隔、节点每轮出块个数等,在创建平行链的时候可以指定,也可以通过提案机制升级。通过GPS 和原子钟保证时钟同步。

(3)自定义共识机制

用户可通过智能合约和共识机制的编程接口,编写自己的共识, 并 以 智 能 合 约 的 形 式 发 布 到联盟链 中 。联盟链在启动用户创建的这条链的时候,会注入自定义共识,成为该链的共识机制。

三、主节点

主节点是一种分布式计算技术,保证每个节点的存储和计算是可扩展的。从而为区块链网络提供源源不断的存储和计算支持。

(1)存储支持

主节点会存储所有的历史事务的完整信息,如何支撑 PB 级别的容量非常具有挑战。

(2)计算支持

在非POW 的共识机制下,主节点的主要计算量为交易上链和合约执行。很多区块链软件对交易的执行以及合约的执行都是串行执行的,优化到极致也只能使用单核,对硬件的利用率很低。主节点采用多核并行计算与分布式计算相结合的方式以提升计算效率。

四、智能合约

(1)UTXO base 的智能合约模型

我们认为UTXO(Unspent Transaction Output)相对于Account余额模型, 并发性能更好, 对热门账户的性能也更优秀。

联盟链底层是基于UTXO 模型,因此任何针对比特币系统的优化都适用于联盟链。

联盟链在 UTXO 的基础上做了智能合约的扩展,在扩展区可加载各种不同的合约虚拟机,每个合约机需要实现运行合约和回滚合约两个接口。回滚机制是为了应付分叉设计的,用户可以选择以下优化去实现:

1)自定义回滚逻辑;

2)利用区块链数操作日志,生成反向回滚日志,自动生成回滚逻辑;

3)引入MPT,分叉无需回滚支持。

(2)智能合约兼容

1)联盟链内嵌合约机制

内嵌合约机制,规定智能合约编写的接口,可直接用编程语言

(Go,C ,Java 等)编写智能合约放到联盟链 里面。当前联盟链 的 Kernel API 和共识机制算法都是用这种方式实现的。

未来会引入智能合约 Store 和对智能合约的安全审计,保证发布的智能合约是安全的,从而让公开节点放心支持。

2)第三方兼容

联盟链直接支持以太坊的Solidity 语言。以太坊的智能合约代码可以在联盟链部署和 执行 。同时支持 WebAssembly,并通过其支持任意语言。理论上联盟链支持任何虚拟机的运行。

---------------------------------------------------------------------------------------------------------------------------

每日小知识分享:每一个 HTML 文档中,都有一个不可或缺的标签:<head>,在几乎所有的HTML里, 我们都可以看到类似下面这段代码:

<head><meta charset=utf-8><meta http-equiv=content-type content=text/html; charset=utf-8><meta name=renderer content=webkit/><meta name=force-rendering content=webkit/><meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1/><meta http-equiv=Content-Type content=www.llyz.net imtoken;charset=gb2312><meta name=viewport content=width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no></head>

head标签作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来,主要告知搜索引擎本页面的关键字以及对应网址,在SEO中传递相关权重起到非常重要的作用。

0 人点赞