区块链与区块链技术概要

时间:2021-07-20 22:17编辑:未知

区块链是现在一个比较热点的新定义,蕴含了技术与金融两层定义。从技术角度来看,这是一个牺牲一致性效率且保证最后一致性的的分布式的数据库,当然这是比较片面的。从经济学的角度来看,这种容错能力非常强的P2P互联网,恰恰满足了共享经济的一个需要需要——低本钱的可信环境。

本次推荐一下聊聊区块链技术,与现在区块链技术构造,并且介绍一下价值网络。

因为区块链是一个新兴的技术定义,本文所有些看法仅代表个人看法,未必全部正确。

区块链虽然是一个新兴的定义,但它依靠的技术一点也不新,如非对称加密技术、点对点互联网协议等。好比乐高积木,积木块是有限的,但不同组合却可以产生很有意思的事物。

我接触过一些工程师,第一次接触区块链时,不约而同的表达了:都是成熟的技术,不就是分布式存储嘛。站在工程师的角度,第一反应将这种新定义映射到我们的常识框架中,是很自然的。但细究之下发现,这种片面的理解可能将对区块链的理解带入一个误区,那就是作为一个技术职员,忽视了区块链的经济学特质——一个权力分散且完全自治的系统。

区块链本质上是一个基于点对点的价值传输协议,大家不可以只看到了点对点,而看不到价值传输。同样的,也不可以只看到了价值传输,而看不到区块链的底层技术。

可以这么说,区块链更像是一门交叉学科,结合了点对点互联网技术、非对称加密技术、宏观经济学、经济学博弈等等常识,构建的一个新范围——针对价值网络的探索。

那啥是价值网络?价值网络可以是当下如日中天的电商所衍生的支付业务。但,真的只不过支付范围吗?非常显然这是不够的,一级资本市场,实体资产确权与转移,证券登记交割、证信与反欺诈。大家再仔细想想,大家的各大电子商务平台的专业差评师,恶意刷单还少吗?

现在的金融范围,除去支付比较便利以外,在其他绝大多数的业务中,大家就像是被套着锁链走路一样,大家反复确认,反复审核,反复监督,大家反复构建一个又一个的大大小小的高可用集群,保证线上服务的靠谱性与连续性,大家雇佣一个又一个的安全工程师,出货一个又一个的渗透测试项目。为何?由于作弊的本钱太低了,低到只须改数据库的一行记录就可以提取上百万的资金。

强大的网络给了大家本钱几乎为零的高速信息传输通道,却没一个本钱低廉靠谱的高速价值传输通道,那样这也就是区块链马上带来的。

区块链是一个公共的分布式总账,下面从技术角度容易介绍一下:
想象有一个100台的分布式数据库集群,目前的状况是这100个节点事实上的拥有者是一个机构,并且所有节点处在该机构的内网当中,所以这个机构想让这100个数据库节点做什么就做什么,换句话说这100个节点之间是处于一个可信赖的环境,并且受控于一个实体,这个实体具备绝对仲裁分配权。
另外的状况是如此的,想象这100个节点分别归不一样的人所有,且每一个人的节点数据都是一样的,即完全冗余,并且所有些节点是处在广域网当中,换句话说就是这100个节点之间是不信赖的,且没有一个实体,它拥有绝对仲裁权。
目前考虑第二种状况,使用哪种算法(共识模型)可以提供一个可信赖的环境,使:

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

每一个节点的数据会同步到最新数据,且承认经过共识的最新数据;

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

区块链本质上就是要解决以上第二种状况的一种技术策略,更确切的说应该叫分布式的冗余的链式总帐本策略。有关区块链的一些要点,在我以往的文章里有概要过一些:

少数服从多数原则

离别覆盖的问题:即长链覆盖短链区块,多节点覆盖少数节点日志

大家再转向BTC的设计:

不同的地方:

传统分布式一致性算法大多不考虑拜占庭容错,即假设所有节点只发生宕机、互联网问题等非人为问题,并不考虑恶意节点篡改数据的问题;

传统分布式一致性算法是面向日志(数据库)的,即更通用的状况,而区块链共识模型面向买卖的,所以严格来讲,传统分布式一致性算法应该处于区块链共识模型的下面一层。

考虑上面的不同的地方,结合公有链和网盟链的特点,大家有:

网盟链:半封闭生态的买卖互联网,存在对等的不信赖节点,如房产行业A、B、C、D公司。

公有链:开放生态的买卖互联网,这层主如果为行业链和私有链提供全球买卖互联网。

