区块链扩容真实故事 十个故事了解区块链

gateio 206 0

本篇文章主要给网友们分享区块链扩容真实故事的知识,其中更加会对十个故事了解区块链进行更多的解释,如果能碰巧解决你现在面临的问题,记得关注本站!

几个惊心动魄的区块链故事

昨天把Emily送到学校后,就急匆匆区块链扩容真实故事的回家。每个月的六号是我们十班定投的日子,当我打开电脑,吓区块链扩容真实故事了一跳,前一天比特币还在7300美金左右横盘,怎么一下子就变成了6400美金,揉揉眼,没错,一夜之间跌幅就高达13%多,之前潜意识一直以为会突破7400关口,没想到熊市有一个原则叫“横久必跌”。

当然在区块链世界里,昨天13%的下跌也不算什么新奇事,我们这批老韭菜跟着李笑来的财富自由之路来到这个“激动人心”的世界,一年多的时间,虽然彩虹还没有看见,但也算是经历过风雨。去年的94政策,几天时间比特币就跌幅36%,那时候云币里有钱却不敢买,现在才知道自己当时是多么的傻B。那时候真的什么都不懂,金融不懂,区块链不懂,投资更加不懂,只知道李笑来很牛B,在他专栏下面留言的人很牛B,我要加入他们,谁也别拦我,谁拦我,我跟谁急,就这样一腔热血的All-in区块链。

但是正是因为胆子太小,这一年下来,操作很少很少,也正因为操作少,亏损也就不多。我自己的区块链故事平淡得就像一杯白开水。

昨天看了腾讯《和陌生人说话》里一期关于区块链故事的视频节目,节目中采访了三个人分别是打工仔曾文,币圈大佬七彩神鱼和一个大二的学生刘珂。

打工仔曾文,初中文化,最早在富士康打工,忙得连上厕所都是一路小跑的去,自述因为人太老实总是被他人欺负,什么苦活累活都干过,就是没钱。后来认识了一个女朋友,对他百般的好,目的就是为了把他拉到传销组织,结果把父母的血汗钱六万元全部赔光,从传销组织逃出来,有被人骗去做老鼠仓,后面人的钱补前面人的窟窿,自然洞总有补不了的那一天,把自己村庄里的男女老幼都给坑了,欠了30万的债,吓得过年都不敢回家。后来想到如果靠打工,这辈子都还不清这么多钱,再次听朋友介绍,把他带进了区块链。2017年赶上区块链牛市,最高时一天就挣了三万,几个月下来突然就变成了百万富翁,买的币都是十倍,百倍的上涨。不但把之前欠得钱全部还清,还给父母寄钱,帮他们买对戒,为家里添置了村里最大的电视机。自己当然也达到了新的“阶层”,以前坐公交车都嫌贵,现在出门都是打车,去KTV包小姐,风流快活,幸福真是来得迅雷不及掩耳。谁知道2018年初,比特币从最高的2万美金一枚一下子就跌到了解放前,造富神话就这么轻易的打破了。现在他又回到了以前,但是对未来充满信心。主持人问,你的信心来自哪里?他说做传销的时候训练出来的,做传销就必须正能量。

币圈大佬七彩神鱼是在研一的时候,有一天去图书馆,看到比特币新闻。然后就逃学,整天在宿舍里研究比特币,越研究越喜欢,觉得这是颠覆世界的新科技。从此All in区块链,他们这批人都是最早一批极客玩家,自己挖坑卖币,在他23岁的时候,突然发现银行账户里有了一个亿资产,他傻了,怎么办?有一个亿怎么花,去知乎上查帖子,一个一个的看,最后钱多到不知道怎么花,就去砸场子,到哪里办party,就把什么地方砸了,砸完就TMD牛逼不行的说,老子有的是钱,要赔多少钱,你说个价。

