一、“蜂巢思维”,区块链时代的第一性原理
人造世界就像天然世界一样,很快就会具有自治力、适应力以及创造力,也随之失去我们的控制。但在我看来,这却是个最美妙的结局。
——《失控》
"蜂巢思维"出自凯文·凯利的《失控》(1994),简单的说“蜂巢思维”就是“群体思维”。蜜蜂的群体结构,在蜂巢之中每个个体各有分工,自发维系整个蜂巢,蜂巢就像是一个整体,汇集了每个个体的思维。凯文·凯利用蜂巢思维比喻人类的协作带来的群体的智慧。
1.蜂群的“蜂巢思维”
“蜂群的灵魂”在哪里?早在1901年,比利时作家莫利斯·梅特林克发出了这样的疑问:它由谁统治,由谁发布命令,由谁预见未来……?
现在我们已经能确定统治者不是蜂后。当蜂群从蜂巢前面狭小的出口涌出时,蜂后只能跟着。蜂后的女儿负责选择蜂群应该何时何地安顿下来。五、六只无名工蜂在前方侦察,核查可能安置蜂巢的树洞和墙洞。他们回来后,用约定的舞蹈向休息的蜂群报告。在报告中,侦察员的舞蹈越夸张,说明她主张使用的地点越好。接着,一些头目们根据舞蹈的强烈程度核查几个备选地点,并以加入侦察员旋转舞蹈的方式表示同意。这就引导更多跟风者前往占上风的候选地点视察,回来之后再加入看法一致的侦察员的喧闹舞蹈,表达自己的选择。
除去侦察员外,极少有蜜蜂会去探查多个地点。蜜蜂看到一条信息:“去那儿,那是个好地方。”它们去看过之后回来舞蹈说,“是的,真是个好地方。”通过这种重复强调,所属意的地点吸引了更多的探访者,由此又有更多的探访者加入进来。按照收益递增的法则,得票越多,反对越少。渐渐地,以滚雪球的方式形成一个大的群舞,成为舞曲终章的主宰。最大的蜂群获胜。
这是一个白痴有、白痴享、白痴治的选举大厅,其产生的效果却极为惊人。这是民主制度的真髓,是彻底的分布式管理。曲终幕闭,按照民众的选择,蜂群挟带者蜂后和雷鸣般的嗡嗡声,向着通过群选确定的目标前进。这是一个由两万个群氓合并成的整体,它和比特币的方式有异曲同工之妙。
2.蚂蚁的“蜂巢思维”
从一个定居点搬到另一个定居点的蚁群,会展示出涌现控制下的“卡夫卡式噩梦”效应。你会看到,当一群蚂蚁用嘴拖着卵、幼虫和蛹拔营西去的时候,另一群热枕的工蚁却在以同样的速度拖着那些家当掉头东行。而与此同时,还有一些蚂蚁,也许是意识到了信号的混乱和冲突,正空着手一会儿向东一会儿向西的乱跑。简直是典型的办公室场面。
不过,尽管如此,整个蚁群还是成功地转移了。在没有上级作出任何明确决策的情况下,蚁群选定一个新的地点,发出信号让工蚁开始建巢,然后就开始进行自我管理。
3.鸟群的“蜂巢思维”
一个鸟群并不是一只硕大的鸟。科学报道记者詹姆斯·格雷克写道:“单只鸟或一条鱼的运动,无论怎样流畅,都不能带给我们像玉米地上空满天打旋的燕八哥或百万鲰鱼鱼贯而行的密集队列所带来的震撼。(鸟群疾转逃离掠食者的)高速电影显示出,转向的动作以波状传感的方式,以大约七十分之一秒的速度从一只鸟传到另一只鸟。比单只鸟的反应要快得多。”鸟群远非鸟的简单聚合。
4.算法生成的群体智慧
在《蝙蝠侠归来》中有一个场景,一大群黑色大蝙蝠一窝蜂地穿越水淹的隧道涌向纽约市中心。这些蝙蝠是由电脑制作的。动画绘制者先制作一只蝙蝠,并赋予它一定的空间以使之能自动地扇动翅膀;然后再复制出几十个蝙蝠,直至成群。之后,让每只蝙蝠独自在屏幕上四处飞动,但要遵循算法中植入的几条简单规则:不要撞上其他的蝙蝠,跟上自己旁边的蝙蝠,离队不要太远。当这些“算法蝙蝠”在屏幕上运行起来时,就如同真的蝙蝠一样成群结队而行了。
5.涌现——看不见的手
“蜂巢思维”的神奇在于,没有一只蜜蜂在控制它,但是有一只看不见的手,一只从大量愚钝的成员中涌现出来的手,控制着整个群体。它的神奇还在于,量变引起质变。要想从单个虫子的机体过度到集群机体,只需要增加虫子的数量,使大量的虫子聚集在一起,使它们能够相互交流。等到某一阶段,当复杂度达到某一程度时,“集群”就会从“虫子”中涌现出来。
蚂蚁研究的先驱者惠勒认为,集群所形成的超级有机体,是从大量聚集的普通昆虫有机体中“涌现”出来的。他指出,这种涌现是一种科学,一种技术的、理性的解释,而不是什么神秘主义或炼金术。
涌现是一种非常普通的自然现象。涌现这个概念表现的是一种不同类型的因果关系。在这里,2+2不等于4,甚至不可能意外地等于5。在涌现的逻辑里,2+2=苹果。当聆听巴赫时,充溢我们身心的所有“巴赫的气息”,就是一副富有诗意的图景,恰如其分地展现出富有含义的模式是如何从音符以及其他信息中涌现出来的。
要想洞悉一个系统所蕴藏的涌现结构,最快捷、最直接也是唯一可靠的方法就是运行它。就此而言,有什么潜藏在人类个体中没有涌现出来,除非所有的人都通过人际交流或政治管理联系起来?在这种类似于蜂巢的仿生超级思维中,一定酝酿着某种最出人意料的东西。这里有一个关于活系统的普遍规律:低层级的存在无法推断出高层级的复杂性。
计算机科学家越来越意识到,蜂巢思维和分布式问题是一体的,它们都是从一大堆相互连接的部件中涌现出来的模式。
6.从量变到质变
事物的涌现大都依赖于一定数量的个体,一个群体,一个集体,一个团伙,或是更多。满满一槽的水,当你拔去水槽的塞子,水就会开始搅动,形成涡流。涡流发展成为漩涡,像有生命一般成长。不一会儿,漩涡从水面扩展到槽底,带动了整个水槽里的水。不停变化的水分子瀑布在龙卷中旋转,时刻改变着漩涡的形状。
不管我们在何时拔掉塞子,漩涡都会无一例外地出现。漩涡是一种涌现的事物——如同群一样,它的能量及结构蕴涵于群体而非单个水分子的能量和特性之中。一如所有涌现的事物,漩涡的特性来源于大量共存的其他个体,一滴水并不足以显现出漩涡,而一把沙子也不足以引发沙丘的崩塌。
数量能带来本质性的差异。一粒沙子不能引起沙丘的崩塌,但是一旦堆积了足够多的沙子,就会出现沙丘,进而也就能引发一场沙崩。一些物理属性,如温度,也取决于分子的集体行为。当连接度高且成员数目大时,就产生了群体行为的动态特性——量变引起质变。
7.区块链:二十一世纪的图标
原子是20世纪科学的图标。原子象征着简单所代表的质朴力量,代表着牛顿的机械论世界观,不管是科学还是管理,都遵从于自上而下的层级结构。一个带有禅意的思想:原子是过去,下个世纪的科学象征是充满活力的网络。
网络的图标是没有中心的——它是一大群彼此相连的小圆点,是由一堆彼此指向、相互纠缠的箭头织成的网。达尔文在其巨著《物种起源》中论述了物种如何从个体中涌现而出。这些个体的自身利益彼此冲突,却又相互关联。当他试图寻找一幅插图做此书的结尾时,他选择了缠结的网。
网络是唯一有能力无偏见地发展或无引导地学习的组织形式。所有其他的拓扑结构都会限制可能发生的事物。群的拓扑结构多种多样,但是唯有庞大的网状结构才能包容形态的真正多样性。
网络是群体的象征,由此产生的群组织——分布式系统——将自我散布在整个网络,以致于没有哪一部分能说,“我就是我”。无数的个体思维聚在一起,形成了无可逆转的社会性。它所表达的既包含了计算机的逻辑,又包含了大自然的逻辑,进而展现出一种超越理解能力的力量。暗藏在网络之中的是神秘的看不见的手——一种没有权威存在的控制。原子代表的是简洁明了,而网络传送的是由复杂性而生的凌乱之力。
1962年,第一篇有影响力的论文《分布式通信网络》宣告网络的诞生,之后的几十年,网络得到巨大发展,发展成为有围墙花园的互联网。人们发现围墙花园并不是堡垒,反而更像是监狱。
区块链在这个时候应运而生,比特币在2008年金融危机之后首次打破围墙,创造了一个新的天地。经过近十年的发展,它已迅速发展成为一个3342亿美元的新兴行业。区块链基于P2P网络,融入密码学、概率论、计算机科学、行为经济学、社会学等多门学科,依赖群体智慧和涌现模式,组成了一个分布式、去中心化、协作及可适应性的网络。区块链将掀起一场革命,在这里,蜂巢似的群体是主角。
8.达尔文时代的数学原理
达尔文的自然选择说中最不能让人接受的部分就是它的必然性。自然选择的条件非常特殊,但这些条件一旦满足,自然选择就会无可避免地发生!自然选择也许不该被称为生物学定律。它发生的原因不是生物学,而是概率论。
进化不是一个生物过程,它整合了技术、数学、信息和生物学的过程,几乎可以说,进化是一条物理法则,适用于所有的群体,不管它们有没有基因。
我相信存在一种生命的数学。自然选择也许就是这种数学中的加法。要想充分解释生命的起源、复杂性的趋势以及智能的产生,不仅仅需要加法,还需要一门丰富的数学,由各种互为基础的复杂函数所组成。它需要更为深入的进化。单凭自然选择是远远不够的。要想大有作为,就必须融入更富创造力和生产力的过程。除去自然选择,它必须有更多的手段。
一如乘法是某种连加运算,但从这种快捷运算中涌现出了全新的力量,如果我们只把乘法看成是加法的重复,就永远也不可能掌握这种力量。只满足于加法,你就永远得不到E=mc²。
任何事物聚集成群都会与原来有所不同:聚合体越多,由一个聚合体触发另一个聚合体这样的相互作用就越有可能会呈指数级增长。在某个点上,不断增加的多样性和聚合体数量就会达到一个临界值,从而使系统中一定数量的聚合体瞬间形成一个自发的环,一个自生成、自支持、自转化的化学网络。
区块链就是这样的网络,聚合自组织的蜂巢,从多个维度上进行自然选择,在不同的尺度上,以不同的节律,用不同的风格运行着。这种多元化的深度进化,犹如智能,是从某种动态群落中涌现出来的。这种最具适应性的系统是如此不羁,以至于与失控之间仅一线之隔。进化的系统会自己找到这个平衡点。
引述阿博切那个怪人的话,他说:“我更关心那些空白的地方,那些能想象得到却实现不了的形态。”在区块链的网络里,未来已来!
二、区块链货币核心是什么,区块链的核心技术是什么
区块链的核心技术是什么?
简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。
或许以上概念过于抽象,我来举个例子,你就好理解了。
你可以想象有100台计算机分布在世界各地,这100台机器之间的网络是广域网,并且,这100台机器的拥有者互相不信任。
那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:
节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;
每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;
基于少数服从多数的原则,整体节点维护的数据可以客观反映交换历史。
区块链就是为了解决上述问题而产生的技术方案。
二、区块链的核心技术组成
无论是公链还是联盟链,至少需要四个模块组成:P2P网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。
1、P2P网络协议
P2P网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。
通常我们所用的都是比特币P2P网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求Peer节点的地址数据以及区块数据。
这套P2P交互协议也具有自己的指令集合,指令体现在在消息头(MessageHeader)的命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的PeerDiscovery的章节。
2、分布式一致性算法
在经典分布式计算领域,我们有Raft和Paxos算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的PBFT共识算法。
如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。
在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了Paxos和Raft为主的分布式系统。
而在区块链领域,多采用PoW工作量证明算法、PoS权益证明算法,以及DPoS代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是,它们融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。
PoW:通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。
PoS:这是一种股权证明机制,它的基本概念是你产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。
DPoS:简单来理解就是将PoS共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账。这个圈子可能是21个节点,也有可能是101个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将会极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。
3、加密签名算法
在区块链领域,应用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。
其中,难题友好性正是众多PoW币种赖以存在的基础,在比特币中,SHA256算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。
而在莱特币身上,我们也会看到Scrypt算法,该算法与SHA256不同的是,需要大内存支持。而在其他一些币种身上,我们也能看到基于SHA3算法的挖矿算法。以太坊使用了Dagger-Hashimoto算法的改良版本,并命名为Ethash,这是一个IO难解性的算法。
当然,除了挖矿算法,我们还会使用到RIPEMD160算法,主要用于生成地址,众多的比特币衍生代码中,绝大部分都采用了比特币的地址设计。
除了地址,我们还会使用到最核心的,也是区块链Token系统的基石:公私钥密码算法。
在比特币大类的代码中,基本上使用的都是ECDSA。ECDSA是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC(椭圆曲线函数)。
从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。
4、账户与交易模型
从一开始的定义我们知道,仅从技术角度可以认为区块链是一种分布式数据库,那么,多数区块链到底使用了什么类型的数据库呢?
我在设计元界区块链时,参考了多种数据库,有NoSQL的BerkelyDB、LevelDB,也有一些币种采用基于SQL的SQLite。这些作为底层的存储设施,多以轻量级嵌入式数据库为主,由于并不涉及区块链的账本特性,这些存储技术与其他场合下的使用并没有什么不同。
区块链的账本特性,通常分为UTXO结构以及基于Accout-Balance结构的账本结构,我们也称为账本模型。UTXO是“unspenttransactioninput/output”的缩写,翻译过来就是指“未花费的交易输入输出”。
这个区块链中Token转移的一种记账模式,每次转移均以输入输出的形式出现;而在Balance结构中,是没有这个模式的。
时过境迁,区块链经济的核心究竟是什么呢?
自比特币诞生以来,目前全球已陆续出现了1600多种虚拟货币,围绕着虚拟货币的生成、存储、交易等形成了庞大的产业链生态。但整体而言,行业尚处于初创期,离真正的价值应用区域还有很大距离。
区块链经济的核心在于商业逻辑和组织形态的重构,因此需要在多个行业获得应用落地的实例来表明其价值。本文将从区块链与行业需求相结合的角度,探讨区块链在各行业应用的商业模式。
首先,区块链的核心是解决了信用的问题:
信用是一切商业活动与金融的基础。美国自2011年起实行可信身份识别,而中国则通过实名制实现可监管的信息传播。区块链的意义在于第一次从技术层面建立了去中心化的信任,实现了完全分布式的信用体系。
其次,区块链解决了价值交换的问题:
传统网络可以实现信息的点到点传递,但无法实现价值的点到点传递。因为信息是允许复制的,而价值必须确权且具有唯—性,因此必须依赖一个中心化机构才能做到价值传递。区块链完美地解决了此问题,提供了一个实现价值点到点传递的方法,在价值传递过程中,由网络来实现记帐而不依赖某个中心化的机构。所以区块链有望成为构建新型金融的基础设施,成为未来价值互联网的基石。
区块链的应用
目前区块链的应用,主要有两种模式:
1)原生型的区块链应用:直接基于去中心化的区块链技术,实现价值传递和交易等应用,例如数字货币;
2)“区块链+”模式:将传统的场景和区块链底层协议相结合,以便提高效率,降低成本。预计区块链在各行业的应用,将以第二种模式为主。
区块链具有五大核心属性,即:交易属性(价值属性)、存证属性、信任属性、智能属性、溯源属性。如上核心属性与行业的需求相结合,解决行业痛点问题,成为了区块链在各行业应用的商业模式。
区块链+银行
1、跨境支付
跨境支付是长期以来困扰银行业的痛点问题。传统跨境支付手段包括两大类:一是网上支付,包括电子账户支付和国际信用卡支付,适用于零售小金额;二是银行汇款模式,适用于大金额的交易;二者均存在到账周期长、费用高、交易透明度低等问题。尤其是近年来随着跨境电商的兴起,方便、快捷、安全、低成本的跨境支付更成为行业的迫切需求。
区块链的作用:
区块链去中介化、交易公开透明的特点,没有第三方支付机构加入,缩短了支付周期、降低费用、增加了交易透明度。例如,2017年12月,招商银行联手永隆银行、永隆深圳分行,成功实现了三方之间使用区块链技术的跨境人民币汇款。其清算流程安全、高效、快速,大幅提升客户体验。
2、供应链金融
该领域的痛点在于融资周期长、费用高。以供应链核心企业系统为中心,第三方增信机构很难鉴定供应链上各种相关凭证的真伪,造成人工审核的时间长、融资费用高。
区块链的作用:
区块链将共识机制、存在性证明、不可篡改、可追溯等特性引入供应链金融,不需要第三方增信机构鉴定供应链上各种相关凭证的真实性,从而降低融资成本、缩短融资周期。例如,2017年4月,上市公司易见股份与IBM中国研究院联合发布了区块链供应链金融服务系统“易见区块”,该系统主推医药场景,目前己有30余家医药流通企业在“易见区块”注册成功,截至7月底交易数量己接近8000笔,投放总金额超过一亿元。
3、数字票据
数字票据行业的痛点在于长期存在“虚假票据”、“一票多卖”等问题,为银行业的票据融资业务带来了风险。
区块链的作用:
区块链的存在性证明、不可篡改的特性,有效解决了虚假数字票据的问题;同时,区块链解决了双花问题,可避免"一票多卖"。例如,深圳区块链金融服务有限公司发行票链产品,基于区块链提供票据的融资服务,解决中小微企业的票据融资需求。合作银行包括赣州银行、贵阳银行、苏州银行、石嘴山银行、廊坊银行、乌海银行、吉林九台农商银行、尧都农商银行、深圳农村行业银行、潍坊银行、中原银行等。此外,浙商银行、京东金融、恒生电子、海航等也在验证区块链数字票据服务。
区块链+证券
1、资产证券化
资产证券化是以未来的收入作为保证,以获得现在的融资。该领域的痛点在于:参与主体多,操作环节多,交易透明度低,信息不对称,底层资产真伪无法保证。
区块链的作用:
区块链为资产证券化引入了存在性证明、不可篡改、共识机制等属性,能够实时监控资产的真实情况,解决了交易链条各方机构对底层资产的信任问题。各类资产如股权、债券、票据、收益凭证、仓单等均可被整合进区块链中,成为链上数字资产,提升资产流转效率,降低成本。例如,2017年5月,百度金融与佰仟租赁、华能信托等在内的合作方联合发行区块链技术支持的资产证券化ABS项目,发行规模达4.24亿元。
区块链+保险
1、保险业务
保险行业存在着信息不对称,客户与保险机构之间缺乏信任等问题:用户难以选择适合自己的保险产品,而保险机构则面临骗保的风险。
区块链的作用:
区块链的去中心化、开放透明、可追溯的特点,为保险机构和用户间建立良好的沟通渠道;保险标的信息在区块链上统一管理,不可篡改,帮助保险机构规避骗保风险;同时,通过智能合约可提升工作效率,降低成本。例如,法国保险巨头安盛保险(AXA)正在使用以太坊公有区块链为航空旅客提供自动航班延迟赔偿。如果航班延迟超过2小时,“智能合约”保险产品将会向乘客进行自动理赔。
2、征信管理
该领域的痛点在于征信机构的数据采集渠道有限,数据缺乏共享,导致难以准确表征个人或机构的信用情况;此外,数据收集过程中也存在如何保障用户隐私的问题。
区块链的作用:
区块链具有去信任、共识、不可篡改的特征,在技术层面保证了可以在有效保护用户隐私的基础上实现有限度、可管控的信用数据共享和验证。例如,目前中国平安的区块链征信业务已上线运行,此外国内的创业公司如上海矩真、LinkEye、布比区块链等也在进行联合征信、安全存证等方面的探索。
作为一种基础性技术,区块链在众多具有分布式处理、点对点交易、快速建立信任关系等需求的行业领域具有极大的应用价值,其核心是解决了信用的问题,实现了价值的点到点传递。因此被认为是未来价值互联网的基石。
区块链商业模式的核心在于,利用区块链引入的创新属性,与传统行业应用相结合,实现商业逻辑的重构,以便创造新的应用场景,或提升效率,降低成本。
区块链也将延伸到社会生活的各个领域:区块链解决了数字化资产的管理、交易、转移等问题,因此将在资产数字化的浪潮中发挥重要作用,如供应链管理、数据服务、资产管理、公共服务、物联网等应用正在各个领域逐步落地,“区块链+”正在成为现实。
什么是区块链技术?区块链技术的核心构成是什么?从技术的角度,架构的角度,用通俗的语言来跟大家讲讲,我对区块链的一些理解。
究竟啥是区块链?Blockchain,一句话来说,区块链是一个存储系统,存储系统更细一点,区块链是一个没有管理员,每个节点都拥有全部数据的分布式存储系统。
那常见的存储系统,是什么样子的呢?
如上图所示,底部是数据,上面可以写入数据。一个空间存储数据,一个软件管理数据,提供接口写入数据,这就是存储系统。比如MySQL就是最常见的存储系统。
普通的存储系统,容易存在什么问题呢?至少有两个常见的问题
第一个是非高可用的问题,数据存在一个地方很危险。用技术的话说,就是数据不高可用。
第二个问题是,它存在写入的单点,写入点只有一个。用技术的话说,就是它是一个单点控制。
那普通的存储系统通常是如何解决这两个问题的呢?
首先看一下如何保证高可用?
普通的存储系统通常是用“冗余”的方式来解决高可用问题的。图上图所示如果能够把数据复制成几份,冗余到多个地方,就能够保证高可用。一个地方的数据挂了,另外的地方还存有数据,例如MySQL的主从集群就是这个原理,磁盘的RAID也是这个原理。
这个地方需要强调的两点是:数据冗余,往往会引发一致性的问题
1、例如MySQL的主从集群中中其实读写会有延时的,它其实就是有一个短的时间内读写不一致。这个是数据冗余,带来的一个副作用。
2、第二个点是数据冗余往往会降低写入的效率,因为数据同步也是需要消耗资源的。你看单点写入,如果加了两个从库之后,其实写入的效率会受影响。普通的存储系统,就是采用冗余的方式,保证数据的高可用的。
那么第二个问题,普通的存储系统,能否多点写入呢?
答案是可以的,比如说以这个图为例:
其实MySQL的话可以做一个双主的主从同步,双主的主从同步,两个节点,同时可以写入。如果要做多机房多活的数据中心,其实多机房多活也是进行数据同步的。这里要强调的是多点写入,往往会引发写写冲突的一致性问题,以MySQl为例,假设有一个表的属性是自增ID,那么现在数据库中的数据是1234,那么其中一个节点写入,插入了一条数据,那它可能变成5了,然后这5条数据,向另外一个主节点进行数据同步,同步完成之前,如果另外一个写入节点,也插入了一条数据,也生成了一条这个自增id为5的数据。那么,生成之后,往另外一个节点同步,然后同步数据到达之后会与本地的这两条5冲突,就会同步失败,会引发写写的一致性冲突问题。这个多点写入的话都会出现这个问题。
多点写入,如何保证一致?
维新“天鹅大咖课”给你更多的技术干活
区块链技术的核心层是什么?重庆金窝窝分析:共识机制是区块链技术的核心,共识机制很大程度上决定了整个区块链系统节点之间的相互信任程度,也决定了其他使用者对于区块链上数据的信任程度
区块链技术的核心是?区块链技术
的核心是共识算法,共识算法的本质是在
分布式网络
中,各节点互不信任的条件下,通过举证
稀缺资源
的方式,形成了
纳什均衡
的博弈场,赢得各方的信任,快速在各个节点之间达成一致,并同步的完成任务。
三、POA(Proof of Activity)区块链共识算法
POA(Proof of Activity)算法是一个区块链的共识算法,基本原理是结合POW(Proof of work)和POS(Proof of stake)算法的特点进行工作,POW算法和POS算法的具体内容可以参考:
POW算法:
POS算法:
POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。
POA算法需求的网络中同样包含两类节点,矿工和普通参与者,其中普通参与者不一定一直保持在线。POA算法首先由矿工构造区块头,由块头选出N个币,这N个币的所有者参与后续的校验和生成块的过程。
从这里可以看到POA算法不仅与算力有关,后续的N个参与者的选举则完全由参与者在网络中所拥有的币的总数量决定。拥有越多币的参与者越有机会被选为N个后续的参与者。而后续N个参与者参与的必要条件是这N个参与者必须在线,这也是POA命名的由来,POA算法的维护取决于网络中的活跃节点(Active)。
POA算法的一个理想的基本流程是,类似于POW协议,矿工构造出一个符合难度要求的块头,通过矿工得到的块头计算衍生出N个币的编号,从区块链中追溯可以得到这几个币目前所述的参与者。矿工将这个块头发送给这N个参与者,其中前N-1个参与者对这个块进行校验和签名,最后第N个参与者校验并将交易加入到该块中,将这个区块发布出去,即完成一个区块的出块。
一个理想过程如下图所示:
在实际运行中,无法保证网络上所有参与者都在线,而不在线的参与者则无法进行校验和签名,这个无法被校验和签名的块头则会被废弃。
即在实际运行中,应该是一个矿工构造出块头后广播给各个参与者签名,同时继续重新构造新的块头,以免上一个块头衍生的N个参与者存在有某一个没有在线,而导致块头被废弃。
因此,在这种情况下,一个块是否被确认不仅与矿工的计算能力有关同时也与网络上的在线比例有关。
与纯POW相比,在与比特币(POW)同样10分钟出一个块的情况下,POA由于会有参与者不在线而产生的损耗,因此,10分钟内矿工可以构造的块的数量会更多,即块头的难度限制会降低,那么矿工在挖矿过程中会造成的能量损耗也会降低。
与纯POS相比,可以看到POA的出块流程并不会将构造区块过程中的相关信息上链,可以明显减少区块链上用于维护协议产生的冗余信息的量。
本节对上诉协议中一些参数设置进行分析
在矿工构造出块头后对块头进行校验和区块构造的N个参与者的数量选定比较类似于比特币中每一个块的出块时间的选取。比特币中选择了10分钟作为每一个块的期望出块时间并通过动态调节难度来适应。
这里N的取值同样可以选择选定值或者动态调节。动态调节需要更加复杂的协议内容,同时可能会带来区块链的数据膨胀,而复杂的协议也增加了攻击者攻击的可能性。另外暂时没有办法证明动态调节可以带来什么好处。静态调节在后续的分析(4安全分析)中可以得到N=3的取值是比较合适的。
从上面的描述可以看到,构造新的区块的除了矿工还有从块头中衍生出来的N个币所有者。在构造出一个新的区块后,这些参与者同样应该收到一定的激励,以维持参与者保持在线状态。
矿工与参与者之间的非配比例与参与者的在线状态相关。给予参与者的激励与参与者保持在线状态的热情密切相关,越多参与者保持在线状态,能更好地维持网络的稳定。因此,可以在网络上在线参与者不够多的时候,提高参与者得到的激励分成比例,从而激发更多的参与者上线。
如何确定当前参与者的在线情况呢?可以最后第N个参与者构造区块时,将构造出来但是被废弃的块头加入到区块中,如果被丢弃的块头数量过多,说明在线人数过低,应当调节分成比例。
同时最后第N个参与者与其他参与者的分成同样需要考虑,第N个参与者需要将交易加入区块中,即需要维护UTXO池,同时第N个参与者还需要将被丢弃的块头加入新构建的区块中。
为了激励其将废弃区块头加入新构建的区块中,可以按照加入的区块头,适当增加一点小的激励。虽然加入更多的区块头,可以在下一轮的时候增加分成的比例,应当足够激励参与者往区块中加入未使用的块头了(这里参与者不可能为了增加分成而更多地加入区块头,每一个区块头都意味着一位矿工的工作量)。
一个参与者如果没有维护UTXO池则无法构造区块,但是可以参与前N-1个的签名,因此为了激励参与者维护UTXO池,作为最后一个构造区块的参与者,必须给予更多的激励,比如是其他参与者的两倍。
从3.2的描述中可以知道一个用户必须在线且维护UTXO池才可能尽可能地获得利益。这种机制势必会导致一些用户将自己的账户托管给一个中心化的机构。这个机构一直保持在线,并为用户维护其账户,在被选为构造区块的参与者时参与区块的构建并获取利益。最后该机构将收益按照某种形式进行分成。
上面说到参与者必须用自己的密钥进行签名,而托管给某个机构后,这个机构在可以用这个密钥签名构造区块的同时,也有可能使用这个密钥消费用户的财产。这里可以采用一种有限花销的密钥,这个密钥有两个功能,一个是将账户中的部分财产消费出去,另一个是将所有财产转移到一个指定账户。在托管的时候可以使用这个密钥,在被通知部分财产被花费后可以立即将所有财产转移到自己的另一个账户下,以保证财产的安全。
从上面的分析可以看到,POA的安全性与攻击者所拥有的算力和攻击者所拥有的股权有关。假设攻击者拥有的在线股权占比为,则攻击者的算力需要达到其他所有算力的倍才能达成分叉。假设攻击者股权总占比为,网络中诚实用户的在线比例为,则攻击者的算力需要达到其他所有算力的倍才能达成攻击。
攻击的分析表格如下:
从上文的分析可以看到,POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。同时,PoA协议的攻击成本要高于比特币的纯PoW协议。
参考文献:Proof of Activity: Extending Bitcoin’s Proof of Work via Proof of Stake
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://www.ssyg068.com/biquanzx/17276.html
发表回复
评论列表(0条)