Sui.

文章

关于Sui的教育材料和教程

Sui.X.Peera.

赚取你的 1000 Sui 份额

获取声誉积分,并因帮助 Sui 社区成长而获得奖励。

帖子

44
  • article banner.
    Owen.
    Jun 01, 2025
    文章

    Sui Cetus DeFi Hack:对生态系统的全球影响

    2025 年 5 月,Sui 区块链生态系统面临重大安全漏洞,给去中心化金融 (DeFi) 世界带来冲击. Cetus 协议是Sui上的旗舰去中心化交易所(DEX),在一次毁灭性的黑客攻击中被利用,耗尽了超过2.2亿美元**的数字资产. 该事件不仅引发了人们对Sui网络内DeFi协议安全的严重担忧,而且还凸显了全球DeFi格局中更广泛的漏洞. 在 Cetus 黑客攻击期间发生了什么? Cetus 协议是 Sui 上领先的 DEX 和流动性协议,是代币互换、收益挖矿和集中流动性供应的关键基础设施. 它使用Move编程语言构建,因其高性能架构和与原生SUI代币的深度集成而受到赞誉. 2025年5月22日,Cetus流动资金池中的异常活动触发了警报. 泳池深度迅速下降,很快证实该平台已被黑客入侵. 攻击者从流动性储备中耗尽了2.2亿至2.6亿美元的资产. 尽管确切的漏洞仍在调查中,但早期分析表明该漏洞可能涉及: -操纵流动资金池的计算 -绕过治理控制 Cetus团队迅速暂停了交易并启动了追回工作,与Sui验证者和区块链分析公司密切合作,追踪和冻结被盗资金. 对 Sui 和 Cetus 用户的直接影响 影响立竿见影且严重: CETUS代币崩溃:该平台的原生治理代币在数小时内损失了60%以上的价值**. 流动性提供者的损失**:许多有限合伙人的存款资产被清理干净. 生态系统范围的恐慌**:Sui上的其他几个DeFi平台暂时停止运营或接受了紧急审计. 尽管如此,还是有一线希望——Sui验证者社区设法冻结了高达1.6亿美元的被盗资金,为追回部分资金带来了希望. Cetus Hack 对 Sui 生态系统意味着什么 1. 发现 Move 智能合约中的安全漏洞 尽管Move编程语言的设计具有强大的安全保障——包括比Solidity更好的内存管理和资源控制——但Cetus的黑客攻击暴露了即使是结构良好的系统在处理复杂的DeFi逻辑(例如跨合约调用、治理模块或动态定价机制)时也可能存在严重缺陷. 此次活动为Sui开发者敲响了警钟: -加大对形式验证和第三方审计的投入 -采用更严格的治理和升级机制 -提高风险披露的透明度 2. 可能加强监管审查 随着DeFi在全球的持续增长,监管机构正在密切关注. 像这样的备受瞩目的黑客攻击可能会促使人们加强对DeFi协议的审查,尤其是那些在Sui等新兴区块链上运行的协议. 当局可以推动: -强制举报黑客攻击 -项目团队的责任框架 -DeFi 平台的合规要求 3. 重新评估对新兴 DeFi 生态系统的信任 Sui 将自己定位为可扩展的高性能第 1 层区块链,吸引了 DeFi 建设者和投资者的极大关注. 但是,Cetus事件凸显了与智能合约工具和审计实践仍在成熟的新生态系统相关的风险. 投资者和开发商现在正在重新考虑他们如何进行风险评估,许多人呼吁: -分散的保险机制 -多重签名资金托管 -实时监控工具 全球 DeFi 行业的经验教训 1. 复杂性会增加风险 DeFi 协议通常实现新颖的经济模型和算法设计,这可能会带来意想不到的后果. Cetus的黑客攻击表明,如果不对定价或治理等核心组件进行严格的测试和审计,即使是精心设计的系统也可能受到损害. 2. 透明度建立信心 在危机期间,Cetus团队因与Sui生态系统的及时沟通和积极合作而受到赞誉. 透明的更新有助于减轻进一步的损害并稳定用户的信心. 3. 恢复是可能的——但信任需要时间 尽管很大一部分被盗资金已被冻结,可能会被追回,但重建信任需要时间. 在再次将资金存入DeFi协议之前,用户可能会要求更强有力的保障. 这可能会导致以下方面的更多采用: -链上保险 -实时监控工具 -用于公共审计的开源代码库 展望未来:Sui 和 DeFi 的下一步是什么? 尽管遇到了挫折,但Sui生态系统仍然具有弹性. 验证者冻结并可能追回被盗资金的能力表明了协调的链上治理和快速响应机制的力量. 展望未来,我们可以期待看到: -更加重视基于MOVE的合同的安全审计和正式核查 -更多DeFi团队与区块链网络之间的合作以增强事件响应能力 风险缓解工具**的增长,包括分散式保险和多重签名资金管理 结论:DeFi 的艰难教训 对于整个区块链行业来说,Sui Cetus DeFi黑客攻击是一个痛苦但必要的学习时刻. 随着DeFi的不断发展,我们的安全、治理和风险管理方法也必须不断发展. 只有通过持续改进、透明度和责任共担,生态系统才能变得对所有参与者来说更加安全和值得信赖.

    • Sui
    0
  • article banner.
    harry phan.
    May 31, 2025
    文章

    剖析 Sui 上的 Cetus 协议漏洞

    2025年5月22日,一个针对Sui区块链上的Cetus协议的重大漏洞,估计造成2.23亿美元的损失. 由于所涉及的机制异常,该事件立即引起了整个生态系统的关注,尤其是技术观察家的关注. 接下来全面分析了从闪存交换和勾选操作到溢出检测逻辑中的静默漏洞的攻击. https://suiscan.xyz/mainnet/tx/DVMG3B2kocLEnVMDuQzTYRgjwuuFSfciawPvXXheB3x 设置 攻击者通过使用 flash_swap 借用大量的 SUI 代币来换取 HasUI 来启动漏洞. 与传统的闪存贷款不同,Cetus中的flash_swap允许用户预先获得代币1(在本例中为SUI),然后在同一笔交易中偿还代币0(HasUI). 这种机制是攻击者设置的核心. 在这个特殊的例子中,攻击者成功获得了576万个SUI,并有义务偿还1002万个HasUI. 但是在此次互换中,流动性池中HasUI的价格受到严重操纵. 该矿池的价格从代表1.056的分笔成交点跌至如此之低以至于价格仅达到0.0000009977——大幅贬值至其原始价格的0.00009%. 与报价区间对应的价格区间为: 战略流动性注入 在这次价格暴跌之后,攻击者使用open_position创建了窄幅流动性头寸,选择了高度特定的报价区间(TickLower:300000,TickUpper:300200). 在这种被操纵的环境中,他们注入了天文数字的流动性:超过10^34个单位,都在分时暴跌造成的超压缩价格区间内. 这是由一个看似无害的函数实现的:get_amount_by_liquidity. 在正常情况下,此函数计算需要多少代币 A 和代币 B 才能匹配特定的流动性水平. 它使用诸如 get_delta_a 之类的辅助函数来实现此目的,它依赖于 get_sqrt_price_at_tick. 但是,由于操纵的当前即时报价为-138185,而且所选的分时报价范围远远超出该范围(从300000开始),get_amount_by_liquidity内部的逻辑路径确保了计算能够通过涉及左移操作(checked_shlw)的脆弱代码部分. 溢出和截断:核心漏洞 这就是漏洞真正成为技术性的地方. 函数 checked_shlw 本应处理 256 位数字向左移动 64 位. 在类似 Solidity 的环境中,这样的操作存在风险,因为它可能会溢出. 这个特殊的实现试图通过检查输入是否超过预定义的阈值来检测溢出:0xffffffffffffffffffffffff << 192. 检测 64 位安全偏移的实际阈值应为 2^ (256-64)-1. 但是,(0xfffffffffffffff << 192) 大于 2^192. 这意味着精心选择的输入可以通过低于代码中使用的阈值来绕过溢出检查,但仍然足够大,足以在执行期间造成溢出. 攻击者提供了这样的输入,流动性和价格差异的乘法无声地溢出,返回的值比预期的要小得多,实际上几乎为零. 结果,该协议计算出攻击者只需要支付少量代币 A(本质上是一个单位)即可为池中增加大量流动性. 这种错误的计算使攻击者能够在没有实际成本的情况下注入大量流动性. 随后,攻击者通过repay_flash_swap移除了增加的流动性,并通过repay_flash_swap支付未付的flash_swap代币完成了攻击. 攻击者获利了 5,765,124 个 SUI 和 10,024,321 个 HasUI. 最后,Cetus 团队通过两个 PR 修复了该漏洞: https://github.com/CetusProtocol/integer-mate/pull/6/files Cetus 很快在其 integer-mate 存储库上发布了一个补丁,第一个拉取请求试图完善溢出检测. 但是,最初的修复还不够. 它使用了 1 << 192 的掩码,这仍然允许边缘大小写值滑过. 接下来是第二次拉取请求,进行更严格的比较,检查输入是否大于或等于 2^192,从而确保适当的边界以安全地向左移动. 只有通过此更正,漏洞才得到有效缓解. https://github.com/CetusProtocol/integer-mate/pull/7/files

    • Sui
    2
  • article banner.
    0xduckmove.
    May 31, 2025
    文章

    将钱包变成可编程、可组合的智能代理.

    Account.tech 是 Sui 区块链上的一个开源框架,它引入了高度流畅的智能账户 灵活、安全和可自定义的账户对象,可以通过基于意图的模块化架构执行链上操作. 可以把它想象成可编程钱包,它原生支持多重签名、DAO 逻辑、定时执行、动态访问控制等. 为什么要使用智能账户? 传统账户只是被动容器. 他们持有资产并签署交易. 智能账户是活跃的可编程实体,可以定义所有权逻辑、自动化工作流程并根据规则管理资产. 在Account.tech中,这些规则存在于链上,可通过Move模块进行自定义,并通过Intent强制执行. 关键概念 智能账户结构 public struct Account has key, store { id: UID, metadata: Metadata, deps: Deps, intents: Intents, config: Config, } 智能账户是一个共享对象,包含: -元数据:描述性信息 -Deps — 使用的依赖包 -意图 — 待处理或正在处理的执行操作请求 -配置 — 自定义规则集(例如,多重签名、基于角色、DAO 逻辑) 每个账户都有唯一的配置模块,用于决定如何解析 Intent. 基于意图的执行 Intent 是执行一项或多项链上操作的结构化请求. 它分为三个阶段: [ ] 请求用户通过操作创建意图 [ ] 分辨率 — 配置模块检查条件是否满足 [ ] 执行 — 任何人都可以在 Intent 有效时执行 示例:转移资金的多重签名意图只有在足够多的成员批准后才会执行. 3.操作 = 模块化执行单元 每个动作都是一个独立的 Move 结构,例如: struct WithdrawAction { object_id: ID } struct TransferAction { recipient: address } 你可以在一个意图中组合多个动作. 例如: Withdraw → Transfer → Withdraw → Transfer 这支持高级工作流程,例如原子交换、批量传输、基于时间的保管库发布等. 配置:可自定义的所有权逻辑 配置类型定义了如何解析意图. 你可以插入逻辑,例如: ✅ 使用加权选票进行多重签名 🔐 基于角色的访问控制 🗳 DAO 投票逻辑 ⏳ 时间延迟或重复任务 💾 恢复流程 每个意图都跟踪一个结果,该结果代表决议状态(例如,收集的选票、获得的批准等). 了解更多 🔗 文档:https://account-tech.gitbook.io/docs 🧑‍💻 GitHub:https://github.com/account-tech

    • Sui
    1
  • article banner.
    0xduckmove.
    May 30, 2025
    文章

    Sui 中的 BCS 编码它是什么以及它为何重要

    如果你是在 Sui 的基础上进行构建或者修改 Move,你可能已经听说过 BCS 这个词流传开来. 这是最初为Diem区块链设计的二进制规范序列化格式化机器的缩写,现在是Sui、Aptos、Starcoin和0L等基于MOVE的生态系统的基石. 所以,是的,如果你真的想在这个空间里建房,你最好对它感到舒服. 什么是 BCS? 二进制规范序列化 (BCS) 是一种用于将结构化数据序列化(编码)和反序列化(解码)为字节的格式. 你会看到它在以下情况下使用: -在签名之前对交易进行编码. -从区块链发出或解析事件. -通过 JavaScript 在链下与 Move 智能合约进行交互. 但是 BCS 不包括字节中的类型信息. 这意味着在解码时必须提前了解结构,这与 JSON 或协议缓冲区等格式不同,后者更具自我描述性. BCS 的主要功能 没有类型元数据 序列化输出不包含有关字段类型的提示. 解码时你必须知道自己在处理什么. 依赖订单的序列化 结构按照其字段的确切顺序进行编码. 更改顺序,你的反序列化就会中断. 这就是为什么 Move 中的 peel_* 函数必须与结构的布局 1:1 匹配的原因. 泛型类型 在像这样的结构中: struct BCSObject has drop, copy { id: ID, owner: address, meta: Metadata, generic: T } 你只能可靠地反序列化到元字段. 泛型类型会干扰 BCS 解析,因此,如果您想安全解码数据,请务必将它们放在最后. 在 JavaScript 中使用区块链 多亏了 @mysten /bcs 库,你可以像专业人士一样在 JS 中使用 BCS. npm i @mysten/bcs 还有一个基本的例子: import { BCS, getSuiMoveConfig } from "@mysten/bcs"; const bcs = new BCS(getSuiMoveConfig()); const ser = bcs.ser(BCS.U16, 10); console.log(ser.toBytes()); // [0x0a, 0x00] const des = bcs.de(BCS.U16, ser.toBytes()); console.log(des); // 10 你也可以序列化向量和字符串: bcs.ser("vector", [1, 2, 3, 4]); // 04 01 02 03 04 bcs.ser(BCS.STRING, "test string"); // 0b7465737420737472696e67 注册自定义类型 假设你有以下 Move 结构: struct Metadata has drop, copy { name: std::ascii::String } struct BCSObject has drop, copy { id: ID, owner: address, meta: Metadata } 你可以像这样在 JS 中注册它们: bcs.registerStructType("Metadata", { name: BCS.STRING, }); bcs.registerStructType("BCSObject", { id: BCS.ADDRESS, owner: BCS.ADDRESS, meta: "Metadata", }); 序列化和反序列化示例 JavaScript 序列 const bytes = bcs .ser("BCSObject", { id: "0x0000000000000000000000000000000000000005", owner: "0x000000000000000000000000000000000000000a", meta: { name: "aaa" } }) .toString("hex"); console.log("Hex:", bytes); 输出可能是: 0x0000000000000000000000000000000000000005000000000000000000000000000000000000000a03616161 现在可以将其传递到 Move 合约中,甚至可以在 Sui CLI 中手动测试. BCS 可能看起来低级且字节密集,但是一旦你了解了它是如何编码数据的,你就会更深入地了解Move智能合约的真正运作方式——以及如何安全地桥接链上的 ↔ 链下系统. 而且,如果你在 Sui Explorer 上调试 BCS 字节(如下所示): BCS 编码 二进制权威序列化(BCS)是在Diem区块链的背景下开发的一种序列化格式,现在广泛用于大多数基于Move的区块链(Sui、Starcoin、Aptos、0L). BCS 不仅用于 Move VM,还用于交易和事件编码,例如在签名之前序列化交易或解析事件数据. 如果您想更深入地了解 Move 的工作原理并成为 Move 专家,了解 BCS 的工作原理至关重要. 让我们潜入吧. BCS 规格和特性 在我们完成本课的其余部分时,最好记住BCS编码的一些高级属性: BCS 是一种数据序列化格式,其中生成的输出字节不包含任何类型信息;因此,接收编码字节的一方需要知道如何反序列化数据 BCS 中没有结构(因为没有类型);该结构仅定义了字段序列化的顺序 包装器类型会被忽略,因此 outerType 和 unnestedType 将具有相同的 BCS 表示形式: struct outerType { 所有者:innerType } struct innerType { 地址:地址 } struct unnestedType { 地址:地址 } 包含泛型类型字段的类型最多可以解析到第一个泛型类型字段. 因此,如果它是自定义类型,则最好将泛型类型字段放在最后一个或多个字段. struct bcsObject 已删除,复制 { ID:身份证, 所有者:地址, 元数据:元数据, 通用:T } 在这个例子中,我们可以反序列化直到元字段的所有内容. 像无符号整数这样的原始类型以 Little Endian 格式编码 向量序列化为 ULEB128 长度(最大长度可达 u32),然后是向量的内容. 完整的 BCS 规范可以在 BCS 存储库中找到. 使用 @mysten /bcs JavaScript 库 安装 你需要为这部分安装的库是 @mysten /bcs 库. 你可以通过在节点项目的根目录中键入来安装它: npm i @mysten /bcs 基本示例 让我们先使用 JavaScript 库来序列化和反序列化一些简单的数据类型: 从 “@mysten /bcs” 导入 {BCS,getsuiMoveConfig}; //使用默认 Sui Move 配置初始化序列化器 const bcs = 新 BCS (getsuiMoveConfig ()); //定义一些测试数据类型 常量整数 = 10; const 数组 = [1, 2, 3, 4]; const 字符串 = “测试字符串” //使用 bcs.ser () 来序列化数据 const ser_integer = bcs.ser(BCS.U16,整数); const ser_array = bcs.ser(“向量”,数组); const ser_string = bcs.ser(BCS.STRING,字符串); //使用 bcs.de () 反序列化数据 const de_integer = bcs.de (BCS.U16, ser_Integer.toBytes ()); const de_array = bcs.de(“向量”,ser_Array.toBytes ()); const de_string = bcs.de (BCS.STRING, ser_string.toBytes ()); 我们可以使用上述语法,即新的 BCS(getsuiMoveConfig ()),使用 Sui Move 的内置默认设置初始化序列化器实例. 有内置枚举可用于 Sui Move 类型,例如 BCS.U16、BCS.STRING 等. 对于泛型类型,可以使用与 Sui Move 相同的语法来定义,例如上面示例中的矢量. 让我们仔细看看序列化和反序列化的字段: int 是小端十六进制 0a00 10 向量的第一个元素表示总长度, 那么它就是向量中的任何元素 0401020304 1,2,3,4 字符串只是 u8 的向量,第一个元素等于字符串的长度 0b7465737420737472696e67 测试字符串 类型注册 我们可以使用以下语法注册我们将要使用的自定义类型: 从 “@mysten /bcs” 导入 {BCS,getsuiMoveConfig}; const bcs = 新 BCS (getsuiMoveConfig ()); //注册元数据类型 bcs.registerStructType (“元数据”,{ 名称:BCS.STRING, }); //我们打算读取的主对象也一样 bcs.registerStructType (“bcsObject”, { //BCS.ADDRESS 用于 ID 类型和地址类型 ID:BCS.地址, 所有者:BCS.ADDRESS, meta: “元数据”, }); 在 Sui 智能合约中使用 bcs 让我们继续使用上面的结构示例. 结构定义 我们从 Sui Move 合约中相应的结构定义开始. { //.. struct 元数据已删除,复制 { 名称:std:: ascii:: String } struct bcsObject 已删除,复制 { ID:身份证, 所有者:地址, meta:元数据 } //.. } 反序列化 现在,让我们编写一个函数来反序列化 Sui 合约中的对象. 公共娱乐 object_from_bytes(bcs_bytes:矢量):bcsObject { //初始化 bcs 字节实例 让 bcs = bcs:: new (bcs_bytes); //使用peel_*函数从序列化字节中提取值. //顺序必须与我们在序列化中使用的顺序相同! let (id、所有者、元数据) = ( bcs:: peel_address (&mut bcs)、bcs:: peel_address (&mut bcs)、bcs:: peel_vec_u8 (&mut bcs) ); //使用序列化结果打包 BcsObject 结构 bcsObject {id: object:: id_from_address (id),所有者,元数据:元数据 {名称:std:: ascii:: string (meta)}} Sui Frame bcs 模块中各种 peel_* 方法用于从 BCS 序列化字节中 “剥离” 每个单独的字段. 请注意,我们剥离字段的顺序必须与结构定义中字段的顺序完全相同. 测验:为什么对同一 bcs 对象进行前两次 peel_address 调用的结果不一样? 另请注意我们如何使用辅助函数将类型从地址转换为 id,以及如何将向量转换为 std:: ascii:: string. 测验:如果 BSCObject 使用 UID 类型而不是 ID 类型会发生什么? 完整的 Ser/De 示例 在 example_projects 文件夹中查找完整的 JavaScript 和 Sui Move 示例代码. 首先,我们使用 JavaScript 程序序列化一个测试对象: //我们构造一个用于序列化的测试对象,注意我们可以将输出格式指定为十六进制 让 _bytes = bcs .ser(“bcsObject”,{ id:“0x000000000000000000000000000000000000000005”, 所有者:“0x000000000000000000000000000000000000a”, 元数据:{名称:“aaa”} }) .toString(“十六进制”); 这次我们希望 BCS 写入器的输出采用十六进制格式,可以像上面一样指定. 使用 0x 前缀将序列化结果十六进制字符串粘贴并导出到环境变量中: export object_hexstring=0x00000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000 现在我们可以运行关联的 Move 单元测试来检查正确性: sui move 测试 你应该在控制台中看到这个: 正在构建 bcs_move 运行 Move 单元测试 [PASS] 0x0:: bcs_object:: test_deserialization 测试结果:OK. 测试总数:1;通过次数:1;失败:0 或者我们可以发布模块(并导出 PACKAGE_ID)并使用上面的 BCS 序列化十六进制字符串调用 emit_object 方法: sui 客户端调用--function emit_object--module bcs_object--package_ID--args $OBJECT_HEXSTRING 然后,我们可以在 Sui Explorer 上查看交易的 “事件” 选项卡,看看我们发出了正确的反序列化的 BcsObject:

    • Sui
    • SDKs and Developer Tools
    1
  • article banner.
    Vens.sui.
    May 29, 2025
    文章

    Cetus 协议黑客攻击-Sui 上最大的 DeFi 漏洞

    2025 年 5 月,近代历史上最重大的安全漏洞之一震惊了 DeFi 世界. Cetus 协议是Sui区块链上领先的去中心化交易所(DEX)和流动性协议,成为复杂黑客攻击的受害者,该黑客攻击导致损失超过2亿美元. 这一事件不仅给DeFi社区带来了冲击,还引发了人们对智能合约的安全性以及基于Sui等新兴区块链的协议的稳健性的严重担忧. Cetus 协议已确立了自己作为Sui网络上首屈一指的DEX的地位,为用户提供了交换代币和提供流动性的平台. 作为Sui生态系统中的关键基础设施组件,Cetus在促进去中心化交易和增加网络的整体流动性方面发挥了关键作用. 它的突出地位使其成为试图利用其代码库中漏洞的恶意行为者的有吸引力的目标. Cetus Hack 展开 该漏洞发生在2025年5月22日,当时攻击者发现并利用了Cetus智能合约逻辑中的一个关键缺陷. 具体而言,该漏洞源于一个微妙的算术溢出漏洞,该漏洞允许黑客操纵协议的内部记账机制. 通过部署虚假代币和操纵流动资金池中的价格曲线,攻击者能够在不触发即时检测系统的情况下耗尽大量资金. 太平洋时间凌晨 3:52 左右(世界标准时间 11:52),区块链监控器开始检测Cetus上多个流动性池中的异常交易. 几小时之内,损失的程度就显而易见了——价值超过2.6亿美元的资产从协议中抽走了. 被盗资金很快被交换并桥接到其他区块链,这使追回工作复杂化. 对市场和 Sui 生态系统的影响 黑客攻击的后果迅速而严重. 由于开发人员争先恐后地评估情况并减轻进一步的损失,Cetus的交易立即停止. 同时,与该平台相关的原生代币的价值暴跌,其中一些代币在短短几个小时内跌幅度高达80%. 投资者和用户面临巨额损失,对Sui生态系统的信心动摇了. 一个特别令人震惊的事态发展发生在Sui网络尝试采取有争议的对策时:投票冻结攻击者装有1.6亿美元被盗资金的钱包. 尽管此举表明了资产追回的积极方法,但它也引发了关于去中心化原则以及此类行动是否破坏了对区块链交易不可改变性的信任的辩论. 在势头下,美元SUI下跌了5%,CETUS下跌了+ 40%,这种上涨既不可思议又可怕. Cetus 协议漏洞的技术细节 根据网络安全公司Halborn提供的分析,该漏洞的根本原因在于Cetus在代币交换期间如何验证某些算术运算. 在处理大量数据方面的疏忽导致了溢出情况,攻击者巧妙地操纵了这种情况,在流动资金池中造成了人为的不平衡. 然后,利用这些失衡从系统中提取实际资产,而没有向流动性提供者提供适当补偿. 这种漏洞特别隐蔽,因为它并不总是在正常运行条件下表现出来;相反,它需要涉及非常大的数值或异常交易序列的特定边缘情况才能触发. 众所周知,此类漏洞在标准审计和测试阶段很难被发现,这使它们成为资源充足的对手利用的首选. 来自 Cetus 和 Sui 基金会(又名 Mysten Labs)的应对和恢复工作 据报道,在袭击期间,约有1.6亿美元被冻结,并将归还给Cetus矿池. 这就是为什么所有Sui基金会都发起了投票以解冻该代币的原因. 袭击发生后,Cetus团队发表公开声明,承认了这一违规行为,并概述了解决的步骤. 他们与Elliptic和Chainalysis等区块链分析公司密切合作,追踪被盗资金的流动并确定潜在的追回途径. 此外,围绕实施紧急升级以修补现有漏洞并增强未来抵御类似攻击的能力,展开了讨论. 社区成员对这些事态发展表示了不同的反应. 尽管许多人赞扬了Cetus领导层在黑客攻击后表现出的透明度,但其他人则批评对此类情景的准备不足,并质疑发射前是否已经实施了足够的保障措施.

    • Sui
    • Security Protocols
    1
  • article banner.
    HaGiang.
    May 25, 2025
    文章

    我的第一篇文章 zKat:公共区块链的隐私保护身份验证

    因为透明度不应该意味着放弃你的秘密. 在当今大多数公共区块链上,每笔交易和用户身份都是公开可见的. 虽然透明度是区块链的最大优势之一,但它是以隐私为代价的,尤其是在身份验证方面. zKat 是零知识身份验证器的缩写,是一种新颖的密码学原语,它为区块链世界带来了保护隐私的身份验证. 使用zKat,用户可以证明自己有权进行交易,而无需透露该授权背后的规则或政策. ##传统方法的问题 以前在身份验证中尝试保护隐私,例如使用阈值签名,只能隐藏有限的信息. 例如,他们可能会掩盖哪些用户签署了交易,但不会掩盖其他内容. 他们还为更复杂的身份验证策略**(例如角色、身份或规则的组合)而苦苦挣扎. zKat 通过以下方式改变了游戏规则: -支持任意复杂的政策 -允许灵活的结构,例如多方案签名组合 -对公众隐瞒**整个政策 ##zKat 的工作原理 为了构建 zKat,作者设计了一个编译器,它将广泛使用的Groth16zk-SNARK系统转换为一种新型的非交互式零知识(NIZK)证明——一种支持模棱两可的验证密钥的证明. 那是什么意思? 这意味着验证者无法分辨正在使用哪种政策,但证据仍然使他们相信该政策是有效的. 这是论文中引入的全新加密特性,也是zKat如何确保政策隐私的基础. 但是作者并没有止步于 zKat. 他们更进一步,推出了zkat,该版本支持隐身更新. 简而言之: 策略颁发者可以更新身份验证策略 没有透露任何新内容 这在现实世界的区块链系统中非常强大——比如DAO更新投票规则或机构轮换密钥. 他们还探索使用递归 zk-proofs来使 zkat+ 具有可扩展性并适合区块链集成. 研究人员在基于阈值的身份验证的原型中实现了zKat. 他们的评估显示: -性能与传统阈值签名相当 -zKat 支持复杂得多的政策 -所有这些,只需要最低的开销

    • Sui
    • Architecture
    1
  • article banner.
    0xduckmove.
    May 19, 2025
    文章

    IKA 是什么?“不只是炒作 👀”

    (p/s:那些 “web3 更新” 中没有一个能让你大吃一惊然后称之为 alpha 😮‍💨) 阅读完整文章:https://x.com/InternSui81687/status/1897309368644985108 你曾经在连锁店之间转移资产并感觉自己像印第安纳·琼斯一样躲避陷阱吗?是啊. 那是因为现在的互操作性 = 危险的桥梁 + 核心故障点. 伊卡说:“不,我们已经完成了. ” 他们正在构建一个无需信任、快速自动对焦且不会将钥匙交给任何人的系统. 它基于 Sui 构建,使用阈值加密和 2PC-MPC 在 [这里的视频](https://ipfs-cdn.peeranha.io/QmWBduxmwvTYMwvMd88J6Zwbn5fr4PbTXx3UXPtxUeArmA)中,大卫·拉什(Ika的联合创始人)直言不讳地说出了每个人的想法:互操作性被打破了 AF. 而且,他们没有像大多数团队那样写另一篇 “我们需要解决方案” 的博客,而是花了两年时间邀请安全专家、人工智能书呆子和学者来真正建立一个解决方案. 他们想出了什么?一个使用2PC MPC和阈值加密的系统——花言巧语基本上意味着:你的密钥是你的,你的资产不会像2017年的圣诞礼物那样被重新包装,而且一切进展得都像地狱一样快. 比如,Ika 不只是保护你的东西. 它以亚秒级的延迟完成交易,并且仍然保持去中心化. 同时,桥梁在这里需要8分钟,而你的灵魂只是为了确认互换. 他们在 Sui 的基础上建造了这个. 如果你到现在为止一直睡在 Sui 上,那次午睡就结束了. Sui 的以对象为中心的模型、极快的终结性和 Mysticeti Consensus(是的,这是一回事,不是虚构的)非常适合 Ika 想要做的事情. 大卫甚至表示,Sui的开发经验使其成为一个显而易见的选择——这在加密领域是罕见的好评,因为每种开发工具都像一本古老的卷轴. 但是真正吸引我的是他们对用户体验的看法. 最好的加密货币?那种很无聊. 还不错,但以 “它能正常工作” 的方式来看. Ika 正在为一个你甚至不知道自己在做跨链事情的未来开枪. 没有弹出窗口,没有桥梁,没有假代币. 只需打开钱包,本地借出您的比特币,进行跨链交换,然后保持活力. 这就是我们一直在要求的,但不知何故忘记要求了. 而且不要以为这只适用于德根兄弟. Ika使DAO、独立团队和企业能够推出自己的托管解决方案——比如 “Fireblocks 入门包”,但使用类固醇,而且实际上是可以访问的. 您不再需要50万美元的设置来构建安全基础设施. 只有 Sui、Ika 和一点勇气. 哦,我们不要在比特币上睡觉. BTC多年来一直处于观望状态,就像那个拒绝加入游戏的家伙一样. 但是 Ika 正在让它可玩. DeFi 无需打包,无需移动——只需将其锁定为原生抵押品即可. 机构一定会喜欢它,因为它可以让他们保持合规和高效. 没有税收资金,没有监护陷阱. 只是资本畅通无阻地流动. 因此,如果有人问你,“加密的下一步是什么?”不要给他们发一篇写着 “互操作性是未来” 的推文话题

    • Sui
    1
  • article banner.
    RogueRig.
    May 13, 2025
    文章

    IKA 是什么?为什么要大肆宣传?

    @ikadotxyz 是 Sui 区块链上的超快并行 MPC 网络,因其革新 Web3 安全性和互操作性的潜力而引起了广泛关注. 最近在X上发布的文章凸显了看涨情绪,据报道,尽管有10亿枚代币供应,但IKA在Whales等盘前平台上的交易价格在4.90美元至10美元之间. 这表明,如果势头保持不变,市值可能达到数十亿美元,这得益于Sui基金会的2100万美元战略投资和创纪录的140万美元SUI NFT艺术活动. Ika 的亚秒级延迟和跨数百个签名者节点的扩展能力使其改变了 DeFi、去中心化托管和跨链应用程序的游戏规则. 预计即将在Sui上推出的IKA代币将解锁新的实用程序,推动进一步采用. X 用户对 IKA 在 @GiveRep 忠诚度计划中的作用大肆宣传,有人称其为 Sui 最大的空投机会之一. 也就是说,盘前价格可能波动且具有投机性,因此不能保证4.90美元至10美元的区间在发布后会保持不变. 务必深入研究该项目的基本面——查看Ika的官方渠道以获得更深入的见解,并在参与之前权衡风险. Sui 生态系统正在升温,但加密领域没有什么可以肯定的选择

    • Sui
    • Architecture
    1
  • article banner.
    Rogue.
    May 13, 2025
    文章

    SUI 节点设置-详细指南

    要设置 Sui 节点,你需要安装 Sui 二进制文件,克隆 Sui 存储库并配置节点. 你可以从源代码构建,也可以使用 Docker. 节点运行后,您可以监控其状态和同步进度. 详细步骤: 安装 Sui 二进制文件: 按照 Sui 文档中的说明安装 Sui 二进制文件. 如果你使用的是 Docker,请按照 Sui 全节点 Docker 自述文件中的说明进行操作. 如果您是从源代码构建,则需要克隆 Sui 存储库并对其进行编译. 配置节点: 全节点:根据Sui文档,你可以使用Docker或通过从源代码构建来配置Sui全节点. 验证器节点:按照 Sui 验证器节点配置中的说明配置验证器节点. 这包括安装和配置 Sui、密钥管理和存储配置. 全节点配置: 关闭所有正在运行的全节点. 删除数据库和 genesis.blob 文件. 从最新版本中获取源代码. 重置您的分支. 下载最新的 genesis blob. 如果需要,请更新你的 fullnode.yaml 配置文件. 重启你的 Sui Full 节点. 3.运行节点: 使用适用于您的配置方法的相应命令(例如 sui-node 或 Docker 命令)启动 Sui 节点. 监控节点: 监控节点的状态、同步进度和日志,以确保其正常运行. 使用日志、跟踪和指标等工具来监控节点. 默认指标端口为 9184,但你可以在 fullnode.yaml 文件中对其进行更改. 其他步骤: 委员会注册:如果您正在运行验证器节点,则需要向委员会注册. 液体质押:如果你正在运行一个节点,你也可以参与液体质押. 同步你的分支:如果你要为 Sui 项目做贡献,你需要将你的分支与主存储库同步. 通过执行这些步骤,您可以成功设置和运行 Sui 节点.

    • Sui
    1
  • article banner.
    HaGiang.
    May 12, 2025
    文章

    “解码 Sui 三部曲:为 Web3 基础设施铺平未来

    在探索Web3世界的过程中,除了共同追求更快的交易速度和更低的费用外,更深层次的结构性挑战越来越多地浮出水面. 如何经济地存储海量数据?如何在分散的环境中安全地保护敏感信息?复杂的计算能否在链下高效执行,同时还能在链上验证和信任其结果? 许多项目试图通过组合各种第三方服务来解决这些问题. 但是,这种路径通常会带来集成的复杂性、潜在的信任摩擦和分散的用户体验. 面对这些基础设施层面的挑战,Sui区块链及其核心开发团队Mysten Labs提出了一种更加集成的解决方案. 他们没有依赖拼凑而成的外部工具,而是设计了一个具有独特架构的区块链——包括其以对象为中心的模型和Move编程语言,同时构建了三个紧密连接的原生基础设施组件:Walrus、Seal和Nautilus. 本文旨在解读这三个组件背后的设计概念,探讨它们的工作原理,它们之间的关系以及它们可能为 Web3 应用程序带来哪些实际变化. Sui 的独特架构 要了解这三种工具是如何在 Sui 上运行的,我们必须首先看看 Sui 平台本身的一些关键特征. Sui 的核心创新之一是其面向对象的模型,从根本上改变了传统的基于账户的架构. Sui 将代币、NFT 甚至复杂的数据结构视为独立的 “对象”. 想象一下,将每项资产作为一个单独的箱子进行管理,而不是将所有内容记录到一个账本中. 这种设计允许并行处理无关的操作(例如处理两个无关的 NFT),从而提高吞吐量. 这种对象粒度与 Walrus 和 Seal 形成了自然的协同作用:Walrus 将存储的数据视为对象,而 Seal 可以将权限规则直接附加到单个对象. 此外,Sui 使用专为管理数字资产而设计的 Move 编程语言. Move强调安全性,旨在减少语言层面上许多常见的智能合约漏洞. 这种坚实的基础使其非常适合构建强大的基础设施组件. 通过将链设计和基础设施开发整合到一个屋檐下(Mysten Labs),Sui旨在提供更加无缝、协同效应的开发者体验. Walrus:经济、可编程的去中心化存储 众所周知,直接在链上存储大型文件(图像、视频、AI 模型,统称为 blob)非常昂贵. 现有的去中心化存储解决方案都有权衡取舍,但Walrus寻求在成本效益和智能合约交互性之间取得新的平衡,直接解决大规模链上数据的成本壁垒. Walrus 的核心是擦除编码,这是一种巧妙的技术,可以 “分片” 文件并添加 “恢复线索”,这样即使部分丢失也可以重建文件. 海象称这些额外的碎片为 “红色东西”. 可以这样想:如果你有两个数字,比如说 3 和 5,并且你存储了两个数字以及它们的总和 (8),那么输掉 3 并不是灾难性的,你可以使用 8-5 = 3 来恢复它. 额外的恢复片段起着类似的作用,在数学上与原始片段息息相关. 分段和编码后,Walrus 将这些分片分布在多个节点上. 即使某些分片丢失,只要检索到阈值数量的碎片,系统也可以重建原始文件,与完整文件复制相比,可以节省大量空间. 这种方法可以显著降低存储成本,并可能使分散式存储定价更接近集中式云提供商的定价. 更有趣的是,Walrus 利用了 Sui 的对象模型:每个存储的文件都变成了可编程的链上对象. 开发人员可以使用 Move 来编写管理这些存储对象的智能合约——设置访问规则、自动更新元数据等. 存储不再只是被动的,它变成了本机可编程的资源. 还有一个代币实用层:在Sui上与Walrus数据进行交互需要SUI代币来记录元数据(例如文件名、大小、存储位置),并可能锁定代币以支付存储费用. 如果Walrus的采用率提高,对SUI的需求可能会增加,从而收紧供应. Seal:去中心化保管库和门禁看门人 许多 Web3 应用程序都处理敏感数据:用户 ID、财务详情、付费内容. 在去中心化环境中,如何安全地存储机密并控制对它们的访问? Seal是一种去中心化机密管理(DSM)解决方案,旨在回答这个问题. 它的核心技术之一是阈值加密. 想象一下一个需要两把钥匙才能打开的金库,每把钥匙都由不同的人持有. 同样,阈值加密将解密密钥分成多个部分并将其分发给独立的密钥服务器. 只有当预定义的协作数量(阈值)时,数据才能被解密——没有一台服务器可以单独解密,这样可以分散信任并提高容错能力. Seal 的另一个巧妙功能是访问控制逻辑以链上的 Move 智能合约的形式编写. 开发人员可以定义明确的规则:例如,只有持有某个 NFT 或已支付费用的用户才能访问某些数据. 这种透明度和可验证性使Seal与传统的集中式访问系统区分开来. 当用户或应用程序想要解密密钥时,它会向密钥服务器发送请求. 这些服务器检查链上规则. 只有在满足条件的情况下,他们才会释放其密钥片段. 实际的解密是在客户端设备上进行的,因此密钥服务器永远不会触摸原始数据. Seal 可以保护存储在任何地方的数据,包括在 Walrus、其他去中心化网络甚至集中式云中. 这使其成为安全消息、私人用户数据、付费内容门控、机密投票等的理想之选. Nautilus:让链下计算在链上可验证 区块链不擅长复杂或资源密集型任务. 在链上进行这些操作既缓慢又昂贵,而且会损害隐私. 第 2 层或预言机等解决方案会有所帮助,但是 Nautilus 探索了一条不同的道路:实现可信的链下计算. Nautilus 使用一种名为可信执行环境 (TEE) 的基于硬件的解决方案. 可以将 TEE 视为 CPU 内部一个安全、隔离的区域. 该区域内的代码和数据不受系统其他部分(包括操作系统本身)的干扰. 基本工作流程如下: 开发人员将计算任务(例如财务模型、AI 推断、游戏逻辑)部署到他们控制的 TEE 上. 任务完成后,TEE 会生成加密证明——一种防篡改的 “收据”,可以证明: -任务在 TEE 中运行 -代码没有被篡改 -该过程成功完成. 3.该证明和结果将提交给Sui上的Move智能合约. 合同验证认证(例如,签名有效性和代码的哈希值). 只有通过验证,合约才会接受结果并继续进行链上操作. Nautilus 在不暴露敏感细节的情况下,将高性能的链下计算与链上可验证性和信任相结合. 鹦鹉螺在行动:蓝鳍金枪鱼案 一个具体的例子是去中心化的永续交易平台Bluefin. 大多数高性能交易平台都面临着两难境地:将订单簿完全保存在链上可以提高透明度,但速度缓慢且昂贵;将其下链可以提高速度,但会带来信任问题. 蓝鳍金枪鱼使用鹦鹉螺来弥合这一差距: • 订单匹配在 TEE 内运行,确保安全、隔离的处理. • Nautilus 提供了密码学证据,证明匹配逻辑运行正确. • 证明和结果在链上提交,智能合约在执行结算之前对其进行验证. 这种方法使Bluefin能够提供快速的链下匹配和链上信任保障,使其适用于衍生品交易等性能密集型DeFi. 当然,这确实将一些信任从纯粹的区块链共识转移到了TEE硬件和实施.

    • Sui
    • Architecture
    1
我们使用 cookie 确保您在我们的网站上获得最佳体验。
更多信息