比特币既是魔鬼又是天使,占据着他们的生活。刚开始比特币价格极低,几美元,几十美元,涨到几百美元,几千美元后又极速下跌,跌得连亲妈都要不认识了,连挖矿的成本都收不回来,只能关闭矿场。迷失困惑了一个月后,他又重新回来了,这次跑到四川,新疆,西藏那些地处偏远,电费便宜的地方挖矿,在那些地方,交通几乎瘫痪,还常常要面对突如其来的泥石流。

七年就是一辈子,从2011年到2018年,刚好一辈子,这一辈子七彩神鱼经历了很多同龄人根本无法体验过的喜怒哀乐,人生经历了太多的大风大浪,现在他依然是比特币的忠实粉丝,他说,哪怕有一天比特币变零了,我也会永远收藏一些比特币,是比特币让他的人生路径发生了改变,否则他就是一个默默无闻的程序猿。

最后一个故事最为悲壮,导演也故意把刘珂放在了压轴的位置。大二学生刘珂因为炒作比特币失败,现在一个人在异国,靠给医院做药品实验,艰难的生存着。记者问他,你知道给医院做药品实验是一个高风险的工作吗?他说,当然知道,给的价格越高越危险,但是如果你是我,你也会这么做。

刘珂是一个长着看起来很帅气的男孩,如果不是走上区块链这条路,他应该正在操场上打着篮球,旁边一堆女生为他呐喊助威,他擦擦脸上的汗水,转头给女生们一个潇洒的pose或者一个充满魅力的微笑。

父母虽然不是什么有钱人,家里做点小生意,每个月给他1000元生活费,如果能安分守己的学习读书,他本应该可以顺利毕业。可是当2017年区块链的造富神话,他用3000元一个晚上就翻倍的神话,让他一发不可收拾,于是他就在各个平台上贷款,用贷款的钱去投资,那时候炒币就跟提款机似的,怎么炒都是赚的,他的世界“风险”二字就消失了。

于是他用了20倍的杠杆去撬动更大的财富,做梦也没有想到,财富没有被撬起,噩梦被惊醒了。债主纷纷而来,各种威胁诱逼,他感觉自己再也呆不下去了,就想到自杀,父母早已经劝说他不要盲目炒币,但是他听不进去,一次次伤害父母的心,他也很内疚自责,他没有自杀,只能逃到了柬埔寨。这样逃亡的日子也不知道什么时候可以结束。

看完这个视频之后,心理难受了很久,进入区块链世界,可以说是零门槛,任何人都可以进入,你不需要懂金融,不需要懂区块链,不需要懂投资,哪怕你只有几百元,就就可以进入。但是现在这个行业如此不规范,很多人很多项目就是来招摇撞骗,弄个白皮书,拉一波涨幅后,庄家赚了钱,自己就跑路了,倒霉的就是后面买入的韭菜。到目前来说,区块链就是一个零和博弈,现在这个阶段并没有诞生出真正的造血功能,那么跟老鼠仓,性质其实也差不多,前面暴富的人就是挣后面进入的韭菜的钱。

但是投资无论如何都是我们这一生都必须要面对的一件事情,如果这一生都没有投资过,那么对人性对社会的了解永远都不会是完整的。但是投资只是看起来很简单,要做好投资,需要你一直修炼。

区块链在国内有哪些实际应用的案例?

区块链目前最广泛区块链扩容真实故事的应用还是在金融科技领域区块链扩容真实故事,例如数字资产交易。区块链作为一种的底层技术区块链扩容真实故事,是比特币的技术实现方式。区块链技术的快速应用落地,也需要虚拟货币。以前一个大范围内需要很多人相互信任、广泛协作的经济场景,只能通过中心化的方式来解决,效率很低,区块链技术的出现解决区块链扩容真实故事了这个问题,消除了这个中心。能去掉这个中心的一个重要原因在于虚拟货币为区块链提供了内生的经济激励机制,让人们有动机加入区块链改造后的经济活动。当然,区块链今后将有更多领域更广泛、成熟的应用,例如去年11月份国家电网已经提交了一项名为“关于区块链的电力交易管控方法及装置”的专利申请,今年西安城墙国际马拉松也全球首次运用区块链技术将运动员的比赛数据、中签环节等全部信息登记到区块链上利用其可追溯、不可篡改的技术特性,打通各赛事之间的信息通道,有效地保证了比赛成绩的可靠性。

