区块链网站|NFTS 区块链技术 从概念到底层技术 一篇文章理解重塑世界的区块链

从概念到底层技术 一篇文章理解重塑世界的区块链

广告位

从概念到底层技术,一篇文看懂重塑世界的区块链

\”

重塑世界的区块链技术

作者赵明

区块链定义

区块链技术到底是什么?很少有人能解释清楚。现在市场上有许多关于区块链的书。内容基本上是,区块链能做什么,区块链的未来前景等等。一般来说,区块链是一套协议和规范,而不是具体的代码和项目。

金融行业有人会说,区块链是分布式账本,是分布式银行记账系统。

密码学家会说,区块链是一个由密码术建立的不可信的网络。

码农)可能会说,区块链是一个分布式数据库,确保最终的一致性。(ps:基于fabric的知识,IBM的Hyperledger项目。)

吃瓜的人可以从网上得到定义:区块链是分布式数据库,起源于比特币。区块链是由密码学产生的一系列数据块。每个数据块包含一个比特币网络交易的信息,用来验证其信息的有效性(防伪)并生成下一个块。这个概念是在中本聪的白皮书中提出的,中本聪创造了第一个区块,即“创造区块”(来自维基百科)。

区块链技术的三个要素

P2p网络通信

集中

分布的

分散

注:今天的分权是一种理想化的状态,就像共产主义理想一样。在这一阶段,区块链的分权本质上是相对分权。

一致性算法

在影视剧中,这种情况很常见。弱者屈服于强者作伪证。然而,在基于p2p通信的成千上万个节点中,要想和其他节点一起作恶,除非“大多数节点”都被一个统一的组织(人)所控制,有共同的利益,且得不偿失,否则是无法实现的。

这里引用的是“大多数节点”,因为在大多数临界点为51%的情况下,有些算法无法达成共识。如PBFT,需要超过66%的某些节点才能达成共识。现在举个例子,比特币网有人提出了这样的担忧,因为75%左右的计算能力被中矿池控制。

编码算法

结合

作恶:在成千上万个相等的节点中寻找作恶的伙伴,通常作恶的收获不如作恶的努力,从根本上杜绝了大量坏节点的出现。比如比特币的POW共识算法,即使结合比特币网络51%以上的计算能力实现双花硬叉,也未必能获得足够的收益来支付电费。

停机:这个很好理解。所有节点都是平等的,一个宕机不会影响整个网络的持续运行。

区块链应用的四大前景

区块链金融

区块链技术被发掘出来后,这句话被反复引用。无论是不是炒作,我们必须看到区块链在处理金融业务方面的独特优势。如果银行不想改变,被时代抛弃是必然的。因此,不难理解,42家巨头银行,如花旗银行、汇丰银行、摩根士丹利等。加入了由区块链一家初创公司创立的R3区块链联盟。

价值互联网

共享经济

智能合同

开源项目

超级分类帐

超级账本项目非常适合联盟链和私有链的建设。现在Fabric,超级账本的开源代码实现,由IBM孵化,go语言开发。现在版本是0.6,还有很多漏洞需要时间去填补。我们的项目也是基于面料。所以现在开始学面料应该是比较好的选择。

以太坊

国内现状

布比

小蚂蚁

威廉

阿施

云翔

太乙

如何从技术角度理解区块链?

作者陈豪

科技人看区块链的正确姿势

我和一些工程师有过接触。刚接触区块链的时候,我一致表示:都是成熟的技术,只是分布式存储。从工程师的角度来说,第一反应把这个新概念映射到自己的知识框架中是非常自然的。但仔细观察就会发现,这种片面的理解可能会导致对区块链的一种误解,即作为一个技术人员,忽略了区块链的经济特点:3354一个权力分散、完全自治的体系。

区块链本质上是一种基于P2P的价值传输协议。不能只看P2P,而不看价值传递。同样,我们不能只看到价值传递而看不到区块链的底层技术。

可以说,区块链更像是一门交叉学科,融合了P2P网络技术、非对称加密技术、宏观经济学、经济博弈等知识,构建了价值互联网探索的新领域3354。

什么是价值互联网?价值互联网可以是目前电子商务衍生出来的支付业务。但是,真的只是支付领域吗?显然,这是不够的。一级资本市场、实物资产确认和转让、证券登记和交割、信用调查和反欺诈。我们再考虑一下。我们各大电商平台的职业差评师是不是没那么恶意了?

在如今的金融领域,除了支付的便捷,在其他大部分业务中,我们就像是在锁链中行走。我们反复确认、审核、监督。我们反复构建一个又一个大大小小的高可用性集群,以确保在线服务的可靠性和连续性。我们雇佣了一个又一个安全工程师,交付了一个又一个渗透测试项目。为什么?因为作弊的成本太低了,低到只需要改变数据库中的一行记录就可以提取几百万的资金。

强大的互联网给了我们一个几乎零成本的高速信息传递渠道,却没有低成本可靠的高速价值传递渠道,所以这就是区块链会带来的。

区块链是公共分布式总账。下面从技术角度简单介绍一下。

