今年,各大公司也纷纷沾染数字货币,前有摩根大通,后有脸书,前几天,在苹果每年一度的wwdc开发者大会上,苹果发布了新的 CryptoKit,接着各大币圈媒体报道,揣测这事情一定和加密货币有关,那么是否真的有联系,苹果公司是否会沾染区块链与加密货币?

苹果在刚刚举行的全球开发者大会(WWDC 2019)中发布了新的「CryptoKit」框架。通过该框架,软件开发者可以在苹果即将发布的新系统 iOS 13,macOS 10.15 和 tvOS 13 中,安全和高效的执行特定的加密货币算法。

苹果发布的 CryptoKit 和密码学有关,但与密码货币无关

这个消息让币圈的朋友兴奋了一下子。

众所周知,加密货币算法是区块链技术得以实现的重要根基,所以这件事在加密货币社区也引起了不小的反响,甚至有夸张的言论说苹果可能会开发数字货币包。但事实上,CryptoKit 和密码学有关,意味着未来可能会支持越来越多的算法和提供更多的硬件加密货币方案,但这与密码货币关系不大。

被币安收购的Trust钱包的创始人 Viktor Radchenko 在苹果发布 CryptoKit 后评测:

苹果发布的 CryptoKit 和密码学有关,但与密码货币无关

离把你的手机变成一个硬件钱包仅有几步之遥了。

但另一名区块链开发者Ronald Mannak却泼了一盆冷水:

苹果发布的 CryptoKit 和密码学有关,但与密码货币无关

  • CryptoKit 是一个「密码学」的框架,但并不是「加密货币」的框架。 CryptoKit 的发布并不能暗示苹果正在改变对加密的态度;
  • 苹果之前已经有了一个密码学框架「CommonCrypto」,但 CryptoKit 更强大一些。CryptoKit 是一个对 Swift 编程语言更友好的框架,并且包含了更多的哈希算法,比如说众望所归的 SHA256;
  • CryptoKit 的功能并不一定需要「Secure Enclave」协处理器(目前在售的 iOS 设备和部分 Mac 支持);
  • 与 Common加密货币框架类似,如果设备未集成 Secure Enclave,CryptoKit 就会回退并使用苹果设备内置的「钥匙串 | Keychain」功能处理加密货币算法作为替代;
  • 从目前的开发文档中可以看到 Secure Enclave 仅支持 secp256r1 (也叫 prime256) 这一种椭圆曲线,并不是比特币、以太坊和其他区块链常用的 secp256k1。除非以后硬件升级,否则你的 iPhone 是不可能变成一台硬件钱包的。

苹果发布的 CryptoKit 和密码学有关,但与密码货币无关

  • 再者,就算 CryptoKit 支持区块链常用的 secp256k1,那通过 CryptoKit 生成的私钥也是没办法被 Secure Enclave 的外部所读取的。你可以(通过 CryptoKit)使用这个私钥生成公钥或者执行消息签名,但你永远无法获得私钥本身。所以也就没办法备份这个私钥,这个限制可能会非常不方便钱包的使用场景。
  • 对 Swift 开发者而言 CryptoKit 是一个很好的新功能,但这并不是加密货币社区所想要的那种翻天覆地的变化。

在 CryptoKit 中,苹果加入了一些常用的加密货币算法。在开发文档中,苹果是这样介绍的:

使用 CryptoKit 执行常用的加密货币算法:

  • 计算和对比安全摘要
  • 使用「非对称」加密货币算法创建和对比数字签名,或执行交易所公钥的操作
  • 除了可以在内存中储存密钥,也可以在「Secure Enclave」中储存并管理私钥
  • 创建「对称」密钥,并执行消息的验证或加密货币等功能
  • 相比底层接口,更推荐使用 CryptoKit 框架。CryptoKit 可以替开发者管理指针,自动处理那些可以让 App 更安全的任务,比如在内存释放期间覆盖敏感数据

再仔细看文档中所支持的加密货币算法,大多是由美国国家标准技术研究所 (NIST) 发布的通用和标准的加密货币算法。

包含:

  • AES-GCM 对称加密货币算法
  • ChaCha20-Poly1305 对称加密货币算法
  • HMAC 消息认证算法
  • 第二代安全哈希算法 SHA-2 系列,包含 SHA-512,SHA-384,SHA-256
  • 非对称加密货币算法(又称公钥加密货币算法),包含 Curve25519,P-521,P-384,P-256 这四种椭圆曲线

而且开发者可以调用 Secure Enclave 自带的 P-256 算法进行硬件加解密。

Secure Enclave(安全区域)是 Apple A7 (初次集成在 iPhone 5S 中,用以保证「触控 ID」的安全性)或更高版本 A 系列处理器中集成的协处理器,它为数据保护密钥管理提供所有加密货币操作,即使在内核遭到入侵的情况下,也可维护数据保护的完整性。而且在 Secure Enclave 内部生成的密钥使用真正的硬件随机数生成器。

虽然比特币使用了许多和密码学相关的算法,但最重要的至少会包含这两个:SHA-256,secp256k1。

  • SHA-256 是第二代安全哈希算法,比特币也在不止一处使用了该算法,比如在计算工作量证明的时候 (PoW)
  • secp256k1 是非对称加密货币算法中的一种椭圆曲线,比特币的私钥可以通过该算法生成对应的公钥

非常可惜的是,Secure Enclave 支持的 P-256 的椭圆曲线是 secp256r1,而不是比特币采用的 secp256k1。这也就意味着无法将现有的苹果设备变成一台硬件钱包。就算还是可以在苹果设备上开发软件钱包,但也是用不到这个 CryptoKit 框架的,需要开发者自己实现或者使用第三方代码库。

CryptoKit 还处于 Beta 阶段,而且这也是苹果发布的第一个版本而已,所以这仅仅只是一个开始。

苹果专门独立出一个框架用以处理密码学相关的算法,是一个值得肯定并会影响深远的决策,未来可能会支持越来越多的算法和提供更多的硬件加密货币方案。但以现阶段的细节来看,对区块链技术的普及还是比较有限的。

有意思的是,CryptoKit 和 CryptoKitties ( 迷恋猫,一个曾经最热门的基于以太坊的收集类游戏)相比只多了最后的 ties 这四个字母,也许这也是为什么 CryptoKit 和币圈有关系的理由。

参考介绍 Secure Enclave 的文档:

https://www.apple.com/cn/iphone/business/docs/iOSSecurityGuide.pdf

苹果专门独立出一个框架用以处理密码学相关的算法,是一个值得肯定并会影响深远的决策,未来可能会支持越来越多的算法和提供更多的硬件加密货币方案。但以现阶段的细节来看,对区块链技术的普及还是比较有限的。

撰文:潘致雄

来源链接:mp.weixin.qq.com