区块链扩容是什么?

在比特币诞生之初,比特币的创始人中本聪并没有特意限制区块的大小,区块最大可以达到 32MB。当时,平均每个区块大小为 1-2KB,有人认为区块链上限过高容易造成计算资源的浪费,还容易发生 DDOS 攻击。因此,为了保证比特币系统的安全和稳定,中本聪决定临时将区块大小限制在 1MB。那时比特币的用户数量少,交易量也没有那么大,并不会造成区块拥堵。 2013年至今,比特币价格直线飙升,用户越来越多,比特币网络拥堵、交易费用上升的问题逐渐涌现出来。比特币社区开始探索如何给比特币“扩容”,即通过修改比特币底层代码,从而达到提高交易处理能力的目的。而从2013年随着用户的增多,以火币为代表的的交易平台在其中起着越来越重要的作用。

区块链最成功的衍生品是什么?

在区块链领域,对于“扩容”一直是争议不断的。

为什么要有“扩容”这个事情呢?这是因为,比特币的区块容量太小,导致比特币系统处理交易速度过慢。于是,比特币社区提出一种设想:通过扩展比特币区块容量这种方式来提升比特币处理交易的速度......后来,以太坊也提出了一些扩容手段。

下面我们将用通俗的语言,为大家介绍一下“扩容”的两种主要方式:链上扩容和链下扩容,以及其中具体的技术手段。

一、链上扩容:隔离见证、分片技术

链上扩容意味着要直接在区块链主链系统上动手术,去修改区块链主链系统的基础规则、区块大小、共识机制等等,以此来扩大区块容量。说白了,就是把主链这个系统的道路修的更宽一点。

链上扩容的主要方式有两种方式:隔离见证和分片技术,下面我们分别介绍一下。

(一)隔离见证

隔离见证是对于比特币来讲的,它可以看作是比特币系统的一次重要升级,这次升级涉及到比特币共识规则和网络协议,相当于在比特币系统上“动刀子”,所以我们说,隔离见证属于链上扩容。

隔离见证是如何实现链上扩容的呢?我们还需要从比特币的交易验证说起。在隔离见证提出之前,比特币的交易验证主要依赖两部分数据:一部分是交易状态,简单来讲就是谁给谁转多少钱;另一部分是见证数据,简单来讲就是证明这次交易是真实合法的。

隔离见证,就相当于把这部分“见证数据”从基本结构里拿出来,放在一个新的数据结构当中,但却不破坏数据的完整性。

我们举一个通俗的例子,假如你有10本书,你把每本书横着放在桌子在,那么可能放完这10本书,你的桌子就被铺满了;但是你把每本书立着放,那么你的桌子还会有很多的空余空间,而书还是那十本书,没有多也没有少。这就是隔离见证,简而言之就是:通过改变区块数据结构来释放区块容量。

(二)分片

分片技术是以太坊率先提出来的。分片是一种基于数据库分成若干片段的传统概念扩容技术,它将数据库分割成多个碎片,并将这些碎片放置在不同的服务器上。

这就意味着,在区块链底层公链的系统内,网络上的交易将被分成不同的碎片,我们可以理解成“分组”。这样一来,一笔交易就不必发动全网所有节点都去处理,只要让网络中的一部分节点(矿工)处理就好了。

基于分片技术,将网络分割为碎片会使得更多的交易同时被处理和验证,而且,随着网络的增长,区块链处理越来越多的交易将成为可能。

