KAM:尚未解决的区块链分片问题_OKAMI价格

编者按:本文来自财经网链上财经,作者:AlexanderSkidanov,编译:LornaQ,来源:medium,Odaily星球日报经授权转载。区块链分片的核心问题是链上的节点无法验证所有分片中的区块。因此,每当任一节点需要与特定分片交互时,他们通常无法下载并验证该分片的整个历史记录。然而,一个重大的潜在问题出现了:如果不能下载和验证一个特定的分片的整个历史记录,节点如何确定接收到的交易来自于有效区块。非分片区块链中不存在这样的问题。简单的应对策略

我们将首先讨论一个简单的解决方案,这个解决方案在许多协议都提到过,我们将进一步分析这个解决方案如何尝试解决它想要解决的问题。解决数据有效性的简单方案如下:假设整个系统有数千个验证器,其中不超过20%是作恶的,或者无效的。然后,如果我们对约200个验证器进行采样,假定超过1/3的节点失败率为零。值得注意的是:1/3是一个重要的门槛。拜占庭共识协议中指出,只要确保少于1/3的节点失败,无论是作恶还是违反协议的某一条,最后都将达成共识。假设诚实的验证器百分比,如果分片中的验证器为我们提供了一些区块,解决方案假定该区块是有效的,并且验证器建立在该分片的规范链基础上。他们开始验证时,验证器从前一组验证器中学习规范链。通过归纳,整个链是有效的,由于任何一组验证器都有产生分叉,解决方案也确定当前链是分片中唯一的链。如果假设验证器可能被破坏,上述简单的解决方案就会不起作用,这是个合理的假设。在含有1000个分片的系统中破坏单个分片比破坏整个系统的成本要低得多。因此,随着分片数量的减少,协议的安全性相应地减小。为了确定一个区块的有效性,我们必须确保,在记录中的任何一个节点,系统中的分片都不存在大多数验证者串通的情况;但是对于自适应对手,我们无法确保。正如我们在前一部分中所讨论的,串通验证器可以执行两种基本的作恶行为:创建分支和生成无效的块。恶意分叉可以通过交叉链接到信标链的区块来解决,信标链通常比分片链更具安全性。然而,生成无效的区块是一个具有挑战性的问题。数据验证

Sui生态DEX Cetus:Token目前仅在Sui上发布且尚未流通,用户交易前需辨别真伪:5月10日消息,构建在Sui与Aptos生态的DEX与集中流动性协议Cetus发布公告称,许多假冒的CETUS在不同的链上发行,有些已经开始交易。请用户注意CETUS目前仅在Sui上发布且尚未流通,在采取任何行动之前,应仔细确认官方网站和社交媒体上的信息。[2023/5/10 14:54:12]

如下图,分片#1已经被攻击,作恶者挖出了无效块B。假设区块B凭空捏造出来1000个token,并记录在Alice的账户上。接着,作恶者在区块B的基础上挖出有效区块C,然后在分片#2发起了跨分片交易,把这1000个token转到了Bob的账户。此事凭空造出来token在分片2上是完全有效的。解决上述问题的方案有:1.让分片#2的验证者检验发起这笔交易的那个区块。但由于区块C似乎完全有效,因此,此方案不适用于上述示例。2.分片#2的验证者可以大量检验发起这笔交易之前的区块。但是,通常对于接受交易的分片要验证的N个区块,恶意验证者可以在他们创建的无效块上创建N+1个有效块。比较好的解决方案是将分片按照无向图进行排列,每个分片都连接多个分片,跨分片交易只能在相邻的两个分片上进行。。如果要在不相邻的两个分片之间进行跨分片交易,这笔交易需要通过多个分片相互验证。在这个设计里,每个分片的验证者都要验证他们的分片以及与他们相邻的分片上的所有区块。假设有10个分片,每个分片相邻4个分片,不需要考虑两个以上的分片之间的交叉分片通信。分片#2不仅验证自己的链,还需要验证所有相邻的链,包括分片#1。所以,如果分片#1上的恶意分子试图创建无效块B,然后在B的基础上构建区块C,并发起跨分片交易,分片#2就可以通过验证分片#1上的所有历史记录,识别出无效区块B。虽然现在攻击一个分片不再是可行的攻击方法,但是如果攻击多个分片仍是个问题。下图中,如果对方成功攻击了分片#1和分片#2,用无效区块B生成的“资金”可与分片#3进行一笔跨分片交易。分片#3验证了分片#2上所有的区块,但是并未验证分片#1上的区块记录,那么仍无法检测到无效块B。解决这个问题的其中一个主要方案是采用fishermen机制。这个方法背后的原理:无论何时,为了关联信标链或是发起分片交易,链之间相互通信区块头信息,在一段时间内,任意诚实验证者都可以提供无效区块的证明。有各种结构可以非常清楚的证明某个区块是无效的,接收节点的通信成本要比接收整个区块的成本小得多。使用这种方法,只要有一个节点是诚实的,系统就是安全的。但是这种方法有两个缺陷:1.这段验证的时间需要足够长,以便让诚实节点识别挖出的区块,下载并进行完全验证。这段验证时间会极大降低跨分片交易的速度。2.会创造出一个新的攻击向量,恶意的节点可以故意发起大量无效的验证请求。解决这个问题的方案是让验证者在指定的账户里存入一些Token,待验证成功时再返还。这只是部分解决方案,由于恶意的节点向系统发起大量无效的验证请求带有无效区块可能仍然存在,这些攻击被称为恶意破坏攻击。针对这两个问题,目前还没有很好的解决方案,但是这个方案仍然是解决数据验证问题的一个主要方法。简洁的非交互知识论证

