什么是区块链扩容

大家好,关于什么是区块链扩容很多朋友都还不太明白,今天小编就来为大家分享关于.net如何开发区块链的知识,希望对各位有所帮助!

本文目录

  1. 区块链和人工智能:完美匹配
  2. 什么是区块链扩容
  3. 区块链技术的优势

区块链和人工智能:完美匹配

01

区块链和人工智能是目前最热门的两种技术趋势。尽管这两种技术有着高度不同的开发方和应用,但研究人员一直在讨论和探索它们的结合。

普华永道预测,到2030年,人工智能将为世界经济增加15.7万亿美元,因此全球GDP将增长14%。根据Gartner的预测,区块链技术带来的商业价值将在同年增加到3.1万亿美元。

根据定义,区块链是一个分布式的、分散的、不可变的分类账,用于存储加密数据。另一方面,人工智能是引擎或“大脑”,能够从收集的数据中进行分析和决策。

不言而喻,每种技术都有其各自的复杂程度,但人工智能和区块链都处于可以相互受益、相互帮助的境地。

由于这两种技术都能够以不同的方式对数据进行影响和实施,因此它们的结合是有意义的,而且可以将数据的利用提升到新的水平。同时,将机器学习和人工智能集成到区块链中,反之亦然,可以增强区块链的基础架构,提升人工智能的潜力。

此外,区块链还可以使人工智能更加连贯和易于理解,我们可以追踪和确定为什么要在机器学习中做出决策。区块链及其分类帐可以记录在机器学习下做出决策的所有数据和变量。

此外,人工智能可以比人类更好地提高区块链的效率。看看当前在标准计算机上运行区块链的方式,就可以证明这一点,即使是基本任务,也需要大量的处理能力。

智能计算能力

如果您要在计算机上运行区块链及其所有加密数据,则需要大量处理能力。例如,用于挖掘比特币的哈希算法采用了“强力”方法,即系统地列举解决方案的所有可能候选项,并在验证交易之前检查每个候选项是否满足问题陈述。

人工智能为我们提供了一个机会,让我们摆脱这一困境,以一种更加智能和高效的方式处理任务。想象一下一个基于机器学习的算法,如果给它适当的训练数据,它实际上可以“实时”地提高它的技能。

创建多样化的数据集

与基于人工智能的项目不同,区块链技术创造了分散、透明的网络,世界各地的任何人都可以在区块链公共网络环境下访问这些网络。虽然区块链技术是加密货币的分类账,但区块链网络现在正被应用于许多行业,以实现权力下放。例如,Singuarlitiynet特别专注于利用区块链技术鼓励更广泛的数据和算法分布,帮助确保人工智能的未来发展和“分散人工智能”的创建。

SingularityNET将区块链和人工智能结合起来,创建更智能、分散的人工智能块链网络,可以托管不同的数据集。通过在区块链创建一个应用编程接口,它将允许人工智能代理之间的相互通信。因此,不同的算法可以建立在不同的数据集上。

数据保护

人工智能的发展完全依赖于数据的输入——我们的数据。人工智能通过数据接收关于世界和世界上发生的事情的信息。基本上,数据是人工智能的来源,通过它,人工智能将能够不断提高自己。

另一方面,区块链本质上是一种允许在分布式分类账上加密存储数据的技术。它允许创建完全安全的数据库,获得批准的各方可以查看这些数据库。当区块链和人工智能结合时,我们有一个备份系统,用于备份个人的敏感和高价值的个人数据。

医疗或财务数据过于敏感,无法移交给一家公司及其算法。将这些数据存储在一个可被人工智能访问的区块链上,但只有在获得许可并通过适当程序后,才能在安全存储敏感数据的同时,为我们提供个性化建议。

数据货币化

将这两种技术结合起来可能带来的另一个颠覆性创新是数据货币化。对Facebook和谷歌等大公司来说,将收集的数据货币化是一个巨大的收入来源。

让其他人决定如何销售数据以便为企业创造利润表明数据正在被商业化,而且不利于我们。区块链允许我们加密保护我们的数据,并以我们认为合适的方式使用它。如果我们愿意,这也可以让我们个人货币化数据,而不会损害我们的个人信息。

同样的情况也适用于需要我们数据的人工智能程序。为了学习和开发人工智能算法,人工智能网络将被要求通过数据市场直接从其创建者那里购买数据。这将使整个过程比现在更加公平,而且没有技术巨头可以利用它的用户。

这样的数据市场也将为小公司开放。开发和提供人工智能对于那些不生成自己数据的公司来说是非常昂贵的。通过分散的数据市场,他们将能够访问其他过于昂贵和私人保存的数据。

信任人工智能决策

随着人工智能算法通过学习变得更加智能,数据科学家将越来越难理解这些程序是如何得出具体结论和决策的。这是因为人工智能算法将能够处理难以置信的大量数据和变量。然而,我们必须继续审核人工智能得出的结论,因为我们想确保它们仍然反映现实。

通过使用区块链技术,人工智能在决策过程中使用的所有数据、变量和过程都有不可改变的记录。这使得审计整个过程变得更加容易。