大概的意思就是:如果有一个很大的仓库,里面放了很多货物,但是这个仓库只有一个出入口,所以在取货存货的时候,效率就会低很多。但是如果把这个大仓库改用成10 个较小的仓库,那么同时存货取货的效率就会高10倍。

这个过程就相当于分片。简而言之就是:通过分而治之,提升处理交易效率。

二、链下扩容:闪电网络、雷电网络

链下扩容意味着不需要修改比特币区块链系统的代码就能够提升交易速度。采用链下扩容,交易都在链下处理,根本不需要对比特币区块链系统做什么大的改动,因为我们压根儿就不走这条路。

链下扩容主要有两种方式:闪电网络和雷电网络。

其实二者的原理差不多,只不过,二者最主要的不同就是:闪电网络针对的是比特币链下扩容,而雷电网络针对的是以太坊链下扩容。

下面我们分别介绍一下。

(一)闪电网络

“闪电网络”是针对比特币处理交易速度过慢提出的一种“链下扩容”对策。

闪电网络通过引入支付通道手段(支付通道我们可以理解成一个智能合约)来实现比特币快速转账。

这个“支付通道”相当于在比特币系统的主网之外,再构建一个点对点的网络,不过,为了保证信任,两个人在建立支付通道之前需要先抵押一部分资产。这样一来,小额交易都放在链下这个“支付通道”来处理,不仅省去了链上处理交易的手续费,还节省了处理时间,因为在链下处理交易,根本不需要占用区块内存,也不需要共识机制来记账。

所以,闪电网络的原理,我们可以理解为:先把一些资金汇集在一起,建立支付通道,然后按照事先约定的方式,把资金池里面的所有权进行承诺转让(先不付钱,先做承诺转让)。如果两个人频繁交易,就一直保持这个状态(支付通达打开的状态),如果两个人决定停止交易,就关闭支付通道,结算清楚,这一步才会被记录到主链上。

所以,闪电网络 ,总结来讲,就是:不是每做一次交易就要走一次区块链网络,而是经过了好几次交易之后,才走一次区块链网络。这样一来,就能够“摆脱”区块链的束缚,极大提升交易速度,实现闪电般的处理速度。

这个原理就相当于我们日常生活中打扑克、打麻将,我们不是每一局都结算一下谁赢

谁输,而是先把钱压在桌子上证明我有钱我输得起,然后打好几局之后,再一起结算输赢。

(二)雷电网络

再说说雷电网络。雷电网络和闪电网络的原理几乎是一样的,只不过,雷电网络是以太坊提出的链下扩容方式。

雷电网络也需要建立支付通道, 在建立支付通道之前也需要做资产抵押生成余额证明,来证明我有钱我输得起,这一步就好比打扑克时候在桌子上先押一些钱。

之后,在交易双方都持有余额证明的情况下,双方可通过支付通道在链下进行无限制次数的转账。只有在完成链下交易,需要将资产转回链上时,才会在以太坊主链上登记主链账户的余额变化信息,而这期间不管发生多少次交易,在主链上是不会有记录的(原理和闪电网络非常相似)。

总结一下,今天我们为大家介绍了区块链的衍生技术——扩容,扩容分成链上扩容和链下扩容,从这个角度上讲,隔离见证和分片属于链上扩容,而闪电网络和雷电网络则属于链下扩容;

而如果从币种的角度来讲,隔离见证和闪电网络属于比特币的扩容方式,而分片和雷电网络则属于以太坊的扩容方式。

什么是区块链扩容?

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

想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池 (质押池) 的人。从大约 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 的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。

区块链的故事 - 9 - RSA 算法

RSA 

迪菲与赫尔曼完美地解决了密钥分发的难题,从此,交换密钥就很简单了,爱丽丝与鲍勃完全可以可以在村头大喇叭里喊话,就能够交换出一个密钥。但加密的方式,依然是对称加密的。