Lido业务发展主管:质押监管政策影响尚未确定,个人作为美国人或面临无法为Lido工作的风险:2月13日消息,据彭博社报道,对于美国证券交易委员会(SEC)最近对加密质押行业的监管行动影响,流动性质押协议Lido的业务发展主管Jacob Blish表示:“我个人认为,这(美国SEC监管)对链上无许可的流动性质押或质押提供商来说是一个净收益,但这真的取决于最终的解决方案是什么。”不过如果美国监管机构最终得出结论,没有任何美国人可以与任何质押服务进行互动,那么可能会有不同的问题,他个人面临的风险是,其作为美国人可能也无法为Lido工作。Blish表示:“最令人失望的是,作为一个行业,我们一直被要求提高透明度,但作为美国公民,我却得不到透明度以及监管机构的决策过程如何进行。”

Nansen数据显示,Lido Finance在该平台上质押了超过480万枚ETH,价值约72亿美元。

此前金色财经报道,对于与Kraken的和解协议,美SEC主席表示,质押即服务提供商必须注册,并提供信息披露和投资者保护。[2023/2/13 12:03:32]

解决攻击多个分片的第二种方法是使用某种密码结构,允许人们证明正确执行某个计算。例如zk-STARKs和其他一些共识协议,以及一些被广泛地用于私人支付的共识协议,其中最著名的是ZCash。这种共识协议存在的主要问题是计算速度非常慢。例如:CodaProtocol,使用zk-SNARKs专门证明区块链中的所有区块都是有效的,每次交易可能需要30秒来进行一笔交易证明。有趣的是,证明不需要由可信方来计算,因为不仅需要证明它所构建的计算的有效性,而且需要证明本身的有效性。因此,这种证明的计算可以在一组参与者之间进行划分,它比执行某些不可信计算更加简洁。除此之外,它还允许计算zk-SNARK的节点在特定的硬件上运行,而不会降低系统的分布式。除了性能外,zk-SNARK的局限性是什么?依赖于较少研究过的和较少时间测试的密码学原语;“Toxicwaste”是zk-SNARK依赖于一组可信的设置,其中一组人执行一些计算,然后忽略该计算的中间值。如果程序的所有节点都串通并保留中间值,则可以制造假证明;系统设计中引入了额外的复杂性算法;zk-SNARK仅适用于可能计算的子集,因此,具有图灵完备智能合约语言的协议将无法使用SNARK来证明链的有效性。数据的可用性

美联储主席鲍威尔:美联储尚未决定发行数字货币:10月19日,在国际货币基金组织(IMF)年度会议上,美联储主席鲍威尔(Jerome Powell)表示,正在和各国央行和世界清算银行合作交流,但仍未对推出央行数字货币作出决定,必须十分审慎。美联储评估了数字货币的好处,将小心处理数字货币问题。[2020/10/19]

我们将要讨论的第二个问题是数据的可用性。通常,将特定区块链的节点分为两类:全节点,下载每个完整区块并验证每笔交易的节点,以及仅仅下载区块头的轻节点,并使用Merkle校样来处理他们感兴趣的状态和交易。现在,如果大部分主要全节点串通,则它们可以生成有效或无效的区块,并将其哈希值发送到轻节点,但不透露区块的全部内容。他们可以通过各种方式从中受益。如下图所示:假设有三个区块:前者A,由诚实的验证者生成;当前区块B,由验证者串通;下一个区块C,由诚实的验证者产生;假设你是商家。当前区块的验证者从先前的验证者那接收到区块A,计算出你接收钱的区块,并向你发送该区块头,其中通过Merkle证明包含你有钱的状态。确保交易最终确定,你就可以提供服务。但是,验证器永远不会将区块B的全部内容分发给任何人。因此,区块C的诚实验证器无法检索该区块,并且被迫停止系统或构建在区块A之上,从而剥夺了你作为商家的权利。当我们将相同的场景应用于分片时,全节点和轻节点的定义通常适用于每个分片:每个分片中的验证者下载该分片中的每个区块并验证该分片中的每笔交易,但验证系统中的其他节点,包括那些快照分片链状态进入信标链,只需要下载区块头。因此,分片中的验证者实际上是该分片的全节点,而系统中的其他参与者作为轻节点。对于我们上述的fisherman方案,诚实的验证者需要能够下载与信标链交叉链接的区块。如果恶意验证者交叉链接无效区块头,而从未分发区块,则诚实的验证者无法进行验证。监管权证明

动态 | ETC尚未解决51%的网络攻击问题:据cryptonews消息, ETC的开发团队成员Donald McIntyre在一篇博客文章中说,ETC尚未最终解决最近51%的网络攻击问题。他们目前还不知道为什么会发生这种情况,但这不是由于内部错误,而是由于网络非常小,因此更容易受到51%的攻击。[2019/1/10]

需要迫切解决的问题是一旦区块发布,是否区块就具可用性?一个名为公证人的解决方案是让分片之间公证人轮换的频次比验证者高,验证者的唯一的工作是下载一个区块,并证明他们能够下载。与验证者不同的是,公证人可以更频繁地轮换,因为他们不需要下载分片的整个状态。这种的方法的问题是,无法证明公证人是否能够下载该区块,因此公证人可以选择始终证明他们能够下载该区块而不尝试检索它。解决该问题方案是公证员提供一些证据,或者投入一定数量的Token来证明该区块已被下载。纠删码技术

当特定的轻节点接收到一个区块的哈希值时,为了提高节点对该区块可用的信心,它可以尝试下载该区块的一些随机片段。这不是一个完整的解决方案,因为除非轻节点共同下载整个区块,否则恶意区块生产者可以选择保留未被任何轻节点下载的区块的部分,从而导致区块不可用。对此问题的解决方案是使用一种称为纠删码技术的结构,即使只有区块的某些部分可用,也可以恢复整个区块:Polkadot和以太坊Serenity都围绕这个想法进行了设计,为轻节点提供了合理地确信区块可用的方法。这两种方法都依赖于验证者,因此可能容易受到恶意攻击。长期可用性和结论

现场 | ADE全球跨境社交电商链创始人金安妮:公链尚未成熟:金色财经现场报道,今日,2018中国国际区块链产业融合峰会暨区块链产品与应用展在石家庄举行,在以《新时期下区块链技术赋能实体与应用结合》为题的圆桌论坛上,友米乐、ADE全球跨境社交电商链创始人金安妮认为,公链正在如火如荼地发展,但公链尚未成熟,DAPP却亟待迅速发展,目前和公链发展并不同步。[2018/9/21]

上述讨论的所有解决方案都证明了一个事实,即一旦一个区块发布,则该区块立即可用。区块随后可能由于各种原因变得不可用,例如:节点脱机、节点故意删除历史数据等等。一篇值得借鉴的解决方案是Polyshard,即使几个分片完全丢失了它们的数据,Polyshard使用纠删码技术让跨分片区块依然可用。不幸的是,他们的解决方案要求所有分片从其他分片那下载所有区块,合格过程成本高昂。由于预计系统中没有节点能够验证所有分片中的所有链,因此分片协议的安全性需要以这样的方式设计:即使某些分片中的某些以前的区块变得完全不可用,系统也是安全的。在设计安全协议时,数据有效性和数据可用性仍然是首先需要关注的问题。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:0ms0-3:439ms