通过适当的区块链程序,可以观察到从数据输入到结论的所有步骤,观察方将确保这些数据没有被篡改,它让人们相信人工智能得出的结论。这是一个必要的步骤,因为如果个人和公司不了解人工智能应用程序的功能和决策的基础信息,他们就不会开始使用人工智能应用。

区块链技术和人工智能的结合仍然是一个很大程度上未被发现的领域。尽管这两种技术的融合在学术上受到了相当大的关注,但致力于这种突破性组合的项目仍然很少。

将这两种技术结合在一起有可能以前所未有的方式使用数据。数据是开发和增强人工智能算法的关键要素,区块链保护这些数据,允许我们审计人工智能从数据中得出结论的所有中间步骤,并允许个人将其生成的数据货币化。

人工智能可能具有难以置信的革命性,但它的设计必须极其谨慎——区块链可以对此提供很大帮助。这两种技术之间的相互作用将如何发展,谁也说不准,然而,其真正的颠覆潜力显然是存在的,并且正在迅速发展。

什么是区块链扩容

普通用户能够运行节点对于区块链的去中心化至关重要

想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池(质押池)的人。从大约 14分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着 79%的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将 450万枚额外代币分配给了一个未知地址。

一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。

到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时 450万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的 defi交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。

或许还有这么一部主题电影。或许会由 MolochDAO或其他组织进行资助。

这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个 telegram频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。

想象一下,如果用户运行区块链的验证节点(无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过 90%的矿工或质押者支持这些区块,故事会如何发展。

如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。

Hasu关于这一点的看法:

“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为 PoW或 PoS。”

假设你的社区有 37个节点运行者,以及 80000名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。

那么全节点工作的上限是什么?

为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。

全节点处理大量交易的能力主要受限于三个方面:

算力:在保证安全的前提下,我们能划分多少 CPU来运行节点?

带宽:基于当前的网络连接,一个区块能包含多少字节?

存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD足够吗?还是说我们需要 SSD?)

许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:

算力

错误答案:100%的 CPU应该用于区块验证

正确答案:约 5-10%的 CPU可以用于区块验证

限制之所以这么低的四个主要原因如下:

我们需要一个安全边界来覆盖 DoS攻击的可能性(攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)

节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步

运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度

节点也有其他非区块生产的工作要进行,大多数是验证以及对 p2p网络中输入的交易和请求做出响应

请注意,直到最近大多数针对“为什么只需要 5-10%?”这一点的解释都侧重于另一个不同的问题:因为 PoW出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如 Bitcoin NG,或使用 PoS权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。

并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近 100%,运行节点的能源消耗就越多,针对 DoS的安全系数就越低。

带宽

错误答案:如果没 2-3秒都产生 10 MB的区块,那么大多数用户的网络都大于 10 MB/秒,他们当然都能处理这些区块

正确答案:或许我们能在每 12秒处理 1-5 MB的区块,但这依然很难

如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100 Mbps甚至 1 Gbps的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:

“Mbps”是指“每秒数百万 bits”;一个 bit是一个字节的 1/8,因此我们需要将宣称的 bit数除以 8以获得字节数。

网络运营商,就像其他公司一样,经常编造谎言。

总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。

P2P网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块(更不用说交易在被打包进区块之前还要通过 mempool进行广播)。

当 Starkware在 2019年进行一项实验时,他们在交易数据 gas成本降低后首次发布了 500 kB的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以 MB/秒为单位的平均带宽,说服自己我们可以接受 1秒的延迟,并且有能力处理那种大小的区块。

存储

错误答案:10 TB

正确答案:512 GB

正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买 8 TB固态驱动(确实需要 SSD或 NVME;HDD对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有 512 GB,如果你让人们去购买硬件,许多人就会变得懒惰(或者他们无法负担 800美元的 8 TB SSD)并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。

一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然…

请点击输入图片描述

此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间(和带宽)也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的 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的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。

区块链技术的优势

1、去中心化

由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。

2、开放性

系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。

3、自治性

区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。

4、匿名性

由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自己产生信任,对信用的累积非常有帮助。

突出优势:

信息不可篡改

一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

扩展资料:

区块链起源于比特币,标志着上轮金融危机起点的雷曼兄弟倒闭后两周,2008年11月1日,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。

两个月后理论步入实践,2009年1月3日第一个序号为0的比特币创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生。

近年来,世界对比特币的态度起起落落,但作为比特币底层技术之一的区块链技术日益受到重视。在比特币形成过程中,区块是一个一个的存储单元,记录了一定时间内各个区块节点全部的交流信息。

各个区块之间通过随机散列(也称哈希算法)实现链接(chain,后一个区块包含前一个区块的哈希值,随着信息交流的扩大,一个区块与一个区块相继接续,形成的结果就叫区块链[3]。

参考资料:百度百科-区块链技术

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

原创文章,作者:,如若转载,请注明出处:https://www.peipei.net/77011.html

(0)
上一篇 2024年8月5日
下一篇 2024年8月5日

相关推荐

发表回复

登录后才能评论