因为网盟行业链其半封闭半开放特质,用Delegated Proof of XXX 是可行的,可以考虑以传统一致性算法作为基础加入拜占庭容错/安全防护机制进行改进也是可以的。

而针对公有链,PoW/Pos/DPos等“经济学”的算法可能是最佳算法。

技术上,以上不一样的共识算法,大家不少新开发区块链都相应的支持一个特质:共识模块可插拔,以应付不同场景下的需要。

下图是一张将来区块链生态示意图:

(图1)

——————————–

Q:还是感觉太抽象,到今天都还不可以具象化的理解这个区块链,也没找到具象化的讲解,费解???

A:正如区块链这个名词一样,它是被创造出来的,并没以往的定义可以映射到上面,所以容易费解。大家不谈这个定义,大家仅需想想大家的网络还需要什么。正如BTC白皮书提到的,一个P2P的现金系统,他用的首要条件需要是非常低的,无需注册,无需手机号,一个P2P的互联网,只须你用设施接入,那样你就可以用。区块链这个定义也一样,目的是构建一个P2P的生态,解构权力带来的不对称。它本身只不过一个共享的总账本,不同于互联网中多节点自己记账,再对账,这就瓦解了中心权力。

Q: 区块链技术在网络身份认证方面怎么样应用?

A:这个问题非常不错。我现在所做的区块链项目是涵盖了这个定义的,也就是你所说的网络身份认证。大家觉得它是使区块链接入现实业务的必要一环。

在大家的设想中,第一啥是身份?身份不单单是一个ID号,一个密码,而是一个用户所有些操作记录集,这个记录集的代号才是身份。正如竞价推广账户丢失,然后申诉一样,申诉的内容才是真的定位到你这个人。区块链也一样,它需要一样ID,同样它也需要自动验证你历史记录的合法性。现在网络的身份认证是依靠公安系统的,最容易的策略就是把公安系统中的身份系统映射到区块链中。另外一个策略也是用户自概念记录集,依据买卖历史核对身份。当然再更远的将来,结合AI,区块链可能有更好的表现。

Q:实时交割数据假如放到网盟链中,网盟链的数据是不是要最后同步到公有链?按推荐所说,网盟链的数据对公有链来讲是不可信赖的,网盟链和公有链中数据是什么关系?此处没理解,谢谢老师推荐!

A:我觉得不可能所有机构都想把资产放到公有链上的,必然会出现并存的现象。理想的状况当然完全用公有链搭建DApps。网盟链和公有链直接的数据是单纯的引用关系,我觉得开放的重要数据集,如用户身份应该沉淀到公有链,让用户自己管理,而机构比较私有些重要数据,应该用访问权限将它与公有链隔离,所以网盟链的数据和公有链的数据我觉得是互补的。也就是说,网盟链的数据是不是要同步到公有链,这个如果视机构本身的需要而定。另外,公有链的外部数据引用,大家称之为data-feed,这个东西就要把人的原因引入了,比如法务,律师,政府机构等等,作为一个仲裁者帮引用数据,好坏可以让市场评价信用,正如对一个机构评级一样,假如如此就非常透明开放了。

Q: 有一些非常有趣的实体项目譬如智能门锁,无人租车,这部分都是线下项目,如何做到互联互通呢?

A:第一区块链的项目都是跨平台的,也就是说嵌入式设施可以依托区块链的低信用本钱的优势,自动记账,可以是网盟链的,也可以是直接基于某个公有链的DAPP,这部分账本是共享的,这部分数据在发生引用关系的时候,可以进入公有链通道,打通两者关系。

第二,任何具体的区块链项目,都是需要依托一个公有链进行的,正如目前不少落地项目都是基于“三巨头”,然而其实现在并没一个让大伙都特别认可的规范,让大伙都服,所以我大家还要拭目以待。

Q: 多谢推荐,能谈谈最后一张图中区块链进步的各个阶段可能对传统金融行业特别是银行业的影响吗

A: 对银行业的影响,我觉得现阶段影响不大,特别是国内。这个要视区块链进步的程度而定。我所知道的,央行已经开始着手我们的数字虚拟货币了,这对银行来讲,顶多就是再来一次IT构造升级的事儿而已,可以帮银行业减少IT本钱,也可以便捷加大监管。但假如在更远的将来,银行可能不会特别封闭,变成一些区块链的加盟节点,也会被所有人所监督,而不是几个特殊机构。

Q:假如公有链可以记录所有历史,有没技术能破坏或封禁,有没生命终结的那天?

