(Jean Philippe Aumasson 所进行的)安全审查

尔格团队

2020年1月12日

我们想宣布尔格已经成功通过某些(最关键的)部分的安全审查。此次审查由 Jean- Philipee Aumasson 负责完成(也叫 veorq, https://aumasson.jp/ )。

具体报告如下。没有发现任何重大问题。对所发现问题的评论如下:

  1. 关于钱包密码,我们将在下一版协议节点中提供建议。不确定密码法的执法力度会 到何种程度,但我们会对此做更多的咨询。

  2. 只有在启动新网络时修改”n”和”k”参数才有意义。修改挖掘节点中的这些参数将使 所生成的区块对其他节点来说无效。修改协议节点的该项参数意味着出现另一个分 叉(来自诚实协议参与者的区块将被拒绝)。所以可能不需要进行额外核验,因为 那些启动新网络的人会正确设置”n”和”k”的参数。

  3. 目前尔格节点(以及我们所知道的其他区块链协议节点和钱包,以及我们正在使用 的加密库)无法提供防止本地运行的侧通道攻击的保护(如恶意软件或病毒所发起 的时序攻击或内存检查)。所以,请保护好运行你钱包的设备!

============================================================================== =============================

% 尔格安全性评估% Jean-Philippe Aumasson % 2019 年 12 月日

摘要

尔格团队邀请我们对其尔格平台的几个组件进行安全性评估

  • 创建与验证西格玛协议证明
  • 钱包对秘密的安全存储
  • 工作量证明验证

这份简报介绍了我们的评估,并说明了我们所发现的问题以及应对措施建议。

西格玛协议证明

尔格协议依赖于尔格脚本,其是一种支持西格玛语句的脚本语言,可以通过非交互式的 知识证明来进行证明以及验证。

这些证明是一个类似于树的语句和/或阈值条件,其树叶是离散对数问题的知识证明。

西格玛语句证明是非交互式的,这应归功于 Fiat-Shamir 的转换

该逻辑在尔格脚本报告中有详细说明,并且详细的证明与验证流程在其附录 A 中有介 绍。

实施过程中的挑战包括:

  • 定义安全高效证明的编码,并且实现总是成功处理有效输入的序列化,以及总是无法处 理无效输入的反序列化。

  • 根据规范正确地实现证明与验证功能,最重要的是确保没有无效语句能够成功通过验 证。

我们对这两个方面进行了回顾,根据存储库 sigmastate-interpreter中的代码和尔格脚本报 告,对(附录 A 中的)预期行为与实际所采取的行为进行仔细比较。

我们会重点审议来自 SigSerializerInterpreter 的代码以及 ProverInterpreter 特征和目标。

我们主要寻找来自以下类别中的故障:

  • 缺陷输入的不安全处理
  • 不安全处理超长或超短的输入
  • 大树深度或递归级时的行为
  • 不安全使用 Scala 类型和结构
  • 不合适的变量类型
  • 整数溢出
  • 竞态条件
  • 逻辑缺陷

尽管进行了详尽审查,但是我们没未发现任何安全问题。

协议的逻辑和内部机制是比较复杂的,我们认为最大的风险在于对证明进行分析与验 证。然而,为了利用这些漏洞,攻击者必须创建一个在某种程度上会令自己受益的语义 正确脚本,并且在不应通过验证的时候通过了验证。

在软件安全方面,Scala 消除某些类别的缺陷,但是由于 Scala 的特定行为或未处理的错 误,Scala 代码可能依然会受到缺陷的困扰。

钱包

因此,尔格钱包功使其用户能够用磁盘存储与恢复秘密,并且在初次使用的时候,可以 用一个新的种子对钱包进行初始化操作。

该逻辑主要在 ErgoWalletActor 中进行定义,有关秘密存储的一个主要构件是 JsonSecretStorage

首次创建钱包时,InitWallet 命令执行以下操作

  • 生成作为初始熵的 settings.walletSettings.seedStrengthBits 随机位。在默认情况下 ,生成 160 位。
  • 从生成的随机位中生成一个 BIP39,其可以被视作一个熵位的编码。采用密码可选的标准 BIP39 逻辑。
  • 使用 BIP39 基于 PBKDF2 的推导逻辑,从助记符中推导出种子。
  • 采用一个随机数,通过 AES-GCM 将该种子加密到磁盘,使用拥有 128000 次迭代的
    PBKDF2-HMAC-SHA256,并利用一个随机盐从密码中产生出一个密钥。

要像解锁一个已经创建的钱包,用户提供密码,钱包将尝试解密所存储的数据。

为了从 BIP39 口令恢复现有帐户,需要执行一个类似于初始化的流程,只不过钱包将从 助记符中,而非从随机助记符中获得种子。

我们在此确定的两种风险包括:

  • 缺少对密码长度的检查:由于钱包实在磁盘上存储秘密,既然密码足以访问种子,从理 论来讲,密码的熵至少应当与助记符相同,而在实际上应该很难破解。因此,我们建议 采用最小的密码长度,如 16 个字符。

  • 在钱包软件执行后,秘密值(密码、种子和派生私钥)的副本可能会留在内存中,其是 诸如 Scala 等垃圾收集语言的内在局限性。

共享相同内存地址空间的另一进程或用户可能会恢复这些秘密,并且他们也可能出现在 崩溃转储中。据我们所知,在纯 Scala 中没有有效的缓解。

工作量证明的验证

在先前检查奥托吕克斯共识协议工作量证明安全性之后,我们进行了另一轮检查,重点 关注其最新的验证逻辑,特别是在承诺 eb0f85a 中所做的更改。

主要的相关文件是 AutolykosPowScheme,其他重要操作在诸如 HeadersProcessorModifierValidator 中实施。

我们检查所实施的验证逻辑与奥托吕克斯共识协议规范中所规定的验证逻辑是否一致, 并且其已被妥善整合进区块头的验证逻辑。

我们认为应解决以下问题:

  • kn 进行更严格的验证:虽然类强制执行 k<=32 (解决方案中的元素数量)和 n<31 (元素总数的 log2 值),但依然可以从授权的参数中创建弱区块。因此,validate()函数可 能需要进行额外的验证,确认 nk 是否等于预期的值。

  • 断言 kn 为正值,因为当前的负值(称作 Ints)将传递 assert 语句。

Share post

Ergo基础设施DAO:去中心化Ergo生态系统的支柱

Ergo基础设施DAO:去中心化Ergo生态系统的支柱

Ergo的使命一直根植于去中心化,不仅在共识层面,而是在整个技术栈中。随着Ergo基础设施DAO (InfraDAO)的推出,这一愿景正在扩展到每天为生态系统提供动力的服务和基础设施。 InfraDAO现在在Paideia上正式上线,经过成功的治理投票。最初.

Ergo Platform

2025年8月13日

Mew Finance:一个为Ergo生态系统提供的有趣DeFi工具包

Mew Finance:一个为Ergo生态系统提供的有趣DeFi工具包

Mew Finance是一个基于Ergo区块链的去中心化应用套件。该项目于2024年10月启动,将DeFi、数字资产和跨链功能整合到一个统一的平台中。长期社区开发者HQΣr和Aco Šmrkas领导该项目。设计上偏向模块化、易用性和深度生态系统集成。 本文是.

Ergo Platform

2025年8月12日

Lithos:通过链上矿池实现去中心化挖矿

Lithos:通过链上矿池实现去中心化挖矿

Lithos是一个新协议,旨在通过将矿池转移到链上来彻底改革矿池的运作方式,使矿工完全控制,并消除对中心化矿池运营商的需求。与之前大多数去中心化挖矿的尝试不同,Lithos旨在高效、可扩展和安全。 什么是Lithos? Lithos是一个去中心化的矿池协议.

Ergo Platform

2025年7月24日

Sigma 6.0:更智能、更灵活的Ergo

Sigma 6.0:更智能、更灵活的Ergo

Sigma 6.

Ergo Platform

2025年7月23日

塑造Rosen的未来:关于五项关键财政提案的社区呼吁

塑造Rosen的未来:关于五项关键财政提案的社区呼吁

Rosen的联合创始人Armeanio已向Rosen财政提交了五项新提案。这些提案概述了Rosen Bridge的增长、实用性和可扩展性的战略愿景,这是Ergo互操作性基础设施的核心组成部分。 这是Ergo社区审查和讨论这一重要跨链服务未来方向的关键时刻。以.

Ergo Platform

2025年7月9日

Ergo的扩展UTXO与人工经济智能的崛起

Ergo的扩展UTXO与人工经济智能的崛起

自主经济代理的实用愿景 Ergo区块链上的自主经济代理在真实的数字经济中执行有用的工作。它们通过创建内容和提供数据分析、模式识别等服务来产生收入。它们利用收入支付运营费用,如托管费和服务器成本,并使用现代工具,如SSH和加密友好的托管服务提供商。当有额外资金.

Ergo Platform

2025年5月12日

ErgoHACK X:在Ergo区块链上的人工智能

ErgoHACK X:在Ergo区块链上的人工智能

庆祝去中心化创新的十年 加入第十届ErgoHACK,站在Ergo区块链AI革命的最前沿!释放你的创造力,与其他创新者合作,共同构建去中心化AI的未来。 关于ErgoHack ErgoHACK,旗舰社区黑客马拉松,庆祝其十周年!这一里程碑事件是Ergo生态系统.

Ergo Platform

2025年4月10日

ERG正式上线Kucoin(库币)交易所

ERG正式上线Kucoin(库币)交易所

据Kucoin官方通告,Ergo平台原生代币ERG于8月3日正式上线Kucoin(库币)交易所。目前支持的交易对是ERG/USDT。现已开放充值;2021年8月5日UTC时间上午10:00开放交易;2021年8月6日UTC时间上午10:00开放提币。 .

Ergo Foundation

2021年8月3日

Ergo两周年纪念——早期采用者应了解的核心知识

Ergo两周年纪念——早期采用者应了解的核心知识

Normal 0 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.

root7Z

2021年7月5日

关于Ergo启用官方QQ频道的公告

关于Ergo启用官方QQ频道的公告

由于Ergo官方微信号暂无法使用,Ergo官方现新增Ergo官方QQ频道:796039547。全球中文用户可通过扫描下面的二维码加入Ergo中文社区,及时了解Ergo最新官方动态. .

Eva Qing

2021年6月30日

Ergo首届黑客松大赛ERGOHACK圆满结束

Ergo首届黑客松大赛ERGOHACK圆满结束

Ergo首届黑客松大赛已经圆满结束,它正如计划那样:规模小而富有实验性,但依然收到了一些很棒的作品提交。Kushti以他的开场视频拉开了活动的序幕,然后我们总共有六个团队,其中来自anon_real(AuctionHouse、SigmaUSD UI等项目的创建.

Curia Regis Crypto

2021年6月29日

关于举办首届Ergo中国社区驱动践行活动的公告

关于举办首届Ergo中国社区驱动践行活动的公告

为了进一步提高Ergo公链平台在中国的知名度,让更多用户深入了解Ergo,同时为了践行Ergo社区驱动的理念,Ergo中国社区现特别举办“首届Ergo中国社区驱动践行活动”。活动参与者积极向新用户布道Ergo并将其引至Ergo官方指定社群,将有机会赢取ERG奖.

Eva Qing

2021年6月4日

比特币的前进之路是努力追赶Ergo ——Ergo率先实现扩展UTXO智能合约

比特币的前进之路是努力追赶Ergo ——Ergo率先实现扩展UTXO智能合约

比特币 比特币是一头野兽。是的,其底层软件需要认真升级。它真的太慢了。但是,您也必须承认它的优势,网络效应是非常强大的------比特币是加密货币之王。在全球范围内,比特币正成为一个常见、被理解和被采用的术语。大型信托、投资巨头和对冲基金经理,都被比特币的主.

Curia Regis Crypto

2021年5月23日

关于Ergo基金会任命谭声情先生担任中国区大使的公告

关于Ergo基金会任命谭声情先生担任中国区大使的公告

经Ergo基金会批准,现任命谭声情先生(英文名:Tango)担任Ergo中国区大使。 为了提升Ergo在中国的知名度与影响力,Ergo基金会现授权谭声情先生以Ergo中国区大使身份进行Ergo在中国的品牌宣传、商务洽谈、社区活动、主题推广等事宜。 此任命自.

Ergo Team

2021年5月16日

硬分叉事后说明

硬分叉事后说明

英文链接: 应@kushti的请求,我现在给大家说明一下今天在硬分叉升级期间发生的事情。有一些BUG导致矿工无法出块,现已修补好这些BUG,矿工可以出块。 version2ActivationDifficultyHex中出现往返编码失败(Round-T.

Eva Qing

2021年2月3日

硬分叉升级后Ergo挖矿须知

硬分叉升级后Ergo挖矿须知

Ergo将在区块#417,792上进行硬分叉协议升级。此次升级会引入重大更改,包括将关闭不可外包功能(Non-Outsourceability)。经过此次硬分叉之后,新的PoW(被称为Autolykos v2.

Eva Qing

2021年2月1日

如何设置和配置Ergo全节点

如何设置和配置Ergo全节点

如何设置和配置Ergo全节点 本教程说明了如何安装和运行Ergo全节点,不涵盖挖矿。  Windows用户还可以观看视频教程。 如何在Windows上设置和配置Ergo全节点 视频链接: 节点安全 这里是节点使用的一些重要方面,您的钱包及代币是否安全.

Eva Qing

2021年1月21日

既想享受乐趣,又想赚取利润? ——那就赶紧来挖ERG

既想享受乐趣,又想赚取利润? ——那就赶紧来挖ERG

Ergo GPU挖矿 本文将帮助您开始使用GPU挖矿Ergo原生代币ERG。 Ergo挖矿基于Autolykos,即一种工作量证明(PoW)算法,被设计为阻碍ASIC矿机和矿池。矿工须执行存储困难的计算(需要至少4 GB的内存,但是当前最有效的实现使用的是.

Eva Qing

2021年1月21日

适用于AMD GPU的Autolykos v2(Ergo)的OpenCL挖矿软件

适用于AMD GPU的Autolykos v2(Ergo)的OpenCL挖矿软件

适用于ergoplatform.

Eva Qing

2021年1月19日

适用于Nvidia GPU的Autolykos v2(Ergo)用Cuda挖矿软件

适用于Nvidia GPU的Autolykos v2(Ergo)用Cuda挖矿软件

用于ergoplatform.

Eva Qing

2021年1月19日

尔格基金会为主要去中心化应用(dApp)基础设施提供资助

尔格基金会为主要去中心化应用(dApp)基础设施提供资助

尔格基金会将考虑支持重大生态系统开发项目提供资助的建议。 尔格是一个面向社区的项目,该生态系统的方方面面都有许多贡献者。尔格基金会会拿出一部分资金资助此项工作,这对于构建用户所需的日常产品与服务以及更多样化的金融去中心化应用至关重要。该基金会正在积极寻求.

Guy Brandon

2020年11月17日