DH 协议交换密钥虽然方便,但依然有一些不尽人意的麻烦处,爱丽丝还是要与鲍勃对着嚷嚷半天,二人才能生成密钥。当爱丽丝想要交换密钥的时候,若是鲍勃正在睡觉,那爱丽丝的情书,还是送不出去。

迪菲与赫尔曼在他们的论文中,为未来的加密方法指出了方向。 通过单向函数,设计出非对称加密,才是终极解决方案。 所谓非对称加密,就是一把钥匙用来合上锁,另一把钥匙用来开锁,两把钥匙不同。锁死的钥匙,不能开锁。开锁的钥匙,不能合锁。

麻省理工的三位科学家,他们是罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman),他们读了迪菲与赫尔曼的论文,深感兴趣,便开始研究。迪菲与赫尔曼未能搞定的算法,自他们三人之手,诞生了。

2002 年,这三位大师因为 RSA 的发明,获得了图灵奖。 但不要以为 RSA 就是他们的全部,这三位是真正的大师,每一位的学术生涯都是硕果累累。让我们用仰视的目光探索大师们的高度。

李维斯特还发明了 RC2, RC4, RC 5, RC 6 算法,以及著名的 MD2, MD3, MD4, MD5 算法。他还写了一本书,叫 《算法导论》,程序员们都曾经在这本书上磨损了无数的脑细胞。

萨莫尔发明了 Feige-Fiat-Shamir 认证协议,还发现了微分密码分析法。

阿德曼则更加传奇,他开创了 DNA 计算学说,用 DNA 计算机解决了 “旅行推销员” 问题。 他的学生 Cohen 发明了计算机病毒,所以他算是计算机病毒的爷爷了。他还是爱滋病免疫学大师级专家,在数学、计算机科学、分子生物学、爱滋病研究等每一个方面都作出的卓越贡献。

1976 年,这三位都在麻省理工的计算机科学实验室工作,他们构成的小组堪称完美。李维斯特和萨莫尔两位是计算机学家,他们俩不断提出新的思路来,而阿德曼是极其高明的数学家,总能给李维斯特和萨莫尔挑出毛病来。

一年过后,1977 年,李维斯特在一次聚会后,躺在沙发上醒酒,他辗转反侧,无法入睡。在半睡半醒、将吐未吐之间,突然一道闪电在脑中劈下,他找到了方法。一整夜时间,他就写出了论文来。次晨,他把论文交给阿德曼,阿德曼这次再也找不到错误来了。

在论文的名字上,这三位还着实君子谦让了一番。 李维斯特将其命名为 Adleman-Rivest-Shamir,而伟大的阿德曼则要求将自己的名字去掉,因为这是李维斯特的发明。 最终争议的结果是,阿德曼名字列在第三,于是这个算法成了 RSA。

RSA 算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开,用作加密密钥。

例如,选择两个质数,一个是 17159,另一个是 10247,则两数乘积为 175828273。 乘积 175828273 就是加密公钥,而 (17159,10247)则是解密的私钥。

公钥 175828273 人人都可获取,但若要破解密文,则需要将 175828273 分解出 17159 和 10247,这是非常困难的。

1977 年 RSA 公布的时候,数学家、科普作家马丁加德纳在 《科学美国人》 杂志上公布了一个公钥:

114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 842 935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543 541 

马丁悬赏读者对这个公钥进行破解。漫长的 17 年后,1994 年 4 月 26 日,一个 600 人组成的爱好者小组才宣称找到了私钥。私钥是:

p:3 490 529 510 847 650 949 147 849 619 903 898 133 417 764 638 493 387 843 990 820 577

q:32 769 132 993 266 709 549 961 988 190 834 461 413 177 642 967 992 942 539 798 288 533

这个耗时 17 年的破解,针对的只是 129 位的公钥,今天 RSA 已经使用 2048 位的公钥,这几乎要用上全世界计算机的算力,并耗费上几十亿年才能破解。