A:有一点技术风险,通用量子计算商用的时候,现在的加密技术不少都失效了,基于密码学的区块链受影响最大(当然目前的中心化构造也会遭到影响)。这取决于理论研究的成就,假如出现了新的密码学理论可以抵抗量子计算就没问题。假如从点对点互联网的角度,是没任何机构或个人能封禁的,只须有两个节点还能做买卖也能记账,这个区块链就是alive的。

从经济学的角度,区块链的生死也不主要在于加密技术是不是被攻破,而主要在于链上聚集了多少财富和利益,链上的数据有多少价值,假如没价值了,链自然就去世了,反之假如被攻破了,不过是分叉、或者等待新的加密算法出来之后进行数据迁移,这一点跟中心化数据库恢复备份没什么太大不同。

包含一个分布式数据库

分布式数据库是区块链的物理载体,区块链是买卖的逻辑载体,所有核心节点都应包含该条区块链数据的全副本

区块链按时间序列化区块,且区块链是整个互联网买卖数据的唯一主体

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

BTS币 Bitshares

我通常戏称为”三巨头“,从生态上来看,BTC是最为成熟稳定的,ETH更像是一个冲在前面的勇士,BTS币相比前两位生态要小不少,但从革新的角度,也不亚于前两位。

其他的不少项目,是从这三个区块链上衍生出来的,所以以这三个为基础,基本上可以吃透区块链了。

不能不提的还有Linux基金会项目——HyperLedger项目(主打网盟链,开源),也是旨在塑造一个通用的区块链技术,不过我觉得现在尚在开发迭代当中,还没具体的应用案例,按下不讲。

另外还有一些好玩的网盟链项目——R3 CEV项目(网盟链,闭源),与中国的R3项目——ChinaLedger(网盟链,闭源),当然这部分不是开源的,我没办法获得有用的资料进行剖析,所以就不展开了。

从技术上来看,针对不一样的业务场景,对区块链有不同需要,譬如实时结算业务,需要区块链提供秒级的交割,相对应的就是出块速度的需要,而出块速度过快总是会致使区块链分叉(fork),形成孤儿链,孤儿链是无效的,那样买卖也就作废了,影响了区块链的最后一致性。

假如频繁产生分叉导致相当比率的用户买卖失效,那样可以觉得系统是不靠谱的。

假如大家将这种实时性需要比较高的业务安插到网盟链中,就可以控制风险,通过调整共识算法,借助迅速一致共识模型(Consensus Model)来防止上述问题,虽然不如公有链那样健壮,但对某些特殊场景足够了。

所以构造层面,对公有链和网盟链的技术也要差异化对待。

不过推广客户端整体的设计还是有一些通用的定义的,如下图:

ETH 以太坊/经典ETH 以太坊 Classic

(图2)

这种分层愈加关注的是区块链本身的分层,即业务上的视角,而不完全是技术的。

这里有张图:

ref: Metaverse元界白皮书-CN
“三巨头”中,BTC在“数字虚拟货币”处,BTS币在“去中心化交易平台”附近,ETH在“去中心化组织”处。而事实上,区块链和现实的接触点,还在图示地方。

所以区块链仍是一个正在成长的少年,结合图5,大家期望构建一个基础设施健全的价值传输互联网,上层应用丰富的区块链生态,仍然需要付出巨大的努力。

下一步目的,是将资产数字化(类比资产证券化),比如大家可以将珍贵物品(艺术品/古董)数字化、常识产权数字化、票据基金等收益权数字化,将很大的提高市场运作效率,配备智能合约,甚至AI,可编程社会不再是梦想。

BTC 比特币

强调序列化

(图5)

公有链提供可信靠谱的价值传输互联网,上面可以继续组建DApps(DAPP)或者部署网盟链,甚至传统数据库都行,在上层搭建C端应用。

ref1:浅析区块链共识机制与分布式一致性算法–blockchaindev.org

ref2:从Paxos到拜占庭容错,兼谈区块链的共识协议(转)–blockchaindev.org

一个区块链至少分为三层,

最底层是一些通用的基础模块,譬如基础加密算法,互联网通讯库,流处置,线程封装,消息封装与解码,系统时间等;

中间一层是区块链的核心模块,通常包含了区块链的主要逻辑,如点对点互联网协议,共识模块,买卖处置模块,买卖池模块,容易合约或者智能合约模块,嵌入式数据库处置模块,钱包模块等等;

最上面一层,总是都是基于Json Standard RPC的交互模块,基于Json-RPC,大家还可以做出更好的UI界面,也可以是一个web-service。