想象一个有100个数据库的分布式数据库集群。现在,这100个节点的实际拥有者是一个组织,所有节点都在组织的内网,所以组织可以对这100个数据库节点为所欲为。换句话说,这100个节点处于可信环境中,由一个实体控制,该实体拥有绝对的仲裁和分发权。

另一种情况是这样的。假设这100个节点归不同的人所有,每个人节点的数据都是一样的,也就是完全冗余,所有节点都在广域网里。换句话说,这100个节点之间不存在信任,不存在拥有绝对仲裁权的实体。

现在考虑第二种情况,可以采用哪种算法(共识模型)来提供可信环境,以便:

每个节点数据交换过程不被篡改;Exchange历史记录不能被篡改;

各节点的数据将与最新数据同步,共识最新数据将被确认;

基于少数服从多数的原则,全节点维护的数据客观反映了交换历史。

区块链本质上是解决上述第二种情况的技术方案。更确切地说,它应该被称为分布式冗余链式总账解决方案。我在之前的文章中总结了一些与区块链相关的元素:

包含分布式数据库。

分布式数据库是区块链的物理载体,区块链是事务的逻辑载体。所有核心节点都应包含此区块链数据的完整拷贝。

区块链按时间序列化区块,区块链是整个网络交易数据的唯一主体。

区块链只对加法有效,对其他操作无效。

基于非对称加密的公私钥验证

可以解决/避免节点簿记要求拜占庭式的一般问题。

共识进步是进化稳定的,即在面对一定量的不同节点的矛盾数据时不会崩溃。

共识过程可以解决重复支出问题。

所以作为一个技术人员,不仅要看到区块链所依赖的技术,更要关注区块链之外的点和面。总的来说,区块链将会有趣得多。

区块链总体建筑介绍

在各个区块链平台的社区里都有详细的介绍区块链技术的信息,但是对这些信息的总结和一个共同概念的抽象介绍还是比较少见的。本文试图对其进行总结。

在介绍之前,我先简单介绍一下公链和联盟链的概念。这些概念是以太坊创始人Vitalik提出的,我在这些概念的基础上做了一些研究。

其实区分公链和联盟链很简单,看看这个区块链的访问权限就知道了。如果你需要链上的节点的许可来访问这个区块链,那么它是一个联盟链,否则它是一个公共链。根据名字,我们也可以“寻找文学的意义”。Public表示完全开放的网络,alliance表示半开放的网络。成员分享一下。非会员没有免费访问权,所以我们也称联盟链为授权链。

我们来看看几个主流的区块链平台(公链,全部开源):

比特币

以太坊以太坊/经典以太坊以太坊经典

比特股份

一般我称之为“三巨头”。从生态的角度来说,比特币是最成熟最稳定的。以太坊更像是一个冲锋在前的战士。Bitstock在生态上比前两者小很多,但从创新的角度来看,并不比前两者少。其他很多项目都是从这三个区块链衍生出来的,所以基于这三个,你基本上就可以了解区块链了。

我不得不提到Linux基金会项目——HyperLedger项目(专注于联盟链,开源),它也旨在创建一个通用区块链技术。不过我觉得还在开发迭代中,还没有具体的应用案例。按了就不要说了。

银行寡头之间也有一些联盟链项目,即——R3 CEV项目(联盟链,闭源)和中国的R3项目,即——ChinaLedger项目(联盟链,闭源)。当然,这些项目都不是开源的,我得不到有用的信息进行分析,所以不会启动。

从技术角度来说,不同的业务场景对区块链的要求是不一样的,比如实时结算业务,需要区块链提供秒级交付,对应的是出块速度的要求。过快的封锁速度往往会导致区块链分叉,形成孤儿链。孤儿链无效,所以交易会无效,影响区块链的最终一致性。如果频繁的分叉导致相当比例的用户事务失败,那么可以认为系统不可靠。

如果把这种实时性要求高的业务放到联盟链中,可以控制风险。通过调整一致性算法,我们可以使用一致性模型来避免上述问题。虽然没有公链健壮,但是对于一些特殊场景来说已经足够了。所以在架构层面,公链和联盟链的技术要区别对待。

但是,客户端的整体设计仍然有一些通用的概念,如下图所示:

一个区块链至少分为三层,最底层是一些通用的基础模块,比如基础加密算法、网络通信库、流处理、线程封装、消息封装和解码、系统时间等。

中间层是区块链的核心模块,一般包含区块链的主要逻辑,如P2P网络协议、共识模块、交易处理模块、交易池模块、简单契约或智能契约模块、嵌入式数据库处理模块、钱包模块等。

顶层通常是基于Json标准RPC的交互模块。基于Json-RPC,我们还可以制作更好的UI或web服务。

如果区块链支持智能合约,则可能需要划分更多层,例如添加BaaS层。区块链上的智能合约提供自主服务,比如下面以太坊的架构图(来自Google,仅供参考):

这种分层更注重区块链本身的分层,即商业角度,而不是技术角度。

让我们转向比特币的设计:

