区块链存储器太大
‘壹’ 浅谈区块链存储和流量技术积累—真正WEB3的时代即将来临
现代 社会 对存储和流量技术有哪些突破进步呢?下面简单给大家梳理一下。
目前的互联网都是中心化的流量和存储。随着世界发展,诞生了bt网络,bt网络是一套分布式的存储和流量系统。但是也有它的局限性,第一,bt网络只能对单个文件进行传输和分享。第二,bt网络并没有激励机制,简单来说就是大家加入bt网络,但是并没有主动去保存,分发文件的意愿,因为这对于参与者来说是没有好处的。
随着bt网络缺陷的暴露,诞生了IPFS。也就是Filecoin项目方协议实验室研发的IPFS系统。IPFS是bt网络的升级版。它于bt网络的基础上加入了文件夹系统。在IPFS系统中,可以直接传输和分享文件夹。其他人也可以直接从文件夹里浏览相关数据和文件等等。
但是IPFS和bt网络一样,存在几个方面的问题。第一:没有激励体系。第二:文件在传输的初期,由于存储文件的节点非常少,效率非常低下。比如A上传一个文件,B需要检索,只能从A检索。因此效率很低,如果C要检索,只能从A,B这两个节点检索。如果A,B都关机的话,文件将不会被检索到。这就是IPFS和bt网络存在的问题,它们初期传输效率及其低下,只有文件被无数次检索,在节点中广泛分布的时候,传输速度才会变得非常快速。所以bt网络和IPFS系统,它们都是一个由慢到快的过程。如果检索一个在节点中分布比较少的文件的话,检索能力是非常弱的,传输速度也很慢。为了解决这个激励机制的问题,协议实验室他们开发了Filecoin这一条供应链。
Filecoin和IPFS是两个概念,Filecoin其实是将现实中的IPFS搬上区块链。而区块链特点是去中心化,节点之间是互不信任的,节点间传输的数据,都要重新验算一遍。这导致区块链的性能非常低下。IPFS上链以后就形成了Filecoin。因此Filecoin也受制于区块链性能的影响,导致无法对有效数据进行撮合,也没有办法实行高效检索。而Filecoin实现了数据在区块链上的存储,这个是一个非常重大的贡献。随后又出现了SWARM和BZZ,但BZZ由于没有爆块激励机制,只有一个流量的结算系统,目前看来是失败的。但是BZZ相对比IPFS和Filecoin,也做出了一定改进:一套主动分发的机制。举个例子:当我上传一个视频,该视频会被节点主动分发。视频就会迅速缓存到多个节点。因此BZZ在流量的结算以及高效的检索上都有非常突出的贡献。虽然它留下了技术贡献,但它仍然是一个失败的项目。
从目前来看,流量和存储在区块链领域都已经解决了大部分的问题。其次就是区块链性能的问题。经过多年的进化,Layer0,Layer1,Layer2也经过不断的实验。近几年在Layer1领域的研究已经取得了非常多的成果与包括专利。相信高性能公链的突破很快就会出现。
因此,想要建立一套真正类似于web3这样的区块链网络,应该实现三个方面的突破:第一:高效的检索。第二:对存储和流量分别进行激励。第三则是一定要有授权的访问体系。授权的访问体系就类似于大家在看视频网站时需要支付费用才能获得数据。在传统互联网的世界有很多变现的渠道。而区块链的互联网世界刚刚成型。因此生态建设者能够直接获得一定的收益。这样才能够促进生态的繁荣,也能够让生态的建设者能够持续贡献更多有用的应用,最后,高性能公链的突破也是必不可缺的一环。因此具备了以上的四个条件,web3也就离我们越来越近了。
本内容由原创曾波老师授权,未经允许不得擅自修改与转载
‘贰’ 区块链中的数据存在哪里
简单回答:区块链的数据就是存在每一个节点中(可以是个人机,也可以是其他);区块链的确是一个公众可以修改的数据库,只不过你只能够使用你持有的秘.钥,修改你秘.钥相对的"账户"的数据。
不过,不同的区块链的数据存储方式与数量是不同的。已 BTC 为例,其数据是存在每一个节点中,目前 BTC 的节点数据大概是200多G,其增长速度是每个月10G左右,个人机问题不大的。
但是,数据量的确是越来越大了!至少很快个人笔记本就很难运行 BTC 全节点了。对于以太坊来说,记录了所有数据的存档节点应该有数 T 的存储量,这对于个人机来说是不可能运行的。
‘叁’ 什么是区块链扩容
普通用户能够运行节点对于区块链的去中心化至关重要
想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池 (质押池) 的人。从大约 14 分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着 79% 的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将 450 万枚额外代币分配给了一个未知地址。
一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。
到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时 450 万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的 defi 交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。
或许还有这么一部主题电影。或许会由 MolochDAO 或其他组织进行资助。
这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个 telegram 频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。
想象一下,如果用户运行区块链的验证节点 (无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过 90% 的矿工或质押者支持这些区块,故事会如何发展。
如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。
Hasu 关于这一点的看法:
“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为 PoW 或 PoS。”
此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间 (和带宽) 也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的 geth 节点花了我大约 15 个小时。如果以太坊的使用量增加 10 倍,那么同步一个新的 geth 节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。
交互效应
此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级 (或前几级) 可以缓存在 RAM 中,所以磁盘访问成本与数据库大小成正比,是 RAM 中缓存数据大小的倍数。
不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独 (但很大) 的层 (参见 leveldb 中使用的 LSM 树)。但基本原理是一样的。
例如,如果缓存为 4 GB,并且我们假设数据库的每一层比上一层大 4 倍,那么以太坊当前的 ~64 GB 状态将需要 ~2 次访问。但是如果状态大小增加 4 倍到 ~256 GB,那么这将增加到 ~3 次访问。因此,gas 上限增加 4 倍实际上可以转化为区块验证时间增加约 6 倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。
这对以太坊来说意味着什么?
现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的 (我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来 gas limit 的大幅提升。即使解决了以太坊最大的 DoS 弱点,也只能将 gas limit 提高 20%。
对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显着提升 gas limit 开辟空间。但即使在实施无状态和状态逾期之后,gas limit 也可能只会安全地提升约 3 倍,直到其他限制开始发挥作用。
另一个可能的中期解决方案使使用 ZK-SNARKs 来验证交易。ZK-SNARKs 能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs 不能无限地提升节点能力,但是仍然能够对其进行大幅提升 (或许是 1-2 个数量级)。一些区块链在 layer1 上探索该形式,以太坊则通过 layer2 协议 (也叫 ZK rollups) 来获益,例如 zksync, Loopring 和 Starknet。
分片之后又会如何?
分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。
因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。
以太坊计划采用二次方分片 (quadratic sharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。
可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。
那么这些风险是什么呢?
最低用户数量
可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理 50 TPS,而链可以处理 10000 TPS,那么链至少需要 200 个节点才能存续。如果链在任何时候都少于 200 个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。
在实践中,由于需要冗余 (包括数据可用性采样),安全的最低数量比简单的“链 TPS 除以节点 TPS”高几倍,对于上面的例子,我们将其设置位 1000 个节点。
如果分片区块链的容量增加 10 倍,则最低用户数也增加 10 倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?
这里有几个问题:
区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。
如果许多用户突然同时意外掉线怎么办?
增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。
最低用户数为 1,000,这几乎可以说是没问题的。另一方面,最低用户数设为 100 万,这肯定是不行。即使最低用户数为 10,000 也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。
历史可检索性
用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在 10 年内不再存在。而以太坊上的 NFT 是永久的。
是的,到 2372 年人们仍能够下载并查阅你的加密猫。
但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。
要量化这种风险很容易。以区块链的数据容量 (MB/sec) 为单位,乘以 ~30 得到每年存储的数据量 (TB)。当前的分片计划的数据容量约为 1.3 MB/秒,因此约为 40 TB/年。如果增加 10 倍,则为 400 TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据 (例如解压缩汇总交易),因此每年达到 4 PB,或十年后达到 40 PB。Internet Archive (互联网档案馆) 使用 50 PB。所以这可以说是分片区块链的安全大小上限。
因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。
结语
尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要 ZK-SNARK、rollups 或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。
运行区块链节点的计算机无法使用 100%的 CPU 来验证区块链;他们需要很大的安全边际来抵抗意外的 DoS 攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10 MB/s 的连接并不意味着每秒可以处理 10 MB 的区块!也许每 12 秒才能处理 1-5 MB 的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。
‘肆’ 区块链与大数据存储究竟有着怎样的关系
区块链和大数据存储的关系如下:
一、数据安全:区块链让数据真正“放心”流动起来
区块链以其可信任性、安全性和不可篡改性,让更多数据被解放出来。用一个典型案例来说明,即区块链是如何推进基因测序大数据产生的。区块链测序可以利用私钥限制访问权限,从而规避法律对个人获取基因数据的限制问题,并且利用分布式计算资源,低成本完成测序服务。区块链的安全性让测序成为工业化的解决方案,实现了全球规模的测序,从而推进数据的海量增长。
二、数据开放共享:区块链保障数据私密性
政府掌握着大量高密度、高价值数据,如医疗数据、人口数据等。政府数据开放是大势所趋,将对整个经济社会的发展产生不可估量的推动力。然而,数据开放的主要难点和挑战是如何在保护个人隐私的情况下开放数据。基于区块链的数据脱敏技术能保证数据私密性,为隐私保护下的数据开放提供了解决方案。数据脱敏技术主要是采用了哈希处理等加密算法。例如,基于区块链技术的英格码系统(Enigma),在不访问原始数据情况下运算数据,可以对数据的私密性进行保护,杜绝数据共享中的信息安全问题。例如,公司员工可放心地开放可访问其工资信息的路径,并共同计算出群内平均工资。每个参与者可得知其在该组中的相对地位,但对其他成员的薪酬一无所知。
数据HASH脱敏处理示意图
三、数据存储:区块链是一种不可篡改的、全历史的、强背书的数据库存储技术
区块链技术,通过网络中所有节点共同参与计算,互相验证其信息的真伪以达成全网共识,可以说区块链技术是一种特定数据库技术。迄今为止我们的大数据还处于非常基础的阶段,基于全网共识为基础的数据可信的区块链数据,是不可篡改的、全历史的、也使数据的质量获得前所未有的强信任背书,也使数据库的发展进入一个新时代。
四、数据分析:区块链确保数据安全性
数据分析是实现数据价值的核心。在进行数据分析时,如何有效保护个人隐私和防止核心数据泄露,成为首要考虑的问题。例如,随着指纹数据分析应用和基因数据检测与分析手段的普及,越来越多的人担心,一旦个人健康数据发生泄露,将可能导致严重后果。区块链技术可以通过多签名私钥、加密技术、安全多方计算技术来防止这类情况的出现。当数据被哈希后放置在区块链上,使用数字签名技术,就能够让那些获得授权的人们才可以对数据进行访问。通过私钥既保证数据私密性,又可以共享给授权研究机构。数据统一存储在去中心化的区块链上,在不访问原始数据情况下进行数据分析,既可以对数据的私密性进行保护,又可以安全地提供给全球科研机构、医生共享,作为全人类的基础健康数据库,对未来解决突发疾病、疑难疾病带来极大的便利。
五、数据流通:区块链保障数据相关权益
对于个人或机构有价值的数据资产,可以利用区块链对其进行注册,交易记录是全网认可的、透明的、可追溯的,明确了大数据资产来源、所有权、使用权和流通路径,对数据资产交易具有很大价值。
一方面,区块链能够破除中介拷贝数据威胁,有利于建立可信任的数据资产交易环境。数据是一种非常特殊的商品,与普通商品有着本质区别,主要是具有所有权不清晰、 “看过、复制即被拥有”等特征,这也决定了使用传统商品中介的交易方式无法满足数据的共享、交换和交易。因为中介中心有条件、有能力复制和保存所有流经的数据,这对数据生产者极不公平。这种威胁仅仅依靠承诺是无法消除的,而这种威胁的存在也成为阻碍数据流通巨大障碍。基于去中心化的区块链,能够破除中介中心拷贝数据的威胁,保障数据拥有者的合法权益。
另一方面,区块链提供了可追溯路径,能有效破解数据确权难题。区块链通过网络中多个参与计算的节点来共同参与数据的计算和记录,并且互相验证其信息的有效,既可以进行信息防伪,又提供了可追溯路径。把各个区块的交易信息串起来,就形成了完整的交易明细清单,每笔交易来龙去脉非常清晰、透明。另外,当人们对某个区块的“值”有疑问时,可方便地回溯历史交易记录进而判别该值是否正确,识别出该值是否已被篡改或记录有误。
一切在区块链上有了保障,大数据自然会更加活跃起来。
币盈中国平台上众筹项目的代币都是基于区块链技术开发出来的,相关的信息都会记录到区块链上。
‘伍’ 区块链信息越来越大怎么办
当初中本聪也考虑了这个问题,他认为技术也在不断发展中,更好的存储和网络技术有能力存储和传输日益增长的区块链。 即使如此,中本聪还是设置了每个区块1M大小的限制,防止区块链过度膨胀。 让我们做一个计算:每十分钟产生一个区块链,那么比特币诞生10年以后,也就是到2019年,区块链的大小可能会有多大:10*365*24*6 ≈ 525G。再过10年到2029年,差不多1T。即使在现在看来,问题也不大。所以倒是不必太担心。
但区块链的空间,不仅仅会随着时间增长。现在每个区块1M的空间,已经有些不能够满足比特币的发展了。为什么?因为交易量大了,每个区块空间只有1M,能容纳的交易数量有限,所以就要考虑扩容区块链来突破这个限制。 2015年,社区对区块链的扩容讨论了多次。最终,仍然保持1M大小的区块链空间,但可以容纳更多交易的“隔离见证”技术生出,可能会作为区块链扩容的第一步。后续还会有“闪电网络”其他技术来缓解区块链空间紧张的问题。 但无论如何,比特币区块链也不可能无限扩容。在我的思考中,比特币区块链最终会成为一个锚,其他应用有自己的数据保存方式,不必都保存在比特币区块链上,但可以把数据的Merkle根保存在比特币区块链,一次来保证数据的安全性。
‘陆’ 区块链是什么概念
区块链是一个可以共同记账的数字账本,会记录所有曾经发生并经过系统一致认可的交易。相当于全家总动员的方式记账,你在记账,你爸爸和妈妈也在记账,他们都能看到总账,但是已经被保存的信息就无法再被篡改。
2008年由中本聪第一次提出了区块链的概念。随后区块链成为了电子货币比特币的核心组成部分,是作为所有交易的公共账簿。通过利用点对点网络和分布式时间戳服务器,区块链数据库能够进行自主管理。
(6)区块链存储器太大扩展阅读:
区块链的类型
1、公有区块链
世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。
2、联合(行业)区块链
行业区块链(Consortium Block Chains):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。
3、私有区块链
仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。
‘柒’ 区块链交易信息如何存储
区块链是大型的分布式账本,详细的数据要想存放在最长的那条链上,通过哈希来验证数据,经过大部分节点验证的数据才可以保存到最长的那条链上,节点和节点之间可以同步最新的数据,同时达到数据的分布式存储,不易篡改。每笔交易对应的有个时间戳,可以根据时间戳来查询每笔交易状态,也就是可溯源性。
‘捌’ 区块链技术中数据的储存方式是怎样的
简单的来说,区块链的数据储存是通过区块通过公式算法过程后被正式纳入区块链中储存,全网节点均表示接受该区块,而表示接受的方法,就是将区块的随机散列值是为最新的区块散列值,兴趣快的制造将以该区块链为基础进行延长。
‘玖’ 区块链是什么,如何评价区块链
首先不要把区块链想的过于高深,他是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上(中心化的特征),区块链认为,任何有能力架设服务器节点的人都可以参与其中。来自全球各地的掘金者在当地部署了自己的节点,并连接到区块链网络中,成为这个分布式数据库存储系统中的一个节点;一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化、分布式的特征)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又依次的同步,从而实现在区块链网络中所有节点的数据完全一致。
区块链本身是一种技术,因此,它本身不可能是骗局,就像近年来正火的“p2p”金融一样,有多少骗子是披着P2P的概念,非法吸收公众资金,骗取老百姓的血汗钱的?但“P2P”有罪吗,它只是是互联网金融的一种个人对个人的模式而已,它不仅创造了利润,还使成千上万人摆脱了贫困,使扶贫者与被扶贫者达到双赢。币汇数字货币交易平台
问题的存在,不可能阻碍区块链的发展步伐,诸如简单支付验证、侧链、闪电网络协议等技术的提出和深入研究,已经是区块链实实在在解决的问题了。
‘拾’ 区块链解决了什么问题
如果用一句话说明就是:去中心化。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
优点:
1)算法简单,容易实现;
2)节点间无需交换额外的信息即可达成共识;
3)破坏系统需要投入极大的成本。
缺点:
1)浪费能源;
2)区块的确认时间难以缩短;
3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;
4)容易产生分叉,需要等待多个确认;
5)永远没有最终性,需要检查点机制来弥补最终性。