


























👨🚀 Glaze & Jasmine:台风来了,大家注意安全
如果你喜欢本期内容,不妨在阅读后给我们点个 ❤️ ,并在下方订阅 un.Block Weekly ⬇️

不同于常见的闪电贷攻击事件,AnySwap 这次的安全事件颇为新颖
AnySwap 这次的漏洞在于意外的两笔交易使用了相同的 R 值签名。攻击者从中成功还原出了管理员账户的密钥。
在以太坊交易中,我们将交易中特定数据子集的哈希值用用户的私钥进行签名。其他人可以通过用户的公钥对签名进行认证。以太坊上的签名由 R,S,V 三个值组成。R 和 S 是 ECDSA 签名的输出。V 是 Recover Id,为 1 或者 ,用来辅助校验签名。

由于 AnySwap 客户端升级,一个随机数 K 被使用了两次,这导致两笔不同的交易具有相同的 R。由于签名的信息不同,可以推导出随机数 K。再加上已经知道的公钥,我们就可以得出私钥。
假设第一笔交易的签名为 r1,s1。第一笔交易签名的信息是z1。第二笔交易的签名是r2,s2。第一笔交易签名的信息是z2。由于在这个例子中,r1 = r2,我们用 r 来表示它们。通过这个公式我们可以推导出私钥。


不要把 Oracle 理解成 “甲骨文”,或者数据库 🤣
上段时间我们的保姆级教程栏目有些偏航,讲了不少关于保险和 NFT 的内容,本期我们回归正道,继续学习一些区块链世界中的基础概念 —— 预言机。(本期内容承接 2021 #7 的流动性挖矿)
预言机是一个向区块链提供外部信息的链下服务,它扮演着连接区块链和外部世界的角色。
虽然智能合约解决了人与人之间的信任交互问题,但区块链是一个确定的、封闭的系统环境,区块链只能获得链上的数据,却无法获取到链下的真实世界的数据。
举个例子,张三和李四通过智能合约打赌,2020 东京奥运会开始的一周内 A 国的奖牌数量会不会突破 50 枚。张三觉得会突破 50 枚,李四认为不会,他们为这个赌约下注 100 UNB 币,下注的代币被锁在智能合约中,智能合约会根据最后的结果将代币转账到获胜一方的钱包中。
问题来了,智能合约无法获取真实世界的数据,它又怎么能知道 A 国到底有多少奖牌呢?
因此,我们需要 预言机 (Oracle) 来完成这项工作。

继续我们的例子,每天,智能合约都会通过 预言机 来查询 A 国奖牌数量,智能合约向预言机发起一个查询请求,预言机调用东京奥运会奖牌榜的官方数据接口,获取到 A 国奖牌数量后,将数据返回给智能合约。获取到奖牌数据的智能合约就会执行相关操作,判断赌约的获胜者是张三还是李四。
在这个打赌的例子中,预言机 充当了一个传话者的角色。假如没有了预言机,张三和李四之间的打赌无法实现。
上面我们说到,预言机通过东京奥运会奖牌榜的官方数据接口来获取 A 国的奖牌数据,但这个数据接口的数据是真实可靠的吗?万一网站数据出错了呢?万一预言机被张三劫持了,提供虚假数据呢?这些都是有可能发生的,区块链世界中也发生过预言机被攻击的安全事件。因此,我们需要对预言机进行缜密、安全的设计,确保数据的可靠性和真实性
总而言之,预言机是去区块链的重要一环,它为区块链打开了一扇通往外部世界的窗户。
下期我们来了解一下目前主流的预言机项目。

狗狗和马斯克;Openzeppelin 新产品;好看的钱包管理软件
💻 Website: unblock256.com
✈️ Telegram: un.Block Weekly
🕊️ Twitter: @unBlock256
📧 Email:[unblocketh@gmail.com](mailto:unblocketh@gmail.com)
视觉设计:Jenny
特别鸣谢:
本文非商业目的转载授权遵循 CC BY-NC 4.0 协议
版权所有 ©️un.Block 2021
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。