事实上,比特币的几个模块之间的耦合度比较高,有很多历史包袱。在开发比特币的时候,比特币的发明者中本聪用VC开发了比特币。但是VC的标准库中sstream流处理的表现非常感人,他不得不放弃,实现了一个基于vector的流处理容器。但是随着c 11的推出,标准库的更新迭代,性能就不一样了。

从整体来看,比特币的模块较少,相对简单。chain-parameters描述了整个区块链的参数设置。wallet与地址/加密和存储有关,mem-pool是一个未确认的事务池。由于比特币核心开发者的不朽贡献,现在比特币代码的质量与中本聪相比相当不错。

无论以上哪种设计,一般都要从P2P网络协议入手。作为P2P钱包,既要提供服务,也要提供客户端。作为服务依赖于P2P网络协议,作为客户端依赖于Json-RPC。

需要指出的是,目前三巨头使用的账户模型是不同的(所谓账户模型是指账户记账法)。比特币使用UXTO模型,以太坊和比特币使用账户余额模型。

UXTO模型(Unspent Transaction Outputs(UTXOS)):该模型表达了一个转移的概念,即任何新产生的硬币都只会在未来的生命周期内被转移,而转移本质上是由加密算法的签名和验证控制的:

账户余额模型:账户余额模型摒弃了这种强验证账户模型,即账户余额回归数字加减,提高了交易效率。

一致性算法和分布

最后,我说到点子上了。事实上,本文的每一节都可以发展成一篇独立的文章。内容有限,所以简单。

上面提到的所谓区块链共识过程,是指如何客观记录全网交易数据且不可篡改的过程。目前‘三巨头’分别使用不同的共识算法,比特币使用POW(工作证明(PoW),以太坊即将转换为股权证明(POS),Bitstock DPoS(委托股权证明(DPoS)。

我把以上算法称为“经济学”。所谓经济学算法,就是作弊成本是可以计算的,作弊成本往往远大于作弊带来的收益,也就是作弊无利可图。通过这种思想,构建了节点间博弈的算法,并使其趋于稳定平衡。相应的,我们在计算机领域也有分布式一致性算法,比如Paxos和Raft,我也称之为传统的分布式一致性算法。

它们之间最大的区别是系统在拜占庭将军问题情况下的可靠性,也就是拜占庭容错(PBFT算法支持拜占庭容错)。但无论是Paxos还是Raft算法,理论上都有可能进入一个无法投票通过的无限循环(虽然这种概率其实非常非常低),但它们都满足安全性的要求,只是放宽了活性的要求,PBFT也是如此。

以下是传统分布式一致性算法和区块链共识过程之间的一些相似之处和不同之处。让我们先来看看相似之处:

仅追加

强调序列化

少数服从多数原则

分离问题:即长链覆盖短链块,多个节点覆盖几个节点日志。

这就是区别:

传统的分布式一致性算法大多不考虑拜占庭容错(Byzanetine Paxos除外),即假设所有节点只存在宕机、网络故障等非人为问题,不考虑恶意节点篡改数据的问题。

传统的分布式一致性算法是面向日志(数据库)的,也就是更一般的情况,而区块链共识模型是面向事务的,所以严格来说,传统的分布式一致性算法应该在区块链共识模型的下层。

考虑到以上差异,结合公有链和联盟链的特点,我们有:

联盟链:一个半封闭的生态价值网络,具有对等的不信任节点,比如某个协会的成员之间。

公链:开放的生态价值网络,主要为产业链和私链提供全球交易网络。

由于联盟产业链的半封闭半开放特性,使用XXX的委托证明是可行的,也可以考虑在传统一致性算法的基础上加入拜占庭容错/安全保护机制进行改进。

对于公链来说,PoW/Pos/DPos等“经济”算法可能是最好的。在技术上,对于以上不同的共识算法,我们新开发的很多区块链都对应支持一个特性:共识模块可以插拔,满足不同场景下的需求。

下图是未来区块链的生态示意图:

公链提供了一个可信可靠的价值传递网络,在这个网络上可以设置去中心化应用(DAPP)或者部署联盟链,甚至可以使用传统的数据库,可以在上层设置C端应用。

这是区块链未来发展的示意图:

参考:元宇宙元世界白皮书-中国(摘要)

三巨头中,比特币位于数字货币,Bitshare在去中心化的交易所附近,以太坊位于去中心化的组织内。事实上,区块链和现实的接触点仍然在所示的位置。因此,区块链仍然是一个不断发展的事物。结合图5,我们希望在上层构建一个基础设施完善、区块链生态丰富的价值传递网络,这仍然需要很大的努力。

下一步是将资产数字化(类似于资产证券化)。比如我们可以把稀有物品(艺术品/古董)数字化,把知识产权数字化,把票据基金等收益权数字化等等。这将大大提高市场运作的效率。配备智能合约,甚至人工智能,可编程社会不再是梦想。

喜欢的会被赞,爱我们的会分享!

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/qkl/jishu/10872.html

作者: 董方卓

上一篇
下一篇

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部