RSA 的安全性依赖于大数分解,但其破解难度是否等同于大数分解,则一直未能得到理论上的证明,因为未曾证明过破解 RSA 就一定需要作大数分解。

RSA 依然存在弱点,由于进行的都是大数计算,使得 RSA 最快的情况也比普通的对称加密慢上多倍,无论是软件还是硬件实现。速度一直是 RSA 的缺陷。一般来说只用于少量数据加密。 

RSA 还有一个弱点,这个在下文中还会提及。

在密码学上,美国的学者们忙的不亦乐乎,成果一个接一个。但老牌帝国英国在密码学上,也并不是全无建树,毕竟那是图灵的故乡,是图灵带领密码学者们在布莱切里公园战胜德国英格玛加密机的国度。

英国人也发明了 RSA,只是被埋没了。

60 年代,英国军方也在为密码分发问题感到苦恼。1969 年,密码学家詹姆斯埃利斯正在为军方工作,他接到了这个密钥分发的课题。他想到了一个主意,用单向函数实现非对称加密,但是他找不到这个函数。政府通讯总部的很多天才们,加入进来,一起寻找单向函数。但三年过去了,这些聪明的脑袋,并没有什么收获,大家都有些沮丧,这样一个单项函数,是否存在?

往往这个时候,就需要初生牛犊来救场了。科克斯就是一头勇猛的牛犊,他是位年轻的数学家,非常纯粹,立志献身缪斯女神的那种。 虽然年轻,但他有一个巨大优势,当时他对此单向函数难题一无所知,压根儿不知道老师们三年来一无所获。于是懵懵懂懂的闯进了地雷阵。

面对如此凶险的地雷阵,科克斯近乎一跃而过。只用了半个小时,就解决了这个问题,然后他下班回家了,并没有把这个太当回事,领导交代的一个工作而已,无非端茶倒水扫地解数学题,早点干完,回家路上还能买到新出炉的面包。他完全不知道自己创造了历史。科克斯是如此纯粹的数学家,后来他听闻同事们送上的赞誉,还对此感到有些不好意思。在他眼里,数学应该如哈代所说,是无用的学问,而他用数学解决了具体的问题,这是令人羞愧的。

可惜的是,科克斯的发明太早了,当时的计算机算力太弱,并不能实现非对称的加解密。所以,军方没有应用非对称加密算法。詹姆斯与科克斯把非对称加密的理论发展到完善,但是他们不能说出去,军方要求所有的工作内容都必须保密,他们甚至不能申请专利。

军方虽然对工作成果的保密要求非常严格,但对工作成果本身却不很在意。后来,英国通讯总部发现了美国人的 RSA 算法,觉得好棒棒哦。他们压根就忘记了詹姆斯与科克斯的 RSA。通讯总部赞叹之余,扒拉了一下自己的知识库,才发现自己的员工科克斯早已发明了 RSA 类似的算法。 官僚机构真是人类的好朋友,总能给人们制造各种笑料,虽然其本意是要制造威权的。

科克斯对此并不介怀,他甚至是这样说的:“埋没就埋没吧,我又不想当网红,要粉丝干嘛?那些粉丝能吃?” 原话不是这样的,但表达的意思基本如此。

迪菲在 1982 年专程去英国见詹姆斯,两人惺惺相惜,真是英雄相见恨晚。可惜詹姆斯依然不能透漏他们对 RSA 的研究,他只告诉了迪菲:“你们做的比我们要好。” 全球各国的科学家们,可以比出谁更好,但全球各国的官僚们,却很难比出谁更颟顸,他们不分高下。

区块链的故事 - 1

区块链的故事 - 2

区块链的故事 - 3

区块链的故事- 4

区块链的故事 - 5

区块链的故事 - 6

区块链的故事 - 7

区块链的故事 - 8

写到这里,本文关于区块链扩容真实故事和十个故事了解区块链的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。

标签: #区块链扩容真实故事

  • 评论列表

留言评论