假如区块链 支持智能合约,可能还要分更多的层,譬如增加BaaS层,区块链上的智能合约提供自治的服务,譬如下面这张ETH的构造图(来自谷歌,仅作参考):

(图3)

BTC几个模块之间的耦合度其实比较高,而且有不少历史包袱,BTC的创造者——中本聪在开发BTC的时候,用VC++开发,而VC++的规范库中的sstream流处置性能很感人,不能不放弃,自行达成了了基于vector<char>的流处置容器。而伴随c++11的推出与标准库的更新迭代,性能不可同日而语。

从整张图大家可以看出,BTC的模块比较少,也比较容易。chain-paramters描述了整个区块链的参数设置,wallet是与地址/加密还有存储有关的,mem-pool是未确认的买卖池。得益于BTC核心开发者的不朽贡献,相比中本聪年代的BTC代码,目前的BTC代码水平已经非常不错了。

以上无论哪种设计,通常都要从点对点互联网协议作为切入,作为一个点对点钱包,既要提供Service也要提供Client,作为Service依靠点对点互联网协议,作为Client依靠Json-RPC。

需要指出的是,现在”三巨头”所用的竞价推广账户模型是不一样的(所谓竞价推广账户模型是指竞价推广账户记账办法),BTC用UXTO模型,ETH和BTS币用竞价推广账户余额模型。

UXTO模型(Unspent Transaction Outputs ):此模型表达了一种转移的定义,即任何产生的新币,在将来的生命周期中,只有转移,没消亡,转移实质上是由加密算法的签名与验证控制的:

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

记账节点需要拜占庭将军问题可解/防止

共识过程是演化稳定的,即面对适量的不同节点的矛盾数据不会崩溃。

共识过程可以解决double-spending问题

所以作为一个技术职员,不应当只看到了区块链所依靠的技术,更应该关注区块链以外的点和面,综合来看,区块链将会有趣得多。

有关区块链本身的进步史,互联网上资料比较多,本文不再赘述。

而有关区块链技术的介绍,在各个区块链平台的社区是有详细资料的,但针对这部分资料的概要,与抽象出一共通定义的介绍,还是凤毛麟角,本文尝试概要一下。

在介绍之前,我想稍微介绍一下公有链,网盟链的定义,这部分定义是ETH开创者Vitalik提出的,我在这部分定义的基础上做了一些研究。

其实区别公有链、网盟链非常简单,只须看这个区块链的访问权限就好了,假如访问该区块链需要获得链上节点的许可,那样这是一个网盟链,不然是公有链。

依据名字,大家也可以”望文生义“,公有表示一个完全开放的互联网,网盟表示一个半开放的互联网,成员之间是共享的,非成员身份是没自由访问权限的,所以大家也称网盟链为许可链。

下面大家来看几个比较主流的区块链平台(公有链,皆开源):

相同点:

(图4)

竞价推广账户余额模型:竞价推广账户余额模型摒弃了这种强验证的竞价推广账户模型,即竞价推广账户余额回归到数字加减,如此做提高了买卖的效率。

终于来到重点了,本文每节其实都可以展开成为独立的文章,内容所限,容易讲。

所谓区块链共识过程,在上文有所提及,是指怎么样将全网买卖数据客观记录并且不可篡改的过程。现在”三巨头”分别用不一样的共识算法(Consensus Algorithm), BTC用工作量证明PoW(Proof of Work),ETH马上转换为权益证明PoS(Proof of Stake),BTS币用授权权益证明DPoS(Delegated Proof of Stake)。

以上这部分算法我称之为“经济学”的算法,所谓经济学的算法,是指让作弊本钱可计算,且让作弊本钱总是远大于作弊带来的收益,即作弊无利可图,通过这种思想架构一个用于节点之间博弈的算法,并使之趋向一个稳定的平衡。

相对应的大家还有计算机范围的分布式一致性算法,比如Paxos、Raft,我也称之为传统分布式一致性算法。

他们之间的最大不同是:系统在拜占庭将军(Byzantine Generals Problem)情景下的靠谱性,即拜占庭容错(PBFT算法支持拜占庭容错)。然而无论是Paxos还是Raft算法,理论上都可能会进入没办法表决通过的死循环,但他们都是满足safety的,只不过放松了liveness的需要, PBFT也是如此。

下面是一些传统分布式一致性算法和区块链共识过程的异同点:

Ah3h3end only

此文出于传递更多信息之目的,并不意味着同意其看法或证实其描述。本网站所提供的信息,只供参考之用。

本文标签:

上一篇:苹果iMessage将在更新版中整理CircleBTC钱包

下一篇:没有了