硬盘函数不正确有救吗
Lattice团队最近推出了Redstone,一个新的Layer 2,他以OP Stack(https://stack.optimism.io/)为基础进行开发并做出了重要改进(OP Stack是为Optimism L2提供支持的技术栈)。
因此,很多人都想知道,“这个L2适不适合构建全链上游戏?他与其他方案有哪些区别?”作为全链游戏的顶尖开发者之一,我们的Paima Studios已经在多条链上部署并运行了自己的游戏,很多人都向我们咨询我们的看法,所以我们将在本文中尽量详细地解释一下其中的细节。
“提示:这篇文章写于Redstone刚刚发布的时候。但Web3是个变化非常快速的领域,由于官方后续可能会发布更多关于Redstone的信息,所以建议你用开放的心态来阅读本篇文章。”
要理解Redstone以及他的核心优势,首先要了解他与市场中其他主流方案有什么区别。在这篇文章中,我们通过让你理解Redstone的设计理念,为你提供一个正确的思维框架。无论接下来还会发布哪些新信息,都可以更好地理解他们的意义。
01.使用公链时的成本构成
假设你想开发一款全链游戏。既然Redstone是一个以太坊的L2,我们就假定你已经决定使用以太坊。
那么,为什么不直接把游戏部署到以太坊上呢?你可能知道这是因为成本太高(写这篇文章的时候,每个游戏交互的成本都要超过1美元),但你知道为什么成本这么高吗?
其中的成本主要包括两部分:执行成本(cost of execution)与数据存储成本(cost of data storage),这两者对于游戏来说都非常昂贵。但就像CPU比硬盘更贵一样,实际上执行成本远远高过存储成本。那么,如果我们能找到一种方法把执行成本转换成存储成本,会怎么样呢?好消息是:rollup方案就是这么解决问题的。
02.Rollups扩展方案
Rollups有很多种形式,每一种都用自己的方式把执行成本转化为存储成本:
(1)Optimistic rollups:在链下进行计算,然后把执行函数需要的所有数据(只有数据,没有执行)和你在链下计算的结果存储到链上。只有当有人认为你发布的结果不正确的时候,才会在链上进行执行(“欺诈证明”)。
使用该方案的产品:Arbitrum,Optimism
(2)ZK rollups:在链下进行计算,然后把执行函数需要的所有数据(只有数据,没有执行)和计算结果的本地ZK证明存储在链上。
使用该方案的产品::ZK Sync,Starknet,Polygon zkEVM
(3)Sovereign rollup:在链下进行计算,然后把执行函数需要的所有数据(只有数据,没有执行)存储在链上。
使用该方案的产品:Rollkit,Paima Engine
利用这些方案,你可以把游戏的交易成本降低到大约0.05美元左右(请参考l2fees:https://l2fees.info/获取最新的数据),这绝对是朝正确的方向迈出了一大步。
03.如何继续降低L2的成本
显然,继续降低L2的成本对于全链游戏的发展至关重要。虽然rollup的价格在逐渐降低(计算机变得更快,ZK技术变得更成熟等等),但目前最大的成本不是在链下进行计算,而是把数据存储到L1的成本。
为了解决这个问题,以太坊将引入一种更便宜的数据存储方式(也就是EIP4844),其中将数据改为临时存储(存储大概可以维持两周时间,这样就可以发布任何欺诈证明,并且让数据在全球的节点之间广泛复制)。
但EIP4844依然存在一些缺点:
- 数据只是临时存储(你需要找到另一种存储方案来托管数据);
- 数据大小依然存在限制,每个区块的存储上限大约是2 MiB(在以太坊上的所有rollup之间共享);
所以,虽然大家正在努力降低成本,但由于对区块链空间的需求持续增长(消耗的速度超过了技术创新的速度),这些努力还不足以让全链游戏在L2上变得经济可行。
备选方案1:将数据存储到中心化服务器上(或一组服务器上)
为了降低成本,一种选择是简单地把数据存储在你信任的中心化服务器上,然后只在链上发布数据的哈希。这个想法的一个变体是使用一组独立运行的服务器存储数据并进行多重签名。这样的方案叫做“数据可用性委员会”(DAC),这就是Arbitrum Nova,Arbitrum Orbit和Polygon CDK所采用的方案。
这些方案要便宜得多(如果忽略费用市场,那么Arbitrum Nova的每笔交易大约是0.001美元),但这种方案牺牲了网络的去中心化。主要的风险是如果DAC停止托管数据(比如,他们发布了哈希,但是没有共享哈希对应的数据),那么网络就会停止运行。
关于Arbitrum的特别说明
你可能好奇为什么Arbitrum在列表中出现了两次。目前,Arbitrum提供了三个主要的解决方案:
- Arbitrum One:主要的Arbitrum网络,是一个完整的以太坊L2,数据存储在以太坊上;
- Arbitrum Nova:使用DAC的L2;
- Arbitrum Orbit:在Arbitrum One上创建的L3技术栈;
正如你所看到的,Nova的问题在于没有很好的方法让你的游戏整合现有的DeFi应用(用户必须花费大量gas,以从Arbitrum Nova 跨链到ETH L1,再跨链到Arbitrum One才能使用Arbitrum One中的DeFi协议),而新的Arbitrum Orbit可以允许你直接进行Arbitrum Orbit 到 Arbitrum One的跨链。
Orbit作为一个创建第三层(L3)的技术栈,使得开发者可以利用现有的Layer 3解决方案,例如Xai Games,他使用自己的数据可用性委员会(DAC)。或者,开发者也可以创建自己的独立Layer 3解决方案。(但如果你开发的是一个针对特定游戏的Layer 3,其与以太坊的唯一联系只是偶尔发布哈希值,那么你可能会更适合使用一个介于传统网络(web2)和完全去中心化网络(web3)之间的解决方案,即所谓的“web2.5”。)
备选方案2:把数据存储在另一个去中心化的网络上
除了等待EIP4844在以太坊主网生效(而且即便生效也还要受到带宽限制),像Celestia、Avail和EigenDA等其他项目决定将类似的概念做成一条单独的链(数据可用性(DA)层),通过专注于解决这个问题,他们提供了比以太坊主网计划支持的更大的数据存储空间。这些平台不支持智能合约,只被作为L2的数据可用性层。
值得注意的是,你可以创建一个像Arbitrum Orbit那样,把Celestia作为数据可用性层的OP Stack。但这样做也需要做出一些取舍:
- 信任:这个rollup的安全性除了以太坊以外,还要受到DA层安全性的影响(但已经比DAC更安全);
- 成本:这个rollup需要向DA层支付安全费用(必须使用DA层的本地代币支付);
- 速度:Celestia的区块时间是15秒,Avail的区块时间是20秒。例如,数据需要先在Celestia上确认,然后才能通过Celestia的blobstream合约桥接到EVM。不过,这一点要打个折扣,因为所有的L2一般都有比以太坊更快的区块时间(尽管以太坊的区块时间只有15秒,但Arbitrum使用的区块时间比这还快);
这种架构通常被Mantle(OP Stack + EigenLayer DA)和Manta Pacific(OP Stack + Celestia)所使用。他们的成本尚待观察,但Celestia团队声称大约为0.001美元,这意味着与在EVM上的执行成本相比,DA层上的存储成本是最低的。
备选方案3:将数据存储在可挑战的DAC中
最后,我们来看看Redstone采用了什么方案。如果你不喜欢将数据存储在DA层时必须做出的取舍,也不喜欢DAC的中心化。那么你可以构建一个DAC,在这个DAC中,如果委员会不提供数据,你可以对其进行经济处罚。
为了辅助理解,我们重新梳理一下DAC协议的工作流程:
如何写入数据
- Redstone的排序器收到你的交易;
- 排序器把数据发送到DAC进行存储;
- DAC返回确认,数据已经存储;
- 排序器将数据的哈希发布到L1;
如何读取数据
- 同步以太坊链,找到提交到rollup合约的哈希;
- 从DAC请求哈希对应的数据;
- 根据这些数据计算L2的状态;
那么Redstone有什么不同
在读取数据的时候,如果数据不可用,你可以挑战DAC,声称他未提供数据(也就是说,数据无法从他们的服务器下载)。
为了有效地激励大家保持诚实,我们制定了以下的惩罚规则:
- 如果挑战者不诚实(数据确实可用),他们将受到惩罚(否则,他将可以通过挑战每个区块来对网络进行攻击);
- 如果DAC不诚实(数据不可用),他们将被处罚;
这似乎是一个简单的解决方案,但问题在于如果出现问题,如何确定谁是真正的责任方。想象一下以下情景:
- 排序器发布了哈希,但没有分享实际的数据;
- 有人挑战了排序器;
- 排序器在看到挑战后又提供了数据;
如果你是一个没有在实时监控链的整个运作过程的外部观察者,数据看起来是可用的(如果你事后查询DAC,你会得到预期的数据),所以看起来挑战者在撒谎,而实际上他并没有。
如果你对这个问题的解决方案是假设排序器永远不会撒谎,那么为什么不使用标准的DAC呢?此外,假设排序器是诚实的,与共享排序器“superchain”的理念不太相符,这意味着资产无法使用共享排序器在OP Stack链之间转移(因此你会遇到与Arbitrum Nova相同的问题,除非Redstone以L3的形式部署)。
Lattice计划如何处理这些问题,将是未来更详细文档和路线图发布时需要关注的重点。
备选方案4:使用ZK零知识证明
请注意,Redstone存在的数据不共享问题(数据扣留攻击)并不局限于Optimistic Rollup。将数据存储在链外的ZK Rollup(通常被称为“Validiums”)也面对同样的问题,这就是为什么人们通常更偏好那些将所有数据发布到链上的Rollup的原因。
因此一般来说,ZK Rollup并不能帮助你安全地降低游戏的数据存储成本。即便他们显然可以以各种其他的方式帮助扩展你的游戏(将更多计算移到用户的本地计算机上,使用递归证明批处理许多交互,无论是Rollup方式还是状态通道方式等),但这就是另一篇文章的话题了。
如果Solidity本身就存在问题,那我该如何降低我的游戏成本?
在整篇文章中,我们讨论了如何处理存储成本。然而,一些游戏可能受到CPU限制(即使他们在一个中心化的EVM链上运行)。如果你是这种情况,你可能会对使用Sovereign Rollup感兴趣,比如你可以使用Paima引擎扩展游戏性能并超越EVM的自身限制。
Paima 引擎允许使用Javascript创建特定应用程序的状态机,你可以将其部署到你选择的任何EVM链上(包括Redstone!)。这些Sovereign Rollup可以访问EVM信息(包括MUD引擎数据),因此可以作为使游戏的任何部分运行更快且更便宜的绝佳方式。
04.结论
总之,降低数据成本是降低全链上游戏成本最关键的一步。今天存在许多不同的解决方案,具有不同的权衡,Redstone将自己称为比标准DAC更安全的解决方案,但是否意义大到足以替代数据可用性(DA)层解决方案还有待观察。而对于需要在数据之上扩展计算的项目,像Paima引擎这种解决方案也可以解决问题。
最后的","gnid":"97acea9b26f833fbb","img_data":[{"flag":2,"img":[]}],"original":0,"pat":"art_src_3,otherc,fts0,sts0","powerby":"pika","pub_time":1702568400000,"pure":"","rawurl":"http://zm.news.so.com/244c957df983460c761b88218f841921","redirect":0,"rptid":"ed8866125408f630","rss_ext":[],"s":"t","src":"火星财经","tag":[],"title":"Paima引擎创始人详解Redstone扩容方案:核心优势与潜在障碍
甫实世3845移动硬盘显示函数不正确是怎么造成的?怎么解决啊?
咸宗茂15776099570 ______ 这种情况是因为分区结构错误引起的错误. 一定不要重分区,格式化之类的操作.那样的话恢复的数据不完整.保持现状.正确的分析处理很大程度上是可以完整的恢复出原来的数据的.而不需要数据恢复软件扫描恢复. 单纯使用数据恢复软件扫描恢复的话,耗时,效果也很难说. 我恢复过很多你这种情况的,很多时候都是100%完整恢复原来的分区..这些分区的数据的,出现这种问题的关键是要保护好出现问题的硬盘状态.不要随意分区了. 需要恢复协助,hi我在线交谈.点我名字看我百度资料QQ. 百度空间.
甫实世3845移动硬盘显示无法访问,函数不正确,怎么回事啊 -
咸宗茂15776099570 ______ 这里面的问题很多,自己一个个的排除吧,没有别的办法,只是麻烦点,为了保存好数据你只有这个办法(数据线,电源,系统本身等) 插到别人的计算机上试试就明了了!
甫实世3845XPSP3系统;有一个分区出现了“硬盘分区无法访问,函数不正确“ 如何解决?谢谢|! -
咸宗茂15776099570 ______ 从你的描述来看,这种情况是分区结构出现异常.引起的分区错误.单击右键属性看到的是RAW格式.函数不正确 的提示一般是坏道问题引起的.经常会因为系统读取硬盘信息困难,只能读取一部分,而且无法打开.有时候会引起系统假死....
甫实世3845救命呀!三星移动硬盘盘符显示函数不正确!! -
咸宗茂15776099570 ______ 你用的什么杀毒软件?杀过毒了没有? 如果你不想格式化,那怎么能保证你以后用着不会出问题呢? 所以应该先确定移动硬盘本身有没有问题,办法就是格式化. 你会担心格式化后的数据.放心,格式化后,只要你不往移动硬盘上“写入”, 也就是拷贝文件之类的操作,如果正常的话,一个文件都不会丢. 都能用easyrecovery恢复的. 或者,你先用easyrecovery恢复,把数据恢复到足够大的台式机硬盘上, 然后再格式化,来判定移动硬盘的好坏.
甫实世3845电脑磁盘出现函数不正确怎么半 -
咸宗茂15776099570 ______ 试试格式化 只有这种办法了 可能是磁盘老化了
甫实世3845组装的移动硬盘,显示函数不正确,拆了盒子,拿出来就能用了,装上又不行,还检测出有坏道 -
咸宗茂15776099570 ______ 不是供电不足.那是说明你的硬盘坏了.都有坏磁道了还拿它用啥.换一个.显示函数不正确那就是你读到坏磁道读不走了.所以才提示.如果你还想继续用它的话.那你要看坏磁道大概在好多号扇区.你把那扇区左右多分点出来.然后删除.意思是把有坏磁道的那一段空间不分成盘.这样还可以继续使用.不过建议你重新买一个新的.因为上面有你保贵的数据.如果那天你的盘又挂了那就真的"洗白了".......四川话....
甫实世3845无法访问G盘,函数不正确是什么意思 -
咸宗茂15776099570 ______ 意思是硬盘被加密过 就是你原先在一个系统里对硬盘的分区加密过,但是后来又在另一个系统下或环境下访问该分区,就造成了无法访问,提示函数不正确.建议回到原来的系统对原区解密,方法:右击盘符 "属性-高级-加密/解密" 祝你好运
甫实世3845用DiskGenius检测硬盘显示函数不正确 修复不成功 -
咸宗茂15776099570 ______ 函数不正确一般都会显示相应的故障代码,得根据代码判断. DiskGenius毕竟不是专门的修复工具,它的修复功能很弱. 如果硬盘没什么重要东西,就格了吧,这样软件故障就自然没了,要还有问题就是硬件上的了,找硬盘坏道修复软件吧.
甫实世3845买了一张空盘.想用来存东西,结果打开显示函数不正确,请问该怎么办 -
咸宗茂15776099570 ______ 问题描述: WIDNWS XP下通过刻录机直接打开一张空白刻录光盘,提示“无法访问……函数不正确.”,右击属性显示可用空间为零? 故障原因: 这是因为系统安装了nero express后,自带的cd刻录功能被屏蔽了导致. 解决方法: 步骤一:在系统下打开 "运行",输入services.msc,确定后弹出一个"服务"设置窗口,找到imapi cd-burning com services 项目,双击该项目,把启动类型由禁用改为自动,确定后重启系统. 步骤二:打开"我的电脑",选择刻录机的驱动器属性,在刻录的选项卡中,把"这个设备上启动cd录制"前打勾,再重新放入空白光盘,就可以正常显示了.
甫实世3845无法读取G盘.函数不正确 -
咸宗茂15776099570 ______ 来个截图比较好解释,原因有两个咱们先把没有的可能先排除.首先排除你光驱的问题当然如果你的光驱是VCD的碟片是DVD除外.其次,排除碟片本身的问题因为别人的笔记本可以读.再次,就是有可能出现问题的地方了,估计有可能出问题的是,播放器没有该碟片格式的解码,建议下了可播放格式较多的软件,比如暴风影音啊,KMP啊等,自己找吧.其次就是电脑系统的问题了,建议最快的方式就是重装下系统,怕用久了有的系统文件损坏,导致调用函数错误的提示,就想内存错误样的提示一样,希望对你解决问题有帮助!