用 声音。
碰撞。
世界 生动活泼。 Hello, 大家好, 我是 丁丁, 欢迎 收听 全新 一期 科技 早知道。 嗨 大家好, 我是 精致 刘灿。
今天 要 跟 大家 分享 的 是一个 非常 有意思 的 话题。 他 可能 是 web 3近期 最大 的 两件 事儿, 它 就是 no matt 和 salona 黑客 事件。 这个 事儿 要 回到 8月1号, 当时 Norman bridge 是 遭到 了 黑客 的 大量 攻击, 被 抢劫 的 金额 总计 是 价值 1.86亿美元 左右。 这个 事儿 后来 就在 web 3领域 里面 迅速 引起 了 轩然大波。 因为 诺亚 今年 4月份 才 刚刚 完成 了 由 poly chain capital 领 投 的 2240万美元 的 种子 轮 融资, 可以 说是 非常 有 代表性 的 跨 链 项目。 而且 这一次 出现了 很多 不怎么 懂 web 3甚至 是 代码 技术 的 人 参与 了 这 起 抢劫案。 他们 也 在 后来 被 统一 称为 follower, 也就是 模仿者。 根据 coin base 在 8月10号 发布 的 统计, 有 90% 的 地址 都是 模仿者。
紧接着 在 8月3号 又 发生 了 另 一起 黑客 事件, 他是 出现 在 扫 罗娜 生态 里 的那 当时 是 有 很多 twitter、 telegram 出现, 有 用户 反馈 说 自己是 phantom slope 这样 基于 solena 生态 的 钱包 用户。 但是 自己 钱包 里 的 钱 不见了。 后来 8月4号 还 媒体 就 统计 这样的 钱包 被 攻击 的 数量 是 有 将近 8000个, 而 总计 丢失 的 加密 资产 金额 大约 是 800万美元。 后来 索 罗娜 基金会 也 给出 了 自己的 解释, 他们 认为 这 事儿 跟 索 罗娜 生态 没有关系, 主要问题 是 出 在 了 钱包 的 项目 方。
如果我们 去 看 今年 上半年, 其实 类似的 黑客 抢劫 事件 是 频繁 发生 的那 总计 的 损失 的 资产 金额 也很 高, 大概是 22亿美元 左右。 比较 有 代表性 的 几个 就是 比如 二月份 的 salona warm hole 虫洞, 他们 就 损失 了 价值 3.2亿美元 左右 的 加密 资产。 而 我们 节目 屡次 提到 的 G A M I F I 项目 x infinity, 在 今年 3月它的 侧脸 running 也 被 黑客攻击, 损失 了 价值 6.2亿美元 左右 的 加密 资产。 这个 金额 其实 就 已经 是 超过 了 2021年 8月polin network 黑客 事件 中 6.1亿美元 损失 的 最 大规模。
在 跟 很多 从业者 交流 之后, 我们 发现 外部 三 安全 在 这 两年 其实 应该 是 引起 了 广泛 的 关注。 如果我们 去 看 一些 外部 三 安全 的 独角兽, 他们 在 2022年 就 已经 出现了 投资 的 现金流 和 收入 的 现金流 双重 增长 的 这样 一个 趋势。 是 今年年初 开始, 与 web 3相关 的 安全 技术 创业项目, 在 一级市场 大家 都 能够 看到 有 大牌 投资 机构 的 入场 的 身影。 所以 本期 节目 我们是 想 讨论 怎么 去 看待 这 近两年 web 西安 频繁 发生 的 安全事件, 这些 事儿 发生 的 根本原因 是什么? Web 三 生态 又是 受到 了 什么样 的 影响最 重要 的 是 安全 到底 会不会 在 web 3领域 成为 一种 必备 的 刚 需。
我们 邀请 参与 讨论 的 第一位 嘉宾 就是 keystone 的 创始人 刘立新。 使用过 madam 的 人 应该 是 知道, 因为 他们是 合作伙伴。 然后 keystone 的 另外一个 合作方 S O L L E R, 刚好 也是 八月 初 sona 这个 钱包 被盗 事件 里, 面前 三大 钱包 中 唯一 一个 没有 受到 攻击 的。 所以 他 对 这个 事儿 是 有 近距离 的 观察。
第二位 嘉宾 是 安全 领域 的 研究 学者 周 亚军 周教授。 周教授 在 北卡 读 博 的 时候 是从 蒋 旭 先 蒋 教授 在 安全 领域 里面 也是 发表 了 多篇 被 广泛 引用 的 论文。 周教授 的 团队 在 Norman d 这个 事儿 发生 之后, 非常 快 的 就 把 这个 事 从头到尾 的 扒 了 一遍。 我们 就 先请 周教授 讲 一下, 他 对 no man 这个 事儿 来龙去脉 的 总结 和 观察。 周教授。
好的, 谢谢。 罗曼 这 其实 是一个 我们 觉得 蛮 有趣 的 这么 一个 世界。 它的 有趣 的 点 主要是 在于 说 它的 这 整个 的 攻击 过程, 它 其实 是 比较简单 的。 就是说 不像 以前 我们 可能 有 很多 这种 和 漏洞, 然后 你 发起 攻击 可能 需要 非常 复杂 的 一些 技巧, 你 需要 很 经过 很 复杂 的 一些 流程 的 准备, 要 去 写 很 复杂 的 攻击 合约。
而在 这个 罗曼 的 这个世界 里面, 它的 攻击 的 过程 非常简单。 你 只需要 copy 网上 别人 已经 做好 的 一段, 这个 我们 叫 pillow, 然后 去 修改, 稍微 修改 里面 的 参数, 甚至 网上 都有 教程, 教 你 怎么 去做。 然后 你 就可以 去 发起 攻击, 就可以 把 资产 从 诺曼 的 跨越 厂 里面 转到 攻击者 所 控制 的 这个 账户 里面。 所以 正是 因为他 这个 攻击 的 过程 比较简单, 所以 出现了 大量 的 follow 来去。 无论 你是 说 他是 rescue 也好, 或者说 他是 纯 称 这个 热点 也好, 或者 感兴趣 也好, 那 就是 出现了 很多 followers。 同时 来去 攻击 这个 跨越 桥。
根据 我们 自己的 一些 统计 来看, 大概是 有 四百多个 到 500多个 地址 参与 了 这个 攻击。 这个 地址 就 包括 发起 攻击 的 地址 以及 最后的 获利 地址。 但是 因为 一个 实体 可能 控制 多个 地址, 那么 真正 参与 的 这个 实体 的 人数 可能 会 小于 地址 的 人数。
然后 这个 事后, 罗曼 的 官方 他 也 公布 了 自己的 一个 叫 资金 归还 地址。 罗曼 的 官方 就是说, 如果 参与 这个 攻击 的 无论是 谁, 你 只要 将 90% 的 资金 归还给 项目 方。 项目 方 就 认为 你是 一个 白帽子, 就 不会 对你 采取任何 的 这个 返利 的 措施。 那 我们 也就 观察, 其实 大约 只有 30% 左右 的 资金, 其实 目前 是 归还 到 项目 方 公布 的 地址 里面, 归还 资金 的 地址 数 的 数量 的 比例 其实 是 比较高 的, 具体 大概 应该 是在 一半 以上, 就是 地址 的 比例。 但是 归还 的 金额 的 比例 实际上 只有 30个面点, 所以 其实 差不多 在 就是 离 一半 还差 的 比较 远, 这 里面 主要 的 原因 是因为 因为 其实 有 两个 地址 处, 就是 有 两个 实体, 因为 我们会 地址 做 聚类, 有 两个 地址 处 这个 控制 的 人 其实 是 脱离 了 差不多 一半 的 资金。 而且 这 两个 攻击者, 他的 资金 的 来源 和 资金 的 去向 都 是从 这 开始。 所以 我们 其实 大概 认为, 这个 其实 是啊 真正 的 攻击者, 他 不是 这个 follower。 也就是说 这个 资金 可能 大概 就 基本上 不太可能 追回来 了。 所以 这个 就是 我们 观察 到 的 从 事件 的 发生, 然后 为什么 那么 多 攻击 的 原因, 以及 事后 的 整个 追 损 的 一个 情况。
可能 听众 当中 可能 有 一些 人 对 这个 区块 链 的 原理 这些 不是 特别 了解。 最简单 的 说 就是 区块 链 上面 会 记录 很多, 区块 链 是 公开 信息。 首先 这个 大家 可能 知道, 就 区块 链 是一个 公开 开 的, 然后 去中心化 的 这么 一个 透明 的 这么 一个 账本。 然后 在 这个 账本 上, 记 了 很多 的 账, 当中 有 一部分 的 这个 账 就是 no 卖 的 这个 跨 链 桥 的 账。
然后 龙脉 的 这个 跨 链 桥 是 干嘛 的 呢? 是因为 有 很多 的 不同 的 区块 链, 然后 不同 区块 链 上面 也有 不同 的 资产。 跨 链 桥 做 的 事情 就是 把 这个 资产 跨来跨去。 就 比方说 你 在 以太 坊 这条 链 上 有 以太 坊 的 资产, 然后 现在 在 另外 一条 链 上 有 其他 的 一些 应用 也好, 金融 产品 也好, 你 想 去 参与, 那你 就 需要 把 资产 跨过 来。 所以 这个 就是 像 东 脉 的 这样 跨 链 桥 在 做 的 事儿。
然后 回到 前面 说 的, 在 区块 链 上 就有 很多 是 这个 no mad 的 交易, 它是 记录 在 区块 链 上。 这个 也就是 刚才 周教授 说 的 那个 所谓 的 配 漏 的, 就 这个 交易 信息 记录 在 区块 链 上。 然后 他 这个 攻击 是 怎么 一个 原理 呢? 简单 到 什么 程度 呢? 简单 到 就是说 你 只要 去 把 区块 链 上面 的 no mad 的 这些 交易 信息 给 摘出来, 可能 去 修改 几个 参数, 再 把 这个 交易 信息 提交 给 能 卖 的。 能 卖 的 就会 认为 你 这个 信息 是 有效 的。 他 就 会给 你 把 他 那个 你可以 理解 成 他 有一个 小金库, 然后 就 把 小金库 里面 的 钱 给 打 给你 了。
举 个 可能 不 恰当 的 例子, 就 好像 有 一家 银行, 然后 这家 银行 的 这个 支票 是一个 公开 信息, 然后 你 很 容易 就能 复制 这个 支票。 然后 你 复制 了 支票 以后, 拿 张 支票 去 问 银行 要钱, 然后 银行 就 会给 你 钱, 就这么简单。 所以 他 这个 逻辑 机制 非常简单。 以至于 很多 没有 什么 技术 背景 的 人, 可能 看花 五六分钟 时间, 看 一篇 网上 的 教程, 他 就能 实施 一次 攻击。 而且 他 这个 攻击 不是说 每个人 只 攻击 一次 就 完 事儿 了。 其实 你是 可以 反复 的 不停 的 攻击, 就 不停 的 从 这个 银行 里面 用 这 张 假 支票, 从 银行 里面 把 钱 给 薅 出来。
就 换成 自己的 地址 就可以 了。
对 吧? 对, 换成 自己的 地址, 就是 稍微 改 几个 参数, 换成 自己的 地址 就是 别的 交易 可能 是 别人 的 地址, 你 把 别人 地址 改 一下, 这个 支票 这个 钱 就 到 你 账户 里面 了。 然后 周教授 刚才 讲 的 还有 一个点 特别 有意思 的 就是 rescue。 Rescue 是 这个 拯救 的 意思, 中文 是 拯救 的 意思。 特别 有意思 的 点 就是说 有些人 不停 的 从 里面 提 钱, 然后 提出来 以后, 别人 问 他, 你是 个 黑客, 你 从 里面 偷钱 了。 因为 有些 地址 他 可能 就 比较 知名, 以太 坊 世界 很多人 他用 的 地都 是, 比方说 自己的 主 地址, 那 你的 主 地址 可能 你 有 朋友 知道 你 有 这个 地址, 这些 人 就会 被 质问, 你 在 从 里面 偷钱。 然后 他说 不不不, 我没有 投钱, 我是 把 这些 钱 提出来 拯救 这个 项目 方, 然后 回头 再 把 钱 给他 还 回去。 所以 就 非常 有意思, 就有 有 不同 的 揣测, 有 不同 的 揣摩, 然后 不同 的 有 不同 的 意图。 当然 最后 就像 周教授 说 的, 项目 方 说 如果你 把 90% 的 钱 还 过来, 剩下 10% 的 钱 你可以 留 着, 你 把 90的钱 还 过来, 我 就算 你是 一个 白帽 黑客, 就 你 在帮 我 拯救 这个 项目。 OK 非常 有意思, 但 大部分 的 钱 最后 还是 没有 退回去, 就像 窦 教授 说 的对。
猎心 所以 周教授 聊 的 这个 no man 的 事件 跟 近期 我们 现在 因为 刚刚 入 职 之前, 你 也 说 so long 这 事儿 还没 结束, 跟 索 罗娜 最近 发生 这个 事儿, 他 怎么 我们 怎么 去 比对 呢?
索 拉娜 这个 事情 可能 要 从 一个 钱包 的 原理 开始 讲, 比方说 大家 要 开 一个 银行 账户, 对 吧? 他 要 开 一个 银行 账户。 当你 在 开 银行 账户 的 时候, 其实 你是 跑到 银行 去, 然后 提交 了 你的 所有的 身份证 等等 这些 信息, 然后 银行 指定 一个 银行 账户 给你, 然后 你 就 用 这个 银行 账户 可以 收钱, 然后 银行 保证 了 每个 用户, 就是 他的 每个 客户 之间 的 银行 账户 不一样。 但是 在 去中心化 的 世界 里面, 没有 中心化 的 这样 机构 来 确保 每个 人的 账户 不一样。 所以 在 去中心化 的 世界 里面, 它是 怎么 保证 这个 账户 和 账户 之间 不一样的 呢?
这 原理 非常简单, 就是 随机 什么 意思 呢? 就是说 你可以 想象 一个 很大 的 一个 池子, 这个 池子 里面 有 很多很多 的 账号, 你 随机 去 挑取 一个 账号。 只要你 这个 随机 挑取 账号 的 时候, 这个 充分 的 随机, 它 就能 保证 你 挑 的 这个 账号 跟 别人 的 账号 不一样。 然后 这个 池子 有 多大 呢? 这个 池子 是 二 的 256次方, 这个 数字 的 大小 就 约等于 整个 宇宙 的 原子 的 数量。 所以 这里 有 最 关键 的 一步, 就是说 当你 在 挑选 这个 账号 的 时候, 你 必须 充分 随机。
当然 再 往 深挖 一层, 就是说 你 其实 第一步 挑选 的 不是 一个 账号。 你 不 第一步 挑选 的 是一个 私钥, 由 这个 私钥 又 会派 生出 你的 这个 账户 的 信息。 然后 私钥 你 必须 把 它 保管 好, 为什么?
因为 当你 这个 账户 信息 里面 有了钱 以后, 你是 怎么 去 移动 这些 钱 呢? 就 需要你 用 这 把 私钥 去做 一次 在 密码学 上面 去做 一次 签名。 所以 这个 私钥 是 整个 区块 链 世界, 整个 外部 商 世界 当中 最最 关键 的 信息。
然后 一般 钱包 创建 的 时候, 他 就会 帮你 创建 一个 私钥, 并且 这个 私钥 会 对应 一个 东西 叫 助记 词。 助记 词 是什么 意思 呢? 就是说 它是 这种 私钥 的 这个 私钥 的 另外一个 展现 形式, 一般 就是 12个或者 24个 英文单词。 大家 如果 有 玩 过 这个 钱包 的话, 可能 知道 这个 流程 里面 最 关键 的 一步 就是 让 你 把 这 12个或者 24个 单词 给 记录下来。 然后 这个 单词 记录下来 是什么 用 呢? 因为 钱包 它 有可能 会 比方说 停止 运营 了, 或者说 你的手 机会 坏, 对 吧? 那 这个 12个或者 24个 助记 词 就是 帮助 你 去 恢复 出 你的 私钥, 以及 恢复 出 你的 账号 的 这样 一个 功能。
因为 这 12个或者 24个 词, 这个 助记 词 是 每家 钱包 都是 通用 的 同 一套 标准。 所以 你 把 相同 的 助记 词 导入到 不同 的 钱包。 理论上 来说 只要 这个 钱包 它 follow 了, 它 严格 按照 这个 通用 标准 来 执行 的话, 那你 用 同样 的 助记 词 就能 得到 同样 的 账户, 并且 你 还能 继续 操作 这个 账户 里面 的 资产。 这个 也是 整个 区块 链 世界 web 3的去中心化 的 一部分。
然后 索拉纳 那个 事情 他 为什么 会 发生 呢? 这个 问题 最大 就是 发生 在 这个 助 机器 上面。 因为 刚才 说 了 助记 词 非常重要, 对 每个 用户 来说 都 非常重要, 你 必须 得 加倍 小心 的 保管 它。 因为 区块 链 是 没有 任何 风 控 机制 的。 你 如果 在 传统 世界, 比方说 你 今天 突然 用 信用卡 刷 了 5万块钱, 可能 银行 会 先 阻止 这 5万块钱。 然后 打电话 给你, 问 你说 你是不是 花了 这么 多 钱? 因为 中心化 的 机构, 他的 这个 安全 的 责任 其实 很大 的 都 放在 了 中心化 机构 上面, 比方说 银行 上面。
但是 区块 链 世界 是 没有 任何 风 控 的。 你的 助记 词, 谁 拥有 你的 助记 词, 它 就 能够 毫无 障碍 的 去 操作 你的 你 在 区块 链 上 的 所有的 资产。 所以 这个 助记 词 是 非常重要 的。
然后 索 拉娜 的 事件 里面 发生 的 也是 极其 愚蠢 的 一个 错误。 当然 这个 事情 还没有 完全 的 彻底 的 被 理 清楚, 大概 只有 丢掉 的 30% 的 账户。 他们的 原因 是因为 这些 使用 这些 账户 的 人 使用 了 一个 钱包。 然后 那个 钱包 他 把 用户 的 助记 词 上 传到 了 云端, 就 相当于 把 用户 的 助记 词 传到 了 别人 的 这个 数据库 里面。 有 很多人 揣测 他 这个 是 倒是 故意 这么 做 害 的。
然后 其实, 从 表面上看 起来 的 现象, 他们 用了 一个 这种 监控 手机软件 使用 的 这么 一个 开发者 的 一个 工具。 你可以 理解 成 比方说 我们在 使用 微信 的 时候, 有的 时候 比方说 微信 会 闪 退 这些 你 每天 打开 了 几次 朋友圈, 然后 你 每天 发 了 几条 信息。 这些 信息 对 开发者 来说 是 非常重要 的, 能够 帮助 他们 去 解决 产品 里面 的 问题, 去 优化 产品。 所以 几乎 我们 用 的 所有的 手机 APP 都会 多多少少 使用 这样的 开发者 工具, 帮助 开发者 去 更好 的 优化 它的 产品。
然后 那个 钱包 他 做 的 非常 扯 的 一点 是什么 呢? 就是 他在 使用 这个 开发者 工具 的 时候, 不小心 把 这个 助记 词 也 上 传到 了 这个 开发者 工具 的 这个 数据库 里面。 理论上 这些 信息 都是 应该 完完整整 的, 不能 分享 给 任何人 的。 因为 这个 助记 词 就是 用户 自己 掌握 的 东西, 不能 分享 给 任何人。 但是 他 把 这个 信息 上 传到 了 云端, 但是 到 目前 也 没 搞清楚 是 那个 工具 本身 就是 做 那个 开发者 工具 的 厂商 内部 有 内鬼 把 这些 主题词 给 提取 出来, 还是 有 漏洞, 还是 说 这个 钱包 自己 有 内鬼 把 这些 信息 都 拿到 了。 所以 到 目前 这件 事情 还没有 一个 定论, 所以 这也是 也是 近期 非常 有 话题 性 的 这么 一个 安全事件。
我 理解 其实 这 都是 属于 项目 方, 它 本身 就是 他们 两个。 其实 项目 方都 可能 会 存在 风险管理 能力 有 缺陷 这样的 一个 问题。
可以 这么说。
周教授 你是 怎么 去 看 诺曼 事件 里面, 项目 方 他的 这个 管理 能力 是 出现 在 了 哪里 呢? 就 他是 犯 了 什么样 风 控 上 的 错误。
整个 项目 方 我们 讲 区块 安全, 它 其实 是一个 蛮 涉及到 蛮 多 不同 阶段 的 这么 一个 安全。 实际上 我们在 讲 安全 的 时候, 现在 区块 链 安全 往往 大家 都 是在 讲说 我的 这个 合约 经过 审计 的那 诺曼 的 合约 确实 是 经过 审计 的, 而且 是一个 蛮 和 老牌 的 这么 一个 审计 公司。 但是 问题是 诺曼 的 这个 项目 方 本身 在 运营 这个 项目 的 时候, 也就是 项目 审计 上线 之后, 其实我 觉得 整体 的 风 控 体系 做 的 不是 特别的 好。 或者说 从 公开 披露 的 资料 来看, 没有 做 风 控。
怎么讲? 因为 roman 这个 事情, 这个 资金 被盗 的 时候, 因为你 作为 一个 跨 链 厂, 对 吧? 你 作为 一个 金库, 你的 金库 里面 有 那么 多 的 钱。 然后 当 你的 这个 金库 出现异常 的 资金 流出 的 时候, 项目 方 自己是 不知道 的那 这个 事情 是 其他 的 安全 的 研究 人员, 首先 其实 在 一个 T G 群 里面 报 出来 的, 而且 这个 研究 人员 其实 也 不知道 他他 只是 观察 到 现象。 所以 这 研究 人员 肯定 是 有 自己 一套 监控 体系。 然后 他 就 观察 到 说, 这个 Norman bridge 里面 好像 这个 资金 有 异常 的 流出, 然后 就 问 一下 大家 知不知道 这是 怎么回事, 其实 他 也没有 去 看 具体 的 原因, 对 吧? 然后 这个 时候 项目 方 还是 不知道 的, 然后 其他 的 社区 的 这个 研究 人员, 就 一起 看 了 一下, 才 确定 的 原因, 原来是 一个 漏洞 造成 的, 然后 事情 就在 社区 开始 发酵 起来 了。
然后 项目 方 可能 是啊 过了 几个 小时 之后, 才知道, 原来 我的 这个 项目 出问题 了, 对 吧? 然后 我的 钱 不停 的 在 往 外 走, 但是 这个 时候 项目 方 无能为力 对 吧? 这 也 涉及到 项目 方 风 控 的 第二个 点, 就是 他 对 整个 的 合约 他 没有 一个 emergency POS 的 机制。 我 觉得 这个 机制 其实 也是 对于 这种 大额 的 资金 的 项目 是 非常 有 必要 的对 吧? 因为 谁 也 不能 保证 我自己 的 项目 永远 没有 安全漏洞, 因为 这个 世界上 不存在 绝对 的 安全, 所以 你 一定要 在, 对, 所以 这个 就是 我们 也很 困惑, 我们 后来 猜测 就是我 觉得 有 两个 原因。 第一个 原因 就是 这个 项目 方 可能 没有 意识到 emotion POS 机制 的 重要性, 对 吧? 他 认为 我的 合约 经过 审计 的 就是 安全 的。 所以 我 上线 之后, 既然 我 回 的 是 安全 的那 我 也没有 必要 说 不会 发生 什么 这些 事情, 对 吧? 我 就 不需要 这个 机制。
我 觉得 第二个 可能 的 原因 是 emergency, 这个 就是 我们 叫 emerging s 的 这个 机制。 在 社区 来讲 其实 是 有一点 争议 的, 为什么 它 有 争议 呢? 就 相当于 赋予 了 项目 方 一定 的 中心化 的 权利, 对 吧? 也就是 项目 方 可以在 发生 ember 的 时候, 他 可以 去 把 这个 协议 给 终止 掉, 所以 它 有 一定 的 中心化 的 风险。 所以 有的 时候 社区 对 采用 这个 emotion 的 机制 的 项目 是 会有 一点点 的。
但是 从 目前 整个 安全 的 实践 来看, 采用 mission POS 机 的 项目 已经成为 一种 共识 了。 我 觉得 无非 就是 这个 机制 是 共识, 无非 你就是 在 怎么 使用 的 时候, 你可以 避免 很多 中心化 的 风险。 比如说 你的 emergent POS 机制 的 这个 账户 可不可能 是一个 多 圈钱, 对 吧? 那么 可不可能 有 一些 倒提, 当然 这 里面 又 涉及到 倒提 它的 效率 问题, 但是 这个 是 延伸 出来 的 问题, 它 本质 上 你 项目 还是 要 有人, 你 只是 说 你 没有 去 怎么 触发 可以 降低 中心化 的 风险, 那 我 觉得 是 另外 要 讨论 的 问题。
对, 周教授 中心化 的 风险 我不知道, 也可以 请 立新 来 一起 解答 这个 问题。 什么 叫做 中心化 的 风险? 是 比如说 用户 的 信任度 可能 不够 高。
还是 理论上 来说, 就 我们 假设 一个 最 理想 的 去中心化 的 世界, 就 以太 坊 的 去中心化。 假设 以太 坊 是一个 完全 去中心化 的 世界, 它 会 发生 什么 呢? 它 会 发生 首先 所有 挖矿 的 人 他是 去中心化 的, 就是 可能 全球 好多好多 人 一起 在 挖矿。 这样的话 比方说 一两个 挖矿 的 人 他 不 参与 了, 那 不会 导致 整个 或者说 一部分 挖矿 的 人 不 参与 了, 他 不会 导致 整个 系统 的 宕机。 然后 跟 中心化 的 这个 情况 相比, 比方 中心化 你 用 一个 中心化 的 一个 服务器。 比方 他 就算 用了 非常 稳定 的 腾讯 云、 阿里云、 亚马逊 云 这样的 云 服务, 它 还是 存在 宕机 的 可能性。 所以 这个 就是 去中心化。
中心化 第一个 点 就是 它的 英文 有一个 词 叫 robust, 或者 robust 就是 它的 这个 系统 的 鲁棒性 标准 叫 鲁棒 型 的。 如果 或者 可以 翻译成 稳定性, 就 去中心化 的 系统, 它的 稳定性 因为 它 节点 足够 多, 所以 它 就会 这个 稳定性 就会 非常 强。 当 这个 系统 稳定 的 跑 起来 以后, 在 这个 系统 上 就 会有 很多 的 智能 合约。 这个 智能 合约 指的 什么 意思? 大家 简单 可以 理解 成 一大 段 的 代码。 然后 这个 代码 被 部署 到了 以太 坊 这个 区块 链 上。
这个 代码 如果 足够 的 去中心化, 这个 代码 的 运行, 没有 任何人 能够 阻止 它的 运行。 你 只需要 支付 这个 代码运行 的 费用, 也就是 矿工 费。 你 给 这些 挖矿 的 人 支付 一点 的 矿工 费, 好, 他 就会 帮你 去 跑 一下 这个 代码, 你 支付 一次 他 跑 一次, 支付 一次 跑 一次, 然后 这个 整个 过程 也是 完全 去中心化 的。 也就是说 当 它 这个 代码 一旦 被 部署 上去 以后, 就 没有人 再 能 去 修改 它, 没有人 能够 停止 它, 就 它 永远 就会 在那里, 只要你 付 矿工 费。 而且 这个 矿工 费 就 涉及到 最近 一些 censorship, 就是 一些 审查 相关 的 一些 问题。
就 理论上 来说, 如果 这个 矿工 足够 的 去中心化。 比方说 有一个 矿工 他 遵守 美国 相关 的 审查 的 条例, 他 不 帮你 执行 某 一个 代 某 一段 代码。 但 其他 的 矿工 他 可能 会 帮你 执行, 那你 总能 找到 可以 帮你 执行, 所以 这个 就 叫做 去中心化, 或者说 在 这个 代码执行 上面 的 去中心化。 这个 也是 以太 坊 带给 这个世界 很大 的 意义。
然后 具体 到 刚才 周教授 说 的 那个 问题, 就 emergency pose 就是 这个 紧急, 大家 可以 理解 成就 像 刹车 一样, 就 紧急制动 的 这么 一个 意思。 就是说 能够 他在 这个 合约 里面 有 一部分 代码, 指的 这部分 代码 可能 定义 了 某 一个 账户就 我 刚才 说 的 那个 钱包, 某 一个 账户 可以 发出 一个 指令。 这个 指令 一旦 发出 来, 就会 让 整个 它的 跨 链 桥 的 资金 都 总结。 比方说 谁 也 不能 从 里面 提出来 钱, 这个 就 叫 emergency POS。
然后 这个 东西 它 为什么 会有 中心化 的 风险 呢? 因为你 想 因为 刚才 我 解释 了 很多 去中心化。 去中心化 它 带来 的 好处 就是说 任何人 都 不能 阻止 它的 运行。 但 如果 存在 这么 一个 口子, 允许 项目 方 把 它 给 暂停 掉。 这就是 一个 中心化 的 一个 风险。 举 个 再 极端 一点 的 例子, 就 比方说 这个 项目 方 他 想 作恶, 然后 他 有 紧急 暂停 的 这么 一个 权限。 比方说 他 这个 资金池 里面 已经 有了 3亿美金 或者 5亿美金, 然后 他 按 下了 这个 紧急 停止 的 按钮。 然后 他 向 所有 用户 说, OK 你们 自己 去 募集 一 亿美金, 打 到 我的 一个 账户 里, 然后 我 就 把 这个 开关 给 解除 掉, 然后 你们 可以 把 钱 提出来。
当然 这 是一个 非常 极端 的 一个 例子, 想 用 这个 例子 表达 的 就是 社区。 他 有的 时候 他 希望 这个 东西 尽可能 去中心化, 不要 被 一个 中心化 的 gatekeeper 也好, 或者 项目 方 也好, 把 这 给 阻止 掉。 然后 周教授 刚才 也 解释 了, 就是 怎么 把 这个 紧急 暂停 的 这个 按钮 变得 更加 驱动 性 化。 周教授 刚才 提 了 一个 概念 叫 多 签。 多 签 的 意思 就是说 这个 紧急 暂停 的 按钮 可能 不是 被 一个人 控制 的, 它 可能 是 被 若干个 人 控制 的。 然后 这 若干个 人, 理论上 如果你 要 做 的 足够 的 去中心化 的话, 这 若干个 人 也 不能 全部 是 项目 方 的 人。 因为 全部 是 项目 方 的 人, 他们 都是 利益 共同体。 所以 一般来讲 这 若干个 人 他 可能 会 是 一些 行业 里面, 比方说 这 知名 的 投资人 记者, 比方说 以太 坊 基金会, 甚至 比方说 你 认识 一个 以太 坊 基金会 的 人。
那 以太 坊 基金会 的 人 他 肯定 不 希望 这个 emergency pause, 就 这个 紧急 暂停 的 这个 功能 被 滥用。 他的 角度 肯定 是 希望 这个 社区 变得 更好。 所以 通过 这种 多 签 账户 来 控制 这个 紧急 暂停 按钮 的 这样的 方式, 就 能够 把 这个 机制 变得 尽可能 的 去中心化 一点。 所以 像 周教授 刚才 说 的, 这个 现在 也是 以太 坊 世界 比较 通用 的 一个 做法。
既然 大家 现在已经 想 出了 一套 解决 机制 和 解决问题 的 办法, 为什么 针对 黑客 事件 或者 我们 说 区块 链 的 抢劫 事件, 我们 仍然 没有 很好 的应 对应 对 方法? 为什么? 从 我们 打比方, 那 是个 跨 链 项目, 从 跨 链 项目 出现 以来, 他 就 一直 有 这种 不停 存在 的 安全 的 争议 的 问题?
我不知道 周教授 怎么 想。 首先 就 跨 链条 的 出现, 它是 一个 刚 需 对 吧? 其实 有有 很 多 的 需求 是 需要 在 不同 链 之间 去 转移 资产, 所以 才 出现 跨 链条 这么 一个 东西。 然后 挎 链条 出来 之后, 其实 一直 是 出 很多很多 的 安全事故。 而且 每一次 的 安全事故 其实 造成 的 损失 都是 蛮 大 的那 这 里面 我 感觉 可能 有 好几个 原因, 就是说 导致 为什么 跨 链 桥 比较 容易 受到 攻击, 或者说 受到 攻击 的 这个 可能性 很大, 并且 被 攻击 成功 的 这个 概率 也 比较高。
可能 有 几个 原因。 第一个 原因 就是 还是 我们 讲 经济利益 的 刺激。 因为你 跨 链 桥 作为 一个 拥有 这么 大 资金量 的 这么 一个 项目 和 实体, 一定 是 成为 很多 攻击者 的 这个 目标, 对 吧? 因为 这个 里面, 可能 获取 的 经济利益 实在是 太多 了。 所以 就 导致 有 很多 的 人 不停 的 在 研究 跨 链 桥, 以及 跨 链 桥 里面 可能出现 的 攻击 向量。 这个 时候 有人 可能 说, 那 没关系, 因为 这些 跨 链条 项目 是 经过 审计 的对 吧? 那 经过 审计 的 人 不 也 是从 安全 的 角度 来去 发现 这 里面 安全 威胁 吗?
但是 你 要 知道, 我们 讲 这个 安全 有的 时候 它是 一个 不平衡 的 战争。 所谓 的 不平衡 的 战争, 就 比如说 审计 公司, 我 可能 花 两个月 的 时间 去 非常 完善 的 去 review 了 这个 跨 链 桥 的 代码。 但是 攻击者 他 可能 不是 花 两个月 的 时间, 可能 是 有 很多很多 的 研究 的 人, 他 花了 两年 的 时间 对 吧? 或者说 更 聪明 的 人, 然后 他 花了 很多很多 的 精力 在 这 里面 去 研究 这些。 所以 他是 一个 不平衡 的 战争, 对 吧? 你 一个 审计 的 团队 和 一个 这么 大 的 一个 攻击 的 社区 在 不平衡 的 战争 里面, 所以 由于 经济 的 势力, 所以 攻击者 他 往往 会 投入 很多 的 时间 和 精力 去 研究, 然后 来 找 这 里面 可不可能 有 攻击 的 点。 我 觉得 这个 可能 是 第一个 有可能 被 蛮 多 跨 链条 被 攻击 的 原因。
第二个 原因 就是 跨 链 桥 的 这个 攻击面 确实 也 比较 大。 就是 跨 链 桥 它 整个 技术 架构 体系 相对于 其他 的 区块 链 上 的 项目 D F 项目 其实 是 比较复杂 的。 它 涉及到 原 链 上 的 智能 合约, 目标 链 上 的 智能 合约。 有的 时候 原 链 它 都 不一定 是个 智能, 所以 原 链 可能 是一个 我们 讲 类似 于 像 应用 链 这样的 一个 实体。 然后 还 涉及到 中间 跨 链 的 这个 链 对 吧? 或者说 叫 跨 链 的 retailer 也好, 或者说 叫 跨 链 的 这么 一条 链 也好。 然后 还 涉及到 整个 中心 这个 实体 对于 跨 链 交易 的 一些 验证。 它 有 很多很多 的 交互 和 攻击 向量, 所以 就 导致 它 被 发现 问题 的 概率 就会 比较高。
那你 想 这么 一个 目标, 它 既 有利可图 对 吧? 钱 特别 多, 然后 有利可图, 攻击者 研究 的 这个 动力 特别 大, 然后 他的 这个 攻击 面积 向量 又 相对 比较 多, 然后 再加上 项目 方 他 可能 安全 的 意识 不足, 对 吧? 他 认为 安全 可能 就是 审计, 但 实际上 安全 包括 后面 的 风 控 等 一整套 体系 的 东西 都 没有 建立 起来。 所以 就 导致 这个 跨 链 桥 出现 的 事情 其实 蛮 多 的那 包 你看 这一次 的 这个 老迈 的 跨 链 桥, 它的 出现 的 这个 问题, 是一个 很 简单 的 一个 升级 导致 的 bug。 然后 包括 它 后面 没有 风 控 这 一套 体系。
那 之前 比如说 我们 曾经 发生 过 这个 run network 就 跨 链条 的 攻击 事件, 它的 这个 原因 就 竟然 是因为 说 中间 的 来去 验证 交易 的 这个 meddle a 这个 验证 者 的 几个 思 要 泄露 了。 那 这 这个 其实 在 审计 的 时候 根本 不是 一个 审计 线上。 他 会 认为 你 中心化 的 这些 validator 或 中间 这位 data 它是 可信 的, 我 认为 你就是 trusted。 那 现在 你 在 审计 的 时候, 被 认为 是一个 trust 的 一个 实体。
在 实践 的 运行 当中, 因为 很多 运维 的 安全 也好, 或者 其他 系统 层面 的 安全 也好, 导致 是要 泄露。 然后 它 整个 信用 体系 就 崩塌 了, 所以 也 导致 损失 很多 钱。 所以 我 总结 一下 对 吧? 那 就是 跨 链条 它是 一个 实时 存在 的 需求。 但是 因为 跨 链条 本身 资金量 特别 大, 所以 容易 成为 公益 的 目标。 然后 又 因为 跨 链条 本身 的 技术 栈 复杂, 涉及 的 方面 特别的 多, 所以 就 导致 出问题 的 概率 也 比较 大。 所以 这 几个 因素 一 结合, 所以 跨 链条 就会 出现 很多很多 的 安全 的 问题。
我们 也可以 顺着 刚才 周教授 说 的, 稍微 看一下 跨 链 桥 它 基本 的 这个 工作 原理 可以 简单 的 理解 成 一个 资产 要 从 A 跨 到 B 它 有 几个 核心 要素。 第一个 要素 就是说 这个 项目 方会 在 A 这条 区块 链 上先 建立 一个 资金池, 在 B 那条 链 上 它 也会 有一个 资金池。 然后 当你 把 你的 资产, 因为 这 里面 涉及到 很多 因素。 首先 当你 把 你的 资产 打 到 A 这条 链 的 资金池 里面 的 时候, 他 需要 有一个 监控 或者 叫 monitor 去 监控 说 OK 我 这个 资金池 已经 收到 了 这笔 钱, 同时 他 要 能够 把 这笔 钱 给 锁住。 这个 monitor, 又要 告诉 B 那条 链, B 那条 链 上 的 资金池 给 转到 用户 指定 的 他在 B 那条 链 上面 的 这个 账户 里面 去。 所以 这个 就是 一个 最简单 的 这么 一个 跨 链 的 逻辑。
刚才 周教授 说 的, 为什么 这个 安全风险 点 大, 就是 他 这里 涉及 了 好几 方。 首先 你 在 A 这条 链 上, 你 有 资金池, 你 有 代码, 你 有 智能 合约。 然后 那个 monitor 或者说 那个 reliable, 他 那个 上面 又有 大量 的 代码, 而且 那个 reliable。 你 想 刚才 我 提到 这个 中心化、 去中心化 这些 点。 这个 monitor 或者 这个 relia 就是 传递信息 的 中间 的这 一方, 他 也要 尽可能 做 的 去中心化。 因为他 也 不能 做 的 太 中心, 化做 的 太 中心化。 那 它 又 存在 前面 说 的 那种, 因为 中心化 带来 的, 比方说 他 整个 服务 停止 了 这种 问题所在。 所以 怎么 去 构造 一个 去中心化 的 relia, 这个 也是 非常复杂 的 问题。
然后 第三块 就 刚才 说 那个 B 那条 链 上 它 也有 代码, 它 也有 资金池。 所以 因为 系统 越 复杂, 它 这个 漏洞 就有 可能 越多。 所以 一个 跨 链 桥 相比 在 一条 链 上去 做 这个 token 和 token 之间 的 交易。 比方说 swap, 我们 叫做 swap 交易, 它 要 复杂 很多, 它的 资金量 又 特别 大, 像 周教授 说 的, 所以 这个 就是 特别 大 的 风险点。
然后 这里 我 特别 想 补充 的 一点, 就是 刚才 周教授 提到 running 那条 链。 什么 running 那条 链 你可以 简单 的 理解 成 就是说 它 中间 那 一层 就是 那个 monitor 或者 那个 relia。 他 有 几个 验证 者, 他 这个 也是 去中心化 的, 他 有 若干个 验证 的 人, 比方说 这 几个 验证 的 人, 举 个 不 恰当 的 例子, 可能 就 这 几个 验证 的 人, 比方说 一致 通过 这个 用户 在 A 这条 链 上 的 资金 已经 到位 了。 然后 一 他们 一致 通过 这个 信息, 然后 他们 再 告诉 B 那条 链, 把 B 那条 链 上 的 资金 打 给 用户。
那 这个 validator 就 这个 投票 一致 通过 的 这个人, 他 也有 可能 存在 被 攻击 的 点。 因为他 去 投票 也是 要 用 他的。 根据 我 刚才 最 前面 说 的, 要 用 他 手里 的 私钥 去 签 一个名。 他 做了 签名 以后 就 认可 了 这个 票。 攻击者 是 怎么 攻击 的? 攻击者 把 这些 投票 的 人的 私钥 给 拿到 了, 那 攻击者 就 能够 去 投 这 张票 了。 所以 这个 就 造成 了 running 那条 链 的 被 攻击。
这个 私钥 丢失 这件 事情, 像 刚才 周教授 说 的, 他 根本 就 不在 审计 公司 的 审计 范畴 里面。 因为 审计 公司 他 只会 审计 说 OK 你 在 A 那条 链 上 代码 对不对, 你 在 B 那条 链 上 代码 对不对? 然后 你 这个 中间 的 这些 验证 者, 他们 因为 他们 验证 者 他们 其实 也是 要 去 跑 一段 代码, 然后 他 去 投票, 然后 这个 票 怎么 寄 票, 这些 其实 全部都是 通过 代码 来 实现 的那 他们 只会 去 看 这些 代码 有没有 问题, 整个 架构, 整个 代码 有没有 问题。 他 不会 去 考虑 你 这个 作为 投票 的 那个人, 作为 验证 的 那个人, 然后 私钥 丢失 这件 事情 他是 完全 不 考虑 的, 所以 这就是 一个 非常 典型 的 一个 漏洞。 然后 那些 黑客 都是 持续的 去 找 这些 漏洞, 你 百密一疏, 你 这个 很 复杂 的 系统, 你 只要 某 一个地方 有 漏洞, 比方说 你 就 几个人 私钥 没 保管 好, 然后 就 发生 了 问题。
然后 这个 点, 其实我 觉得 说实话 就是我 觉得 现在 web 3的很多 的 发展, 尤其是 在 安全 这 一块 发展 还 非常 非常 任重而道远。 因为 像 在 外部 二 的 世界 里面, 他们 不仅仅是 会 审计 代码, 他们 也会 去 购买 那种 第三方 的 渗透 服务。 因为 在 中心化 的 体系 里面, 比方说 百度 也好, 谷歌 也好, 它 肯定 也有。 比方 关键 员工 掌握 了 关键 的 私钥, 他 会 去 请 第三方 的 安全 公司 过来 渗透 这 几个 员工。
他们 做 的 其实 这些 东西 都很 全面。 但是 现在 在 外部 三就 很多 这些 东西 都 没有 造 起来。 就是现在 这个 行业 发展 太快, 然后 很多 基础架构 的 这些 东西 全部 都 被忽略了。 所以 这也是 为什么 像 周教授, 我们 一直 在 致力于 做 这样的 事情。 就是说 这个 东西 目前 在 这个 行业 里 特别 费力 不 讨好。 因为 其他 项目 方 寥寥 草草 做 一个 项目, 然后 代码 审计 一下, 然后 就 赚大钱。 然后 我们是 其实 哼哧 吃的 是在 给 这个 行业 打补丁, 但 总体 来说 肯定 是 还是 在 迭代, 还是 在 发展 的 这样 一个 过程。
刚刚 两位 提到 的 事情 让 我 想到 我 之前 在读 做 前期 功课 的 时候 看到 的 那种 说法。 他们说 区块 链 也好 或者 跨 链 也好, 可能 它 会有 一个 所谓 的 不可能 三角, 就是 你是 无法 满足 去中心化 安全性 和 可扩展性 的。 对我 很 好奇, 我们 这里 可能 得 补充 一下。 因为 刚刚 大家 讲 的 rear, 我 确认 一下, layer 这个 概念 是在 比如说 lay 0 ler 1、 ler 2和策略 里面, 它 大概是 一个 什么 概念 呢? 它是 layer 0那个 层级 的, 就是 把 各种 攻略 做 一个 信息交换 的 枢纽, 是 这样的 一个 一 一个 角色 吗?
这个 概念 它 应该 不是 在 层级 里面, 因为 我们 现在 讨论 的 是 整个 跨 链 的 这么 一个 流程 里面。 比如 跨 链 流程 这个 沥青 刚才 也 讲 的 非常 好, 就是 包括 原 链、 目标 链, 然后 还有 中间 负责 传递 和 very 信息 的 实体, 或者说 一批 实体, 我们 称之为 叫 relia。 所以 它 不是 6162 成绩 上 的 一个 概念。
我们 这里 需不需要 跟 大家 先 讲 一下, 就是 6061622。 我不知道 大家 能不能 帮 我们 科普 一下。 因为 可能 我们 现在 讲 的 所有的 跨 链 是 基于 这个 层级 的 逻辑 来 聊。 可能 大家 我们 熟知 的 以太 坊 或者 是 salona, 其实 在 这个 逻辑 里 应该 它它 是 属于 lay one 的。 然后 那 60和layer 2是属于 类似 像 侧面 一样的 这样 一个 角色 吗?
对, 012是怎么 诞生 的 呢? 其实 大背景 就是说 因为 区块 链 也有 它的 不可能 三角, 然后 里面 很 重要 的 一个点 就是 区块 链 本身 的 效率。 大家 可能 听说过 一个 词 叫 T P S。 T P S 就是 以前 20 1617年 那会儿, 那会儿 有 很多 供电 的 项目, 然后 所有 供电 项目 都在 讨论, 我 T P S 有 多 厉害。 然后 这个 也是 大家 经常 拿 web 2的服务 跟 外部 3比较 的 一个点。 就 T P S。
T P S 的 全称 就是 transaction per second, 就是 每秒 的 交易 笔数。 因为 去中心化, 所以 它 有 大量 的 比方说 节点 同步, 节点 验证 这样的 一个 流程。 所以 导致 它的 这个 T P S 是要 远远低于 传统 的 金融 世界 这些 中心化 的 G P S。 简单 来说 就 比方 中心化 就 一台 服务器, 然后 去中心化 比方 1万台 服务器。 那你 这一 万台 服务器 信息 的 同步、 校准, 所有 都 需要 时间, 那 这个 时间 肯定 就会 拖 慢 他 把 它 这个 G P S 给 拉 下来。 因为 以太 坊 也 算是 比较 老的 一条 区块 链, 它的 G P S 已经 比 比特币 要 高 很多。 比特币 我 没 记错 的话, 就是 全球 的 整个 世界 的 T P S 每秒 也就 十 笔 左右。 我 没 记错 的话, 对, 所以 以太 坊 是 把 这个 比特币 的 T P S 做了 大量 的 提升。
但是 随着 以太 坊 生态 的 发展, 上层 的 应用 越来越多。 因为 以太 坊 是 layer 1, 然后 就 出现了 这个 layer 2。 通过 改 修改 一些 以太 坊 的 运行机制, 把 以太 坊 的 这个 T P S 去做 提升。 我 举 个 最简单 的 例子, 比方说 以太 坊 有 1万台 服务器 在 记账, 某 一个 雷尔 兔 他 可能 就 把 这个 一 万台 服务器 改成 800台服务器。 那 他 可能 这个 去中心化 程度 降低 了, 因为 服务器 变少 了, 但是 他 能够 把 T P S 给 提上去。 所以 这个 时候 就有 了 像 这样的 一个 layer two。
然后 他 T P S 提上去 有一个 什么样 的 好处 呢? 就是 能够 让 用户 能够 覆盖 那种 用户 交互 更加 频繁 的 场景。 因为 金融 场景 它 可能 交互 没有 那么 频繁。 但 比方说 如果你 要 去 玩 一个 区块 链 游戏, 那 可能 你每 砍 一刀 或者 每 掉 一个 装备, 每每 打 一个 怪, 可能 都 会要 跟 区块 链 发生 一次 交互。 而且 游戏 场景 相比 金融 场景, 它的 这个 覆盖面 人群 都会 更广。 所以 就会 有了 这样的 later two。
然后 有了 这些 later to 以后, 那就 引出 了 我们 又 绕回 了 我们 前面 说 的 问题, 就是 跨年。 因为 当 你的 资产, 比方说 假设 你 在 一个 later two 的 链 上面 玩 一个 区块 链 游戏。 然后 这个 游戏 你你你 是 打 金 也好, 然后 你是 专业 玩家 也好, 可能 你 赚 了 很多 钱。 那你 赚 了 很多 钱, 你 可能 会 觉得 这个 雷 点 two 它 去中心化 程度 不强。 我 赚 来 的 这些 钱, 我 可能 想 把 它 放到 雷 点 1, 放到 以太 坊 的 链 上面 去, 你 可能 觉得 这样 更 安全, 有些人 跨 店 他是 为了 提升 安全性。 比方 他在 某 一条 侧链 上, 某 一条 lure two 上 赚的钱, 哪怕 把 钱 移动 到 更加 安全 的 一条 链 上。 那 这个 就 产生 了 刚才 所说 的 这种 跨 链 的 这种 场景。
然后 为什么 会有 像 索 拉娜 这样的 lioness? 就是 索 拉娜 为什么 不说 它是 一个 later 2呢? 是因为 它 基本 把 以太 坊 的 很多 东西 都 做了 彻底 的 修改。 所以 一般来讲 大家 就会 认为 索 拉达 是 另外一个。
六一 单 独立 的。
对, 单独 的 独立 的。 然后 索拉纳 如果 他 这条 链 再 继续 往后 发展, 可能 又 有人 发现 索拉纳 存在 某些 问题, 那 也 有人 可能 会 做 一条 索拉纳 的 zero 2, 就 基于 索 拉达 的 上面 的 就 改 索 拉达 的 某些 的 一些 参数 也好, 一些 特征 也好, 变成 一个 索 拉达 的 每日 图。 但 目前 还没有 出现了, 只有 像 以太 坊 这样 老牌 的 链, 大家 才会 去 在 上面 再做 那个 图。 所以 这个 就是 一个 简单 的 later one 和 layer 2之间 的 一个 关系。 然后 later 0我自己 感觉 layer 0更像是 一个 marketing 的 一个 概念, 一个 OK 一个 市场 概念。
对我 波卡 说 自己是 620是市场 概念 是吗?
对我 觉得 我 觉得 有点 像是 一个 是 他 因为 这个 新的 概念 总是 不断 被 造出来, 然后 外部 三 的 世界 也有 大量 的 这种 眼球 经济。 他 如果说 我是一个 later one, 然后 你们 基于 我 来做 later two, 那 这个 故事 就 没有 那么 的 那么 漂亮, 那么 有意思。 所以 他 会说 自己是 later 0。
对。 所以 layer two 我们 可以 理解, 就是 比如 他是 为了 在 为了 给 later one 的 这些 公 链 扩容, 然后 提高 大家 的 用户体验 去去 拓展 出来 的。 那 它的 安全性 我们 可以 这样 理解 吗? Later two 的 这些 安全性 其实 是 基于 there one 的。 比如说 我 依托 于 以太 坊, 那 以太 坊 我 其实我 的 这个 later two 的 这些 项目 的 安全性 是 依赖于 以太 坊 的 安全。 但是 如果我 是个 侧脸, 其实 因为我 要 自己 去 维护 我的 节点, 自己 去 做我的 共识 机制。 所以 它的 安全性 是我 策略 的 这些 项目 方 自己 来决定 的。
我不知道 这种 理解 对不对。 对我 我 觉得 如果 从 单 从 安全性 这个 角度 来说, 就 您 刚才 讲, 比如说 neil two 的 这个 侧面 的 安全性, 那 它 本身 首先 它 需要 有 底层 的 这个 L 一 的 安全性 来 保证。 它 本身 还有 他 自己 安全性 需要 去 维护。 所以 它的 安全性 是 取决于 底层 的 one 的 安全 以及 自身 的 安全 机制 的 安全性, 就是 两个 都 要有。
对 安全 还是 一个 很 复杂 的 问题。 因为 嗯哪 哪 都 可能 出错, 就是 链 本身 它 可能 就 会有 问题, 然后 项目 方 本身 可能 有问题, 然后 用户 那 一端 钱包 本身 可能 有问题。 就 它是 一个 很大 的 一个 网, 很难 定义 说 比方说 我 这个 项目 在 以太 坊 上 我 就 更 安全, 因为 以太 坊 本身 更 安全, 不是 这样的, 就是 项目 本身 它 还 会有 漏洞。
所以 如果 两位 去 看 现在, 就 当今 我们 可能 跳出 诺 麦克斯 罗娜。 你们 觉得 目前 这个 领域 里面 最 与 安全 与 隐私 相关 的 挑战, 它 最大 的 挑战 是 来自于 哪里? 大家 现在 都在 针对 这种 挑战 做 哪些 尝? 是 或者 是 解决 措施 的 这种 思考?
因为我 是 做 硬件 钱包 的, 因为 刚才 也 描述 了, 就是 安全 它 出 漏洞 的 地方 非常 多, 就 很难说 比方说 某 一家 公司 他 就能 提供 一个 产品 也好, 提供 一个 服务 也好, 解决 所有的 问题。 像 我们 和 周教授 就 各有 侧重。 像 我们 这边 可能 就会, 我们会 更 关注 在 用户 这 一端 的 安全。
比方说 索拉纳 这样的 事情, 其实 就是 我们 身上 的 职责。 因 软件 钱包 它是 一个 闭源 的 一个 软件 钱包, 别人 也没有 办法 看到 它的 代码。 然后 他 就 做了 非常 愚蠢 的 事情, 把 这个 助力 词 这么 关键 的 东西, 助力 词 上 传到 了 一个 云端 的 一个 服务器。 那 像 我们 这 段 就是 在 解决 这样的 问题, 帮助 用户 更好 的 保存 它的 这个 私钥 以及 主题词。 然后 通过 硬件 钱包 这样的 形式, 帮助 用户 更好 的 保护 他 这些 信息。 所以 这个 是 我们我们 做 的 事情。
当然 我们 也会 参与 到 一些 项目 方 他们的 一些 安全 的 防护 当中。 比方说 很多 项目 方 我们 也 在 跟 他们 合作。 因为 用户 他在 做 一笔 交易 签名 的 时候, 一个 很 关键 的 一个点 就是说 就 好像 你 签 一份 合同 一样, 你 肯定 要 去 把 这个 合同 读 一下, 然后 你 再 签上 你的名字。
但是 这里 有 个 很 关键 的 点 是什么? 就 当你 在 签名 一笔 区块 链 的 这个 交易 的 时候, 你 也要 去 充分 的 了解 你 正在 签 一笔 什么样 的 交易。 因为 有可能 比方说 你的 电脑 被 攻击 了, 你的 这个 手机 被 攻击 了, 然后 黑客 他 让 你 签 了 一笔。 比方说 你就是 一个 转账, 简单 的 一个 转账, 我要 把 以太 坊 转给 朱 教授。 然后 黑客 如果 攻击 了 你的 电脑 或者 手机 的话, 他 会 把 这个 周教授 的 地址 替换成 黑客 自己的 地址。 那 这就是 一个 最最 浅显 的 一个 攻击 的 一个 场景。 我们 做 钱包, 我们 做 一年 钱包, 我们在 做 的 事情 就是 我们会 跟 项目 方 合作。 然后 让 用户 在 钱包 上面 清晰 的 看到 他 正在 签 的 是 一笔 什么样 的 交易, 这个 是 我们 做 的对, 朱 教授 可以 讲一讲 他们 那边 主要 努力 的 一些 方向。
周教授 你 其实。
对 整个 的 区块 链 的 一个 生态 里面, 就是 参与 的 各方 其实 非常 的 多。 它 有 各种各样 的 实体 的 参与, 那就 包括 用户? 钱包 链 交易所 大 的 项目。 而 每一个 实体 其实 都 有可能 会有 自己 不同 的 安全 需求。 目前 我们 自己的 观察 是 说, 其实 很多 的 这个 安全 需求, 就是 不同 实体 的 安全 需求, 其实都没有 得到 比较 好的 保护。 我们 和 立新 其实 都 一直 有 在 整个 生态 里面 去做 一些 自己的 事情。 包括 像 立新 主要是 focus 在那 钱包 这 一块 和 用户 安全 这 一块, 那 我们 可能 就 比较 focus 在 一些 项目 方 的 一些 安全。
安全 我 觉得 这是 第一个 特点。 也就是说 整个 区块 安全 里面 它 参与 的 方 特别的 多, 然后 每个 人的 这个 安全 需求 又 不一样。 第二个 点, 我 觉得 就是 每 一方 他的 这个 安全 的 需求? 它是 多样化 的。 然后 可能 被 攻击 的 这个 向量 和 点, 它 又是 不一样的。 就 打个比方 说, 用户 其实 经常 被 攻击 的 一个 可能 的 商量 就是 被钓鱼 攻击。 用户 被钓鱼 以为 你是 在 签 一个 什么东西, 但 实际上 并不是。
涉及到 这个 钱包 的 安全, 怎么 去 保管 私钥。 又是 交易所, 怎么 去 做好自己 的 一些 运维。 然后 大 的 项目 怎么 去 保证 自己 代码 安全, 怎么 去 保证 这个 项目 部署 上 链 之后 的 这个 风 控 的 安全性。 就是 每一个 项目 方 他 都有 自己 不同 的 安全 需求。 而 现在 整体 的 这个 安全 需求, 就是 能 提供 一个 系统化 的 安全 需求 的这 这么 一个 服务商, 其实 也是 不存在 的。 并且 我 觉得 将来 区块 链 里面 也 不太可能 出现 一家 能 提供 所有 安全 需求 的 服务商。 一定 都 是在 自己 细分 的 领域 里面 有 自己 独特 的 东西。
然后 我 觉得 整个 现在 就 区块 链 安全 安全 它 其实 是个 系统工程。 系统工程 的 意思 就是你 需要 把 方方面面 可能 的 攻击点 和 可能 的 攻击 向量 都 需要 考虑到, 然后 有 自己的 应对 措施。 安全 它 并且 还是 一个 持续性 的 投入。 安全。 它 不是说 我在 开发阶段 投入 安全, 然后 开发 完了 之后 就 不需要 安全 的。 安全 它 不是 安全, 是 贯穿 在 整个 项目。 我 无论是 项目 也好, 交易所 也好, 就是 任何 实体 也好, 它 整个 生命周期 都 需要 安全 这么 一个 因素 的 存在。 所以 这也是 为什么 安全 特别 难 做 的 原因。
就是你 你是 一个 系统化 工程, 然后 你 还需要 持续的 投入。 也许 你 持续的 投入 其实 平时 看不到 产出 的对 吧? 因为 没有 攻击 实际上 是 表示 你 比较 安全。 对你 安全 做 的 好 的话。
可能 那你 怎么 证明 这个 投入。
有 对 exactly exactly 就是你 怎么 证明 你的 投入 安全 是 有 回报 的 这个 悖论。 对 就 对, 导致 很多很多 的 问题 存在。 是的。
安全 你是 你 很难 像 让 用户 证明 你 安全, 但是 你 不安全, 这个 用户 就 很 容易 get 到 这个 点。 所以 这个 就是 特别 困境 的 一个。 然后 在 别人 看来 你就是 一个 成本中心 一样的 感觉, 没有 产出。 但是 一个 成本中心 我 好奇。
周教授 可以 请你 补充 一下。 比如说 我们 说 现在 的 项目 方, 他 如果 要 提前 假设 你 刚刚 说的是 保证 风险 不 发生, 他 会有 哪些 非常 具体 的 措施, 是 能够 让 项目 方 在 这个 风险 发生 之前, 他 就 能够 意识到 说 这个 是一个 重大 的 危险信号, 或者 这 是一个 reflex, 这 是一个 红旗 事件, 我要 做 一些 举动 去 避免 这个 事儿 发生。
现在 大部分 项目 方 的 安全意识, 就是我 做 审计, 我 就 认为是 安全, 实际上 不是, 就是 项目 方 其实 更 需要 去 时刻 毛利, 是 自己 项目 的 状态。 通俗 来讲 就是 做好 风 控, 对 吧? 你 想 银行 它 有 很多 的 安全措施, 那 风 控 一定 是 银行 整个 系统安全 里面 非常重要 的 一 环, 对 吧? 它 需要 每天 来 鉴别 跟 我 银行 交互 的 这些 交易, 它 到底 是一个 flow 的 交易, 还是 一个 正常 的 一个 用户 的 交互, 同样 的那 作为 一个 低 发 的 项目 方, 或者说 你的 这个 项目 方 里面 有 很 多数 资产 的, 那么 你 也 需要 做好 这样的 风 控 对 吧。 那 简单 的 说, 那你 需要 去 鉴别 每一天 有 哪些 人 跟 你 在 进行 交易。 对于 这些 交易会 不会 导致 你的 项目 产生 这个 风险。 这样的 风险 是 可以 容纳 的 风险, 还是 说 它是 一个 攻击 的 风险。 那 这个 东西 都 需要 项目 上 有 这个 意识, 需要 部署 这么 一套 东西。
具体 我 举 个 简单 的 例子, 比如说 我们 还是 回到 Norman 这个 事件 里面 的 项目 方。 如果 man 的 事件 的 项目 方 它 有 比较 好的 风 控 体系, 那 他 其实 可以 怎么做? 他 可以 去 监控 这个。 因为 我们 讲 这个 跨 链? 是 资产 从 原 链 到 目标 链 的 一个 流动。 那 项目 方 其实 是 可 先 首先 监控 一下, 就是 他 可以 开发 一个 额外 的 自己 后台 运行 的 一套 系统。 他 去 监控 说 一个 用户 有没有 把 钱 放到 这个 原 链 里面 去, 有没有 被 锁定。 从 目标 里面 取出 钱 的 这个人, 他 有没有 资产 锁定 在 这个 原点 上。
这个 是 可以 做 一个 线下 的 这么 一个 风 控 体系 来 监控, 而 不是 只 靠 线上 逻辑 来 运行。 这样的话 当 一旦 线上 的 逻辑 跟 线下 逻辑 不一致 的 时候, 所谓 的 不一致 就是 因为你 线上 逻辑 出 漏洞 了, 所以 我 线下 逻辑 我 能 检测 到 不一致。 因为我 发现 从 目标 那 上 留出 钱 的 这个 账户, 他 并没有 钱 被 lock 在 原件 里面。 那 这个 时候 我 就 很 容易 发现 问题 了, 对 吧? 这个 就是 老板 的 风 控 里面 非常容易 做, 也 非常 好 理解 的 这么 一种 风 控 的 体系。 所以 我 觉得 这 一套 体系 的 构建, 当然 对于 不同 的 项目 方, 比如说 你是 借贷 平台, 是一个 代词 还是 一个 道, 对 不同 的 这个 项目 平台, 它 有 自己的 这个 风 控 的 点 和 规则, 但是 一定 需要 有 这么 一套 东西 来去 监控, 我 觉得 这个 还是 蛮 关键, 其实 是 现在 项目 上 比较 缺乏 的 一个 意识。
立新, 你 觉得 索 罗娜 这个 事件, 如果 要 前置 去 防范 他 这个 风险 问题, 从 你的 角度 来讲, 他 可以 像 周教授 那样 说 的, 就是 做 哪些 举动 来 提前 防范 风险 发生 呢?
索拉纳, 这个 事情 感觉 就 如果 你的 私钥 或者说 如果 你的 助记 词 泄露 了, 这个 几乎 就是 不 可逆 的。 除非 就是说 对于 用户 来说, 你 尽早 的 知道 这个 消息。 知道 这个 消息 以后, 然后 你 尽快 的 把 你的 资产 在 黑客。 因为 索拉纳 这个 事情, 他他 另外 很 神奇 的 一点 就是 它的 这些 转账 是 逐步 发生 的。 就是 前后 大概 有 几个 小时, 五六个 小时 就 不断 的 有 用户 在 丢钱 这 样子 他 不是 一下子 在 几分钟 内 就 整个 事件 就 完结 了。 所以 这个 事情 如果 真要 就 发生 了 这样 补救, 可能 唯一 的 手段 就是 通知 用户, 然后 用户 赶紧 把 钱 给 提出来, 赶紧 转到 别的 地方, 这个 是 这样 一个 手段。
然后 如果说 事前 要 做 的话, 我 觉得 很 重要 的。 其实 代码 开源 我 觉得 其实 挺 重要 的 一件 事情。 首先 它 代码 开源。 如果 一个 项目, 比方说 一个 做 钱包 的, 他 代码 开源, 他 肯定 会 非常 仔细认真 的 去 对待 自己的 代码。 它的 工程质量 受 这个 开源 的 影响 可能 就能 得到 提升。 因为他 知道 这个 代码 会给 大家 看, 甚至 我的 这个 代码 写 的 好坏 所有人 都 知道。
然后 代码 开源 以后, 肯定 会有 开发者 过来 看 你的 代码。 这样 带来 一个 结果, 就是 你的 很多 的 风险 就能 被 封堵。 在 早期 就 可能 攻击 就 不会 发生 在 九千多 个 地址。 可能 在 你的 早期 九个 地址 的 时候。 我 就 暴露出来 了, 就能 及时 把 这个 东西 给 解决 掉。 所以 我 觉得 开源 是 很 重要 的 一点。 但 开源 它 本身 是 跟 很多 钱包 的 这个 商业 目的 是 相 违背 的。
我自己 其实 对 钱包 未来 的 开源 其实 不 乐观。 一方面 是 它 这个 钱包 开源 可能 会 有损 他的 商业利益。 然后 另外 一方面, 很多 因为 有 一些 开 源代码, 它 不同 的 开源 协议 还 不一样。 就 比方说 有 一些 项目 方 他用 的 开源, 它 可能 是 开源 了。 比方说 具体 是谁 我 就 不 举例子 了。
就像 一个 老牌 的 钱包, 它是 开源 的, 它 代码 是 开源 的。 但是 他 不 允许 你 去 对 它的 开 源代码 进行 商用。 就是 他 不 允许 你 copy 一份 代码, 把 这个 代码 又又 做了 另外一个 钱包 再 给 别的 用户 用, 他 不 允许 这样 操作。 有些 钱包 他 为了 自己 业务 能 跑 得 更快, 他 就 去 分叉 了 别人 代码, copy 了 别人 的 代码, 那 copy 别人 代码 他 肯定 就 不敢 开源 了。 他 一旦 开源 出来, 那 别人 就 发现, 你 在 你 把 别人 不可 商用 的 代码 给 商用 了。 所以 我自己 其实 不 看好 未来 钱包 这 一端 的 开源。
像 索拉纳, 到 目前为止 索拉纳 社区 还没有 一个 开源 钱包, 全部都是 闭源 的。 而且 甚至 以前 还有 一些 钱包 本来 是 开源 的, 然后 慢慢 发展 的 就 变成 闭源 的 钱包 了。 这个 也是 为什么 我们 做 一年 钱包, 然后 我们 强调 我们 一年 钱包 跟 不同 软件 钱包 之间 的 整合, 我们 跟 meter musk 做了 整合。 然后 我们 现在 也 在 帮助 其他 的 一些 闭源 的 钱包。 就是你 既然 因为 你的 商业 的 原因 或者 别的 一些 目的 和 原因 你 不 开源, 那你 就 接 硬件 钱包。 然后 允许 你的 用户 把 私钥 脱离 你的 软件 钱包 而 保存 到 一个 硬件 钱包 里面 去。 每次 签名 的 时候 都 用 一下 那个 硬件 钱包。 所以 这个 是 我们 对 这个 钱包 发展 的 一些 看法, 以及 我们 试图 在 做 的 一些 努力。
所以 我们 可以 是否 可以 这样 理解, 就是 随着 这些 可能 对 业内 越 有 影响力 的 安全事件 不断 的 去 发生。 可能 这些 安全事件 对外部 三 本身 的 发展, 或者 是对 业内 的 人, 大家 对 技术 和 商业 路径 的 思考, 可能 也会 起到 一些 推波助澜 的 作用。 比如说 像 刚刚 李欣 说到 好的, 我们 可能 就是 像 这样的 智能 硬件 钱包, 它 会 整合 到 M3M4 的 生态 里面, 或者 是 像 周教授 说 这样的 项目 方, 他 不单是 单独 的 去 依赖 安全 审计, 它 会 更多 的 考虑 一些 前置 风险 的 这种, 判断 和 预测。 我 好奇 那你 两位 是 怎么 去 看 这些 安全事件, 比如说 对 未来 整个 web 三 长期 的 这个 生态 的 影响 和 发展。 因为我 听起来, 我 觉得 这些 事件 梳理 出来, 比如说 我 如果 是一个 外部 三 的 观察者, 或者 是一个 我 未必 不会 成为 那个 follower, 对 吧? 如果 别人 告诉我 说 他 有 这样的 一个 代码 漏洞, 然后 你 每次 去 转入 2100 1万2万, 而且 这个 里面 我 拿了 这笔 钱 之后, 其实 项目 方 还会 给我一个机会, 让 我 把 钱 退回去。 对我来说 就是我 觉得 你 去 拿 这笔 钱 的 动机 是 会 非常 大 的。 我不知道 大家 怎么 想, 就是 未来 这些 安全事件 对外 普桑 驯 他的 长期 影响 会 是 什么样?
大家 肯定 很 不想 看到 这些 安全事件, 甚至 这些 安全事件 会 吓退 一些 用户。 可能 有些 用户 可能 觉得 这个 这么 不安全, 我 这个 是不是 要 去 体验, 要 去 尝试 这些 东西。 但是 从 一个 更加 长 的 线 来讲, 我 觉得 外部 三 的 这些 安全事件 频发 还是 有 积极意义 的。 为什么? 因为 这样的话, 大家 能 从 这些 公开 事件 里面 不断 的 去 学习。 然后 新的 项目 方 能够 站在 前人 的 肩膀 上, 把 自己的 产品, 然后 把 自己的 这个 服务 做 的 更加 的 安全。
其实 在 外部 二 的 世界 里面, 安全事件 也是 很多。 只是 在 所有 外部 二 的 事件 里面, 你 不太 看到 说 这些 安全事件 的 公开 报道。 这 带来 的 结果 就是 各家 都要 你 自己 去 摸索 一套 你 自己的 风 控。 然后 你 自己的 安全 机制, 你 自己的 审计 的 机制, 你 自己的 内部 的 流程, 各家 都是 自己 在 做, 缺少 彼此之间 的 沟通 和 交流。 所以 结论 就是我 自己 还是 比较 积极 的 看待 这些 安全事件。 而且 这样 能够 加快 整个 外部 三 的 迭代 的 速度。
因为 外部 2假设 说 50年 假设 假设 50年, 然后 打造 了 一个 很 安全 的 一个 世界, 很 安全 的 一套 服务, 一整套 体系 和 服务, 相对 非常 安全 的。 但是 在 外部 三 的 世界, 因为他 所有 信息 暴露 的 更 充分, 他 可能 不需要 50年, 他 可能 十年、 15年 就 能够 完成 这个 过程。 所以说 我自己 还是 比较 积极 的 看 这个 事儿。 对我 非常。
同意 立新 的 说法。 就是 在 二三 的 这个世界 里面, 相比 于 传统 的 安全, 就是 我们 发现 过往? 就 几年 时间 有 非常 多 的 这种 非常 high profile 的 这些 项目 被 攻击, 然后 造成 了 非常 多 的 损失。 听 上去 好像 是 外部 上 的 安 外部 商 事物 更 不安全, 对 吧? 好像 传统 更 安全, 但 实际上 不是 这个 样子 的, 为什么?
这 里面 就 涉及到 说 为什么 这个 会 发生 这样的 情况, 那 是因为 外包 二 的 很多 问题 被 掩盖 了。 因为 它的 这个 攻击 的 入口 比较 狭窄, 或者说 它 这个 物理 隔绝, 或者说 是一个 非常 受限 的 环境。 所以 你 黑客 很难 去 攻击 到 这样的 一个 目标。
但是 这 并不 意味着 它是 安全 和 不 被 攻击 的, 因为 现在 外部 三所 遭受 的 这些 攻击, 实际上 是 打醒 了 项目 方, 也 打通 了 项目 方和 打通 了 整个 生态 里面 的 每一个人。 要 让 他们 意识到, 如果你 要不 积极 的 去 建设 安全 的 生态, 那么 你 就 很难 得到 发展。 所以 从 这个 角度 来说, 现在 发生 这些 事件, 虽然 有 阵痛, 但是 我 觉得 他是 积极 促进 了 整个 外部 三 的 整个 生态 的 繁荣。 因为你 只有 大家 的 安全 水位 都 提高 了, 然后 大家 都 经过 安全 的 教育, 纷纷 的 提高 自己 安全 的 这个 水准。 然后 整个 外部 山 的 生态 才能 健康 的 发展, 而 不是 把 问题 掩盖 下来。 直到 eventually 有一天 发现 一个 非常 现在 我们 无法 预料 的 事件, 然后 整个 大厦 就 崩塌 了。
我不知道 大家 是否 会 这 样子 去 想, 就是现在 本身 大家 去 交流 这种 安全问题 的 渠道 机制, 让 大家 都 了解到 这种 方式 它 本身 也是 一种 容易 产生 风险 的 部分。 我自己 好奇 为什么 这些 可能 发现 漏洞 的 人, 包括 告诉 传播 这种 漏洞 的 人, 他们 都 是在 推特 上去 进行 这种 交流 的。 这些 事情 就是 大家 怎么会 去 评价 霸王 黑客 对外部 三 生态 的 影响 呢?
在 安全 里面 我们 通常 会 讲, 其实 有一个 应该 有一个 比较 好的 叫 我们 叫 负责任 的 这个 漏洞 披露 的 这么 一个 机制。 这个 其实 也是 在 外包 安全 里面, 就是 经过 很多年, 大家 慢慢 形成 一种 共识。 什么样 的 一个 共识 呢? 就是 如果你 发现 了 一个 未知 的 安全 威胁, 并且 这个 安全 威胁 然后 有可能 会 造成 比较 大 的 损失。 这个 时候 你 第一时间 需要 联系 项目 方, 你 不能 公开的 去 披露 这样的 信息, 然后 你 会给 项目 方 一个 响应 的 时间。 那 我 现在 安全 圈子 里面 形成 的 共识 是 给 21天 的 时间。 就是 21天 里面, 项目 方 可以 积极 的 跟 这个, 发现 漏洞 的 进行 沟通, 然后 来 修复 漏洞, 然后 发布 新 版本。 那 这样的话, 在 这个 新 版本 发布 之后, 如果 不会 造成 威胁 的, 然后 这个 安全 研究 人员 才会 负责任 的 去 公布 整个 漏洞 的 过程。
这个 是在 传统 的 安全 里面, 大家 相对 形成 一个 比较 好的 一个 机制 和 流程。 但是 这个 东西 在 外部 三 事件 里面 其实 受到 比较 大 的 挑战, 为什么 受到 比较 大 挑战 呢? 因为 在外 八三 事件 里面, 很多 的 时候 安全漏洞 的 发生, 它 不是说 还没有 被 受到 攻击, 是 已经 受到 攻击 了。 然后 这个 事情 才 披露 出来, 他 不是说 在 没有 受到 攻击 的 情况 底下, 你 发现 了 一个 zero 的 攻击。 那你 完全 也可以 follow web q 的 一套 流程, 对 吧? 你 跟 项目 方 说 你的 项目 存在 风险, 然后 你 应该 有 修复, 然后 项目 方 可以 根据 你的 建议 进行 修复, 然后 发布 新 版本, 那 这个 完全 是 一样的 流程。
但是 在 23的事件 里面, 很多 的 安全事件 都 是在 被 攻击 之后, 然后 这个 漏洞 才 披露 出来。 也就是说 在 被 攻击 之前 其实 没有人 知道, 除了 那个 发起 攻击 的 人, 其实 没有人 知道 这个 漏洞 的 存在。 所以 在 这种 情况 底下, 他 就 不太 适 就 我们 刚才 讲 的那 一套 负责任 的 披露 机制, 对 吧? 因为你 没有 办法 再 负责任 披露 了。 这个 时候 公积 已经 发生 了, 所有的 公积 交易 都 已经 在 链 上, 大家 都能 看 得到。 只要 有 安全 知识 的 人, 他 只要 去 把 这个 公积 交易 拿 下来, 然后 研究 一下, 他 也就 知 到 这个 攻击 的 原理 是什么, 漏洞 是什么, 然后 应该 怎么 去 发起 攻击。 所以 在 这种 情况 底下, 负责任 的 披露 机制 就 不起作用。
那 在 这种 情况下, 有没有 一种 更新 的 机制 来去 协调 呢? 就是 发生 攻击 试验 之后 的 整个 安全。 我 觉得 现在 还是 处于 一个 比较 早期 的 状态, 没有 个 特别 好的 机制。 我 觉得 未来 也许 会 形成 一个 我们 称为 叫 有一个 道 一样的 组织, 或 一个 什么样 的 组织 来去 比较 负责 的 共享 这些 信息。
就 一直 在 攻击 已经 发生 的 情况 底下。 因为 攻击 被 发生 的 其实 这个 是 大部分 人都 还是 不知道 的。 只有 少部分 安全 研究 人员, 他 可以 从 这个 公积 交易 里面 知道 发生了什么。 我们 可以在 一个 相对 比较 好的 经过 verify 的 这个 圈子 里面 来去 share 这些 信息。 然后 这个 时候 并且 及时 的 帮助 项目 方来 去做 一些 应急 的 响应。
但 我 觉得 这样的 机制 怎么 建立 吧? 那 大家 背后 的 essential 是什么? 我 觉得 其实 现在 社区 都 还在 讨论, 其实 也没有 一个 定论。
但 对于 普通用户 来说, 当我们 看到 这样的 信息, 我们 未必 是 最快 看到 的。 但是 还是 不应该 尽量 是 不应该 参与 这种 行为 的对 吧? 尽量 不 参与 这种 攻击 方 的 行为。
对, 因为 为 因为你 刚才 讲 的 这个 就是 比如说 冒 这个 行为, 其实 现在 社区 也是 蛮 有 争议 的。 因为 这个 主要是 对白 帽子 怎么 定性, 因为我 我们是 做 传统 安全 出来 的, 所以 也就 相当于 我们 以前 相对 接触 过 一些 比较 好的 安全 的 一些 伦理 的 教育。 就是你 比如说 你 要 做 一个 白帽子, 实际上 你 首先 要把 你的 intention 要 放在 前面 来讲。 而 不是说 你 在 做了 攻击 之后, 然后 再 被迫 还钱, 或者 是啊 什么 情况 底下 你 才 肯定 你 自己 白帽子。 因为 这个 时候 已经 太晚 了, 我没有 办法 辨别 你 这个 行为 到底 是一个 攻击行为 还是 白帽子 行为, 对 吧? 就 我们 很难 去 辨别 了。
实际 的 实践 当中, 其实 市区 里面 也有 一套 自己的 准则。 就是说 如果你 要 做 a one head, 你 需要 一方面 基金 联系 项目 方, 一方面 你 需要 把 你 这个 intention 以 某种 方式 告诉 社区, 这样的话 就 相当于 你是 自证 清白。 虽然 对 安全 人员 的 要求 有点 高, 但是 你 确实 必须 要 自证 清白, 否则 后面 的话 你是 说不清 清楚 你 自己 原来的 intention 是什么。
就像 立新 和 周教授 所 讨论 到 的 那样, 安全 审计 公司 通常 是 会 被 认为 项目 方, 尤其是 区块 链 项目 的 看门人 和 守护神。 但是 安全 审计 公司 他是 如何 看待 和 应对 这些 安全事故, 引起 了 我们的 好奇。 所以 我们 就 跟 安全 审计 的 独角兽, 也是 今年 4月刚 完成 8800万 美元 B 3轮融资 的 3D他们的 安全工程师 袁 楠 进行了 一个 快速 的 交流。 袁 楠 他 所 参与 的 就是 智能 合约 的 审计 和 针对 安全事故 的 应急 响应。 首先 我想 问 一下 云南, 就是你 对于 no mad 还有 salona 这些 跨 链 项目 发生 安全事故 的 根本原因, 你们的 一个 观察 会 是什么?
No mad 和 sont 是 两个 完全 不一样的 发生 的, 我们 可以 说是 两种 不同 的 attack。 关于 no mad 的话, 它 其实 主要 的 是你 初始化 的 configuration 出了 问题。 就是说 在 你 初始化 的 时候, 他 把 一个 错误 的 一个 参数 作为 一个 初始值 传给 了 一个 变量。 这 样子 的话 就会 导致 他们 中间 有一个 verification, 就是 一个 校验 的 一个地方 会 被 bypass 掉。 然后 当 你的 tucker 发现 你 这个 错误 的 初始化 的 一个 变量, 会 导致 这样 一个 bypass 的 verification 的 时候, 这个 attack 就可以 利用 这个 漏洞 去 从 这个 contract 里面 取钱 了。 这个 是 new new mad 的 一个 根本 问题。 其实 它 可能 也可以 说 它是 一个 人为 的 一个 设置 问题。
然后 sana 就 比较复杂, sana 是 他用 了 一个 已经 delicate 的 一个 拉拉 的 版本。 然后 他 这个 版本 他 没有 对 传入 的 cease bar count 进行 检测, 就是 传入 的 case by count 不一定 是一个 正确 的, 并且 是一个 合法 的 一个 c five count。 这 样子 就 导致 这个 attacker 可以 去 它的 传入 的 这些 account 里面 去 inject 的 一个 malicious 的 safar account。 这 样子 就会 导致 整条 与 cease far com 相关 的 validation 全部 会 fail 掉, 就 导致 cef count vda 是 失效 的这 样子 从而 导致 了 它 整条 链 的 verification 的 chain of very fiction 会 失。
像 比如说 no mad 这个 事情 的话, 其实 如果你 不去 跟 项目 方 去 沟通 他们的 设计 和 他们 将要 怎么样 初始化 他们的 合约 的话, 其实 这个 问题 比较 难 被 发现 的。 因为 它 可以 看作 是一个 动态 调整 这个 合约 的 时候 的 发生 的 一个 ms configuration。 这个 动态 调整 其实 是 调整 了 它的 configuration, 是 它的 有 一些 参数, 它的 有 一些 变量, 就是 它 在 智能 合约 里面 有 一些 变量 是 存储 这个 合约 当前 的 状态 的。 所以说 有 一些 我看 的, 比如 在 初始化 的 时候, 它 会 把 这 一些 状态, 这些 configuration 的 状态 赋予 特定 的 值。 然后 另外 是 关于 sana 的 事件 的话, 他 其实 他用 的 这个 deprecated 这样 一个 undecorated 这样 一个 cef account 的话, 其实 在 审计 中 很大 概率 是 会 被 看出来 的。 因为 它的 这个 departed account 其实 是 会 在 代码 里 会 显示的 去 标出来, 这个 可能 是 已经 不会 用了。
黑客 是 怎么 发现 这些 漏洞 的 呢?
首先 第一点 是 这个 contract 的 在 所有的 链 上 是 开源 的对 吧? 所以说 黑客 很 清楚 他 这个 代码 的 逻辑 是什么 样子。 另外 关于 他 confirm that 这个 mapping 的 configuration 的 值, 其实 attacker 也是 可以在 链 上 访问 到 的。 考虑到 他 知道 了 代码 逻辑, 并且 他 知道 这个 值 是 如何 初始化 的, 他 其实 就可以 立马 想到 一个 攻击 手段, 如何 去 攻击 这样 一个 control。
从 你们的 角度 来看, 其实 安全 审计 公司 在 跨 链 项目 也好, 在 公 链 项目 也好, 他们 到底 扮演 的 是一个 什么样 的 角色 呢?
审计 公司 其实 更多 的 是一个 算是 block chain 的 一个 守护者。 就 包括 C D K 他 已经 审计 了 很多 链 上 的 合约。 我们在 审计 的 过程中, 其实 往往 会 发现 很多 一些 可能 项目 作为 一个 developer 你不会 去 考虑 的 一些 问题。 包括 说 一些 flash on 的 一些 vulnerable 的 一些 inject point flash long 就是 闪电 贷。 你 在 一个 transaction 里面 可以 去 借 大量 的 资金。 只要你 在 这笔 transaction 的 结尾 把 这个 钱 还给 这个 flash room 的 provider, 在 这个 transaction 就 相当于 拥有 了 很多很多 的 钱。 你可以 近似 认为 你 在 这个 transaction 里面 你是 一个 一个 富豪, 是一个 百万富翁。 然后 你 用 这笔 钱 你 就可以 去做 任何 你 想做 的 事情。 包括 操纵 价格, 包括 去做 一些 bitrate, 就是 一些 赚 那种 unis wap 它 那些 差价。
像 这种 东西 是 很多 developer 他 其实 在 开发 的 时候 他 自己 不会 去 想 的。 就 包括 他在 计算 这个 reward 的 时候, 他 可能 就 没有 想到 他 自己的 这个 deposit 函数 和 伪 素 函数。 在 一个 transaction 里面 如果 反复 被 调用 的话, 会不会有 大量 的 reward 产生。 像 这种 类似 于 这样的 逻辑 的话, 作为 audit 是 会 着重 的 看 的。 我们 也会 去 考虑 这个 flash 会对 整体 的 项目 逻辑 造成 什么样 的 一种 冲击。
我 好奇 为什么 项目 方 他 没有 办法 发现 这个 问题 呢?
其实 并不是 没有 办法 去 发掘, 其实 这 有 很多 个 原因。 第一个 有可能 是因为 很多 项目, 你知道 在 区块 链 上 很多 项目 是 fork 的。 其实 他 往往 developer 他 不一定 对 smart contract 很 了解。 他 可能 很 了解 整个 合约 的 从头到尾 是 如何 部署, 如何 去 实现, 如何 去 调用, 如何 去 交互 的。 但是 它 对 本身 这个 smart contract 的 安全性, 它 其实 是不是 很 了解 的。
第二点 是因为 现在 smart contract 发展 的 非常 快, 导致 现在 很多 其实 学 的 并不是 非常 的 深入。 他 可能 只 知道 这个 语言 的 特性, 如何 去 实现 一个 功能。 但是 对于 他 这个 语言 的 带来 的 一些 特性, 他 其实 并不是 非常 的 了解。
举 个 非常简单 的 例子, 就是说 open japan 有一个 ERC721 的 这样 一个 smart contract, 是一个 通用 的 模板, 它是 一个 N F T 的 这样 一个 token 的 模板。 但是 可能 很多 developer 就 不知道 它 里面 那 这个 safe transfer from 其实 是 存在 潜在 的 一个 reluctancy 的 call back。 Recency call back 其实 就是 比如说 你 去 调用 了 一个 ERC721 的 这样 一个 token 的 一个 safe transfer。 然后 这个 safe transfer 需要 去 到 这个 调用者, 就是 coder, 就是 那个 调用 这个 函数 的 人 他的 地址 上去 查看。 他 有 我们 有一个 叫 on receive ERC721 这样 一个 函数, 如果 有 的话, 它 会 执行 这个 函数 并 返回 结果。 所以说 这个 时候 如果 你的 调用者 是一个 黑客, 他 可能 去 在 你 他 自己的 这个 调用 的 合约 里面 去 实现 一个 malaise 的 on receive ERC721 这样 一个 行业 的。 所以说 这 样子 就 创建 了 一个 call back 的 一个 路口。
明白。
另外 就是 比如说 老生常谈 的 在 solid 上面 的 retrying cy attack, OK 宠物 攻击、 retract attack 其实 包含 了 比较 多 部分 了。 Rent attack 有 很多 部分, 有 简单 的, 有 复杂 的, 一些 复杂 的 可以 是从 一个 function 去 reach 到 另外一个 方式。 然后 关于 这种 人 的话, 我们 就 需要 会 把 这个 逻辑, 会 把 整个 项目 的 逻辑 会非 需要 非常 清楚 知道 他的 状态 之间 是 如何 联系 的。 这个 就是 一个 比较复杂 的 一些 情况, 需要 阿里 小觑 需要 做 花 很多 的 心思 去做 验证 也好, 去 发现 这个 漏洞 也好。
我 如果 代码 更新 的话, 逻辑 上 我也 应该 找 安全 审计 公司 再去 检查 一遍 我的 代码 逻辑, 检查 这些 漏洞 对 吧?
对, 是 这 样子 的。 因为你 在 软件 迭代 的 过程中, 如果说 你 有 新的 逻辑 或者 是 有一个 一些 新的 一些 模块 被 加入到 你 这样 一个 你的 APP 里面 的话, 你是 需要 重新 做 审计 的。 因为 你不知道 你 将 新 加入 的 这些 逻辑 会对 之前 的 老 逻辑 产生 什么样 的 影响。
这就是 为什么 很多 项目 他在 比如说 更新 或者 是 迭代 的 时候, 反而 非常容易 被 黑客 集中 攻击。
可以 这么 理解 吗? 对, 是的。
那 会有 项目 方 说, 比如说 我 更新 了 代码, 但是 我 可能 考虑 后面 就 不去 找 安全 审计 公司 工作, 会有 这样的 情况 出现 吗?
这样的 情况 是 会有 的, 安全部门 的话 其实 是 是 很多 公司 比较 忽略 的 一个点。 成本 部门 对当 你 有 额外 的 金钱 和 资源 的 时候, 你是 会 去 考虑 这个 安全 这 一块。 但是 如果 当 你的 这个 资金不足 的话, 其实 你 很多 时候 是 不会 去做 这样 一个 审计 的。 而且 你 做 迭代 的 审计 的话, 很多 时候 也是 需要 审计 公司 会 重新 从头 把 你的 代码 过 一遍。 这 样子 也会 导致 一个 很大 的 时间 开销。 这 样子 很多 公司 其实 也 不是 非常 愿意 去做 这样 一个 迭代 的 这样 一个 升级。
那 事故 已经 发生 了, 项目 方 我们 打比方, 这个 黑 客户 他 可能 是 短时间 就 发动 了 比较 大量 的 攻击。 在 这个 过程 里面, 安全 审计 公司 他 会 观察 到 说有 这样的 攻击行为 发生, 他 会 及时 去 跟 项目 方 沟通 吗?
是 会 的。 像 我们 公司 有 skynet 这样 一个 system, 他 就会 去 实时 的 去 监控 链 上 的 一些 数据。 比如说 他 发现 大量 的 可疑 交易 的话, 他 会 去 把 这个 交易 去 扔给 我们的 core team, 就是 quick incident response team。 我们会 在 第一时间 去 分析 一下 这个 交易 到底 是不是 一个 可疑 的 交易。
当然 一个 attacker 要 发动 攻击 的 时候, 他 如果 想 让 他的 利益 最大化 的话, 大部分 时间 他 需要 通过 闪电 贷 这样 一个 途径 来 扩大 它的 利润。 所以说 我们 当 监控 flash on 的 这个 provider, 我们 其实 是 可以 去 拿到 大量 的 交易。 同时 我们会 设置 一些 ruse, 一些 filter 去 过滤 掉 一些 attrition 的 交易。 这 样子 剩下 来 的 就 可能 是 一些 我们 不知道 的 和 一些 可 潜在 的 一些 attack 的 交易。 然后 这种 时候 我们 可能 会 去 人工 去 看一看 这个 交易 到底 是一个 什么样 的 东西。
然后 最后一个 其实 是 通过 安全 审计 的 项目, 通常 还有 可能 会 存在 哪些 安全隐患。 这个 是 你们 后续 再 跟 项目 方 沟通 的 时候, 会 特别关注 或者 是 提醒 对方 要 去 注意 的。
这个 就是 包括 我 之前 我们 提到 的 这个 关于 contract 的 configuration。 就是 它 有 一些 参数 的 一些 修改。 就举 一个 非常简单 的 例子, 就是 在 我们的 report 里面, 我们会 反复 的 提到 一个 叫 centralization 的 risk。
这个 rist 就是 有 一些。
privilege, 对 这些 privilege 的 com 它 可以 去 修改 这个 contract 的 一些 参数。 当 修改 完 这些 参数 之后, 他 可能 对 这个 合约 会 造成 一些 不可 预知 的 一些 风险。 这些 是 我们 可能 会 去 关注 的 一些 点。
这些 安全事故 发生 之后, 他们 对于 整个 宽 链 项目 也好, 公 链 项目 也好, 他 会有 什么样 的 影响? 就是 想 问 一下 云南, 你是 怎么看 这个 问题 的?
像 诺曼 D 它是 一个 configuration 的 问题。 所以说 其实 很多 时候 除了 在 做 代码 审计 这样 一个 类似 于 menu review 的 情况下, 可能 更多 时候 作为 一个 安全 审计 方 的话, 也会 去 需要 去 关注 它是 如何 去 set up 这样 一个 contract。 需要 知道 它的 这个 初始化 的 参数, 并且 带着 这个 参数 去去 审计 这样 一个 合约, 去 看 他 会不会有 一些 漏洞。 会 由 这些 错误 的 参数 configuration 导致 一些 漏洞。 这个 是 no md 教会 我们的。 然后 对于 sara 的 warm hold 的话, 可能 是 我们 需要 去 尽量 去 使用 比较 新的 比较稳定 的 一些 dependency, 就 包括 this far account 这 样子 count, 我们我们 尽量 去 使用 比较 新的 版本。
至于 之前 发生 的 其他 的 几起 桥 的 事件, 包括 之前 有 对 之前 还有 一些 cubit, 一些 很多 的 桥 的 一些 攻击 事件。 那些 事件 他们的 各有 各 的 漏洞。 但是 最 主要 的 是 有 一些 verification 的 一些 验证 缺陷, 丢失 主要 就是 一个 对 校验 的 问题。 关于 桥 这 一方面 最 核心 的 一个 问题 就 校验 去 如何 去 证明 我 拥有 这笔 资产, 如何 证明 我在 另外 一条 链 上去 存 了 这样 一个 资产, 这 是一个 非常复杂 的 一个 问题。 然后 也有 很多 的 teg factor.
我 这边 其实 问题 大概 就是 问 的 差不多 了, 我 感觉 云南 回答 也 非常 详细 了, 谢谢 云南。 这 期 what nex 科技 早知道 就 到 这里 了。 听 完 之后 如果你 有 任何 的 想法, 欢迎 在 评论 区 里面 给 我们 留言。 我们 每 一条 都会 认真 的 看。 如果 你喜欢 我们的 节目, 请 记得 给 我们 五星 或者 好评, 分享 给 更多 的 朋友, 也会 对 我们 非常 有 帮助。 你 也可以 单独 写邮件 给我, 邮箱地址 是 听 T I N G at 声 点 F M, 我 都会 一一 回复。 同时 公众 号 和 微博 也可以 搜索 生动活泼, 声 是 声音 的 声, 节目 相关 的 更多 信息 会 在 公众 号 里 出现, 微博 和 公众 号 都 会有 不定期 的 福利 给 到 大家。
如果你 想要 跟 我们 更加 紧密 的 讨论 和 分享, 或者 是 想要 认识 和你一样 有 求知欲 的 新 朋友, 可以 加入 我们的 微信 群。 进入 听众 群 的 方法 是在 公众 号 文章 中 扫 码 添加, 或者 是 公众 号 后台 回复 科技 早知道 即可 获取 邀请码。 期待 你的 加入, 我们 下期 见。