撰文:周教授,深潮 TechFlow
“朋友,欢迎来到 Web3 的世界。”
想象一位从 2012 年穿越而来的用户,当你向他介绍 NFT、Defi、SBT、去中心化身份等新概念时,他必定会惊讶于 10 年来的飞速发展。
但如果这位朋友想要连接钱包体验一番,却发现弄丢私钥时,他可能会更加惊讶的发现:
10 年来我们对加密资产的管理和钱包的使用方式,仍停留在比特币诞生之初的蛮荒时代。
是的,私钥仍旧是那个不变的、脆弱的阿喀琉斯之踵。无论这些年钱包形态如何改变,对私钥的依赖丝毫未减。私钥一旦丢失,一切万劫不复。
同时,安全、妥善、合理的使用钱包变得颇具挑战。
往近了看,今年 8 月份 Solana上 的 Slope 钱包,因储存在服务器上的私钥和助记词泄露而导致了超 800 万美金的加密资产被盗;而回顾历史,一份来自 Chainalysis 的研究报告则显示,截止 2021 年约有 20% 流通中的比特币,因所有者不记得私钥而丢失。
也许聪明的圈内人,早已在各种安全教训中变的驾轻就熟;但对于想进入Web3世界的圈外新人,他们在入口处就会碰到拦路虎:
私钥、助记词和一般密码到底有什么区别?把一串单词抄在纸上是个什么操作?上哪找一个从不联网的电脑储存钱包文件?
对于普通用户来说,这完全谈不上是一个合格、友好、易懂的解决方案。更加夸张的是,直接外露底层技术来教育用户的方式,居然持续了十多年。
到底是什么决定了钱包今天的体验和使用方式?我们是否又还有更好的钱包解决方案可用?
当钱包作为 Web3 世界的首要入口,承载着用户身份、资产甚至声誉时,这些问题的答案,与我们每个人都利益相关。
本文将试图理清钱包的发展脉络,并对现行各类解决方案的优劣进行对比,同时尝试对以上问题做出回答。
历史并非一蹴而就,而是一个渐进演化的过程。
从蛮荒古早的比特币时代,到现在流行的 Web3,在整个行业十多年的变迁中,钱包也历经了形态的不断变化。
但所有的变化,都基于一个相对稳定的内核。
从技术角度来看,钱包的内核实际上是一个公私钥管理器。基于非对称加密等技术生成的私钥,意味着用户对钱包、地址(公钥)、资产的绝对控制权。
围绕着如何更好的保存和管理私钥,各种类型的钱包都曾交出过自己的答卷。而将这些答卷放在一起审视,一部钱包形态的变更史就会跃然纸上。
以史为鉴,可以知兴替。一次次形态变更的背后,也折射出钱包们的优缺点。
当我们试图拥有更好的钱包体验时,不妨看看从过去到现在都发生了什么。
在那个比特币仍属于小众实验的早期,整个行业都在野蛮生长。
无序、无畏中又带有一些无知,勇敢的弄潮儿们可能还没有完全理解钱包和私钥的概念,跳进加密世界的第一步可能就是在中心化交易所中跃跃欲试的买卖。
此时,钱包尚未被感知,交易所的账户更多的充当了钱包的角色:用户新建一个交易账户,其中会展示其拥有的资产金额和数量。
在这背后,你并不清楚这些数字是否真实对应着等额的加密资产。
往差了说,早期的交易所向你呈现的资产数量很有可能只是其数据库中凭空生成的字段;往好了说,交易所也会为你生成了一个单独的地址,方便记录该地址的加密资产收发情况。
实际上,这是一种最早的托管钱包。
交易所代劳,替你保管着钱包里的资产。你对资产的控制权并不来源于私钥,而是依赖于交易所的自律和守序。
这样做的好处是,你可以不考虑任何技术细节,方便直接的完成资产的管理、收发和买卖,只要记得登录密码就行;而缺陷也显而易见,一旦交易所宕机、拔网线跑路,你的资产可能也会随之消失。
2014 年,一度占据全球 70% 交易份额的古早交易所 Mt.Gox,宣称因黑客盗取了85万枚比特币暂停用户提现,随后宣布破产倒闭。而这件事也成为行业发展中一个挥之不去的阴影。
当代劳让你感知不到钱包,你也不会感知到风险的来临。
在交易所之外,早期拥有动手能力和技术背景的玩家们也在探索。
稍有年纪的读者对下面两张图一定不会感到陌生。Bticoin Core,一个古老的比特币钱包客户端软件,安装后甚至还可以选择同步所有比特币历史账本的数据;MyEtherWallet,一个网页端的以太坊钱包,可以通过网页完成钱包地址的创建和私钥的管理。
当今天的小狐狸(Metamask)网页插件钱包更加普及时,上面两位可能已经逐渐淡出视野。但它们都共同的指向了“软件钱包”这个概念:
基于电脑本地、浏览器或者手机等环境,以一种可视化的软件应用构建的钱包。
无论哪种软件钱包,用户都将直面私钥和助记词,并且承担着妥善保管和备份它们的任务。而在早期钱包中,有的甚至还会选择让用户备份 Keystore 文件——一份将私钥以加密形式保存的 JSON 文件,并且需要输入在钱包软件中设置过的密码才能解密。
私钥、助记词、钱包密码。
这三者的技术原理和区别可能时至今日仍有大量用户无法完全理解,将他们直接推向用户也显得过于原始和粗暴。
而这一切到底是怎么来的?
目前的软件钱包都基于公私钥体系和非对称加密,私钥是一切的命门,掌控私钥也就掌控了资产的控制权。
当用户自己直面钱包时,实际上体验已经经过了一轮优化:公钥通过转码变成了用户所看到的“钱包地址”,而私钥其实是 64 位长度的 16 进制字符,不利记录也容易记错,所以早在 2013 年,比特币社区就通过 BIP39 协议:用算法将私钥转换成了一串 12 ~ 24 个容易记住的单词,也就是我们今天常见的“助记词”。
但神奇的是,私钥和助记词体系在 10 年后的今天仍然没有太大的改变。你还是必须牢牢掌控着私钥,不可丢失,不可共享;同时也需要将助记词小心翼翼地抄在一张纸上。
当用户能够通过钱包掌控自己资产的命运时,却不可避免的面临着一个单点失败的担忧:如果私钥/助记词都丢了,那么一切都完蛋了。
而由于电脑、浏览器、手机等设备极易受到攻击,运行在其上的软件钱包又很容易成为靶子,保管私钥就成为了一个兼具心理压力和操作成本的事情。
据 CertiK 统计,2022 年至今因私钥泄露而造成的损失至少已有 2.74 亿美元,其中不乏例如 Wintermute 在内的行业专业做市商。专业机构尚会百密一疏,又何况普通用户?
古早时期留下的私钥/助记词体系,也许永远都是那颗会不定时引爆的炸弹。
当我们焦虑于如何更加安全的保管私钥时,硬件钱包出现了。
从用户视角看,硬件钱包就是一个单独的盒子。其中可以存储加密资产,在使用时需要将它连接到电脑等设备。
在使用软件钱包时,由于私钥文件大多时候保存在硬盘上,所以还是会有被攻击的风险。而硬件钱包直接将私钥文件被存储在了硬件钱包的芯片中,即插即用。这样一来做到了私钥与网络层的彻底隔离。
换言之,硬件钱包实际上创建了一个更加安全的私钥保存环境。但这并非没有代价。
想起硬件钱包,是否有点似曾相识?多年前网上银行转账需要配合U盾使用,也是同样的味道。
众所周知,U 盾逐渐退出了历史舞台,其中一个相当重要的原因就是操作步骤相对复杂。对比今天流行的移动支付,它显得笨拙且格格不入。
同样的道理也适用于硬件钱包。为了给私钥创造一个更加安全的离网环境,一个普通的用户在交易时,需要额外购入一种硬件来专事专用,并且同样需要学习如何操作以及妥善保管助记词。
某种程度上,使用硬件钱包的硬核程度,比起软件钱包有过之而无不及。
这并不是一种用户友好的普适解决方式。如果在安全和易用间极端的选择了前者,就注定意味着这只适用于少数人和少数场景。
同时,事实证明硬件钱包也非 100% 的安全。早在 2017 年,在美国拉斯维加斯举行的世界黑客大会 DEFCON 25 上,国外技术团队就向观众演示了如何破解比特币硬件钱包,过程最快不到 15 秒。
用硬件给私钥创建更加安全的保管环境,看起来并不能完全解决私钥本身的问题。
由远及近,我们能够看到在时间长河里,钱包的管理主体、用户界面、软硬件等都发生了更替和演化,同时也衍生出了不同的小赛道。
但不变的是,私钥仍然是令人担忧的症结。
将私钥的管理权交给用户,意义重大但责任更大,单点失败始终是我们心里的石头,同时也制约着圈外新用户大规模的进入、理解和体验。
做一个不恰当的比喻,抱着一块石头在不同的赛道中跑步,只要你担心石头会掉落,就难以跑出最快的成绩。
我们是否有办法,突破私钥的限制,让钱包解决方案更加易用和安全?
当大多数钱包仍被困在那个由古老的私钥/助记词筑成的围墙内时,早已有人开始了另一个维度上的突围尝试:
去掉私钥,去掉助记词。
这听起来有些离经叛道。当“私钥即安全”的理念深入人心时,去掉私钥反而让人觉得更加提心吊胆。
但恐惧源于未知。得益于 MPC(安全多方计算)技术和区块链签名的结合,一种无需私钥和助记词的MPC钱包已悄然出现。
在由圈内知名安全审计机构慢雾(Slowmist)出品的《区块链黑暗森林自救手册》中,作者余弦也提出,基于MPC的无私钥方案应该尽快普及。
在对 MPC 的技术原理进行深入研究后,我们发现去掉私钥并非是反直觉的。相反,它天然能够解决目前大多数钱包中因私钥所带来的风险。
那么,MPC 钱包解决方案的优势到底在哪里,体验又有何不同?
由于相关的底层技术较为复杂,在此我们将摒弃过多的技术细节,力求通俗的对上述问题做出回答。
让我们从两个熟悉的场景开始:钱包创建和交易。
当你创建一个传统钱包时,实际上会得到一对配套的公私钥。其中公钥通过某种转换形成了你的钱包地址,可以公开给其他人看;而私钥在自己手中,不可分享给他人。
接下来,你在钱包中发起了一笔交易。实际上你使用了自己的私钥对交易进行了签名并发出,即表示“我同意这笔交易”;其他人由于可以得到你的公钥(地址),可以很容易的验证确实是由签名发出,于是经过一系列验证后判定交易有效。
这时如果我拿到了你的私钥,那么我同样也可以通过该私钥签名来执行交易,从而转走你地址里的资产。
这里的问题在于,传统的钱包采用的是单方签名模式,对私钥安全性的依赖极高。我们只承认私钥的唯一性,而它的保管环境如何,背后是真正的主人或是小偷,无从识别。
而对于 MPC 钱包,情况稍有不同。
首先,钱包由多方共同创建。假设甲乙丙 3 方共同创建了一个钱包地址,基于多方计算密钥生成协议,此时并不会生成一个单独的私钥,而是3方各自都会拿到一份密钥碎片(keyshare)。
注意,3 方手上均不是完整的私钥文件,而是 3 份不同的密钥碎片。其中的任何 1 个碎片都不具备单独掌控钱包地址中资产的能力,但每1个碎片都对应着同样的钱包地址。
随后,在交易发起时多方安全计算和多方签名共同发挥作用。甲乙丙 3 方分别用自己所持的密钥碎片,对一笔交易进行签名,你可以通俗的理解为 3 份签名碎片。
类似多签钱包,你也可以设置一个签名阈值,例如 3 个人必须都进行签名,才能发起一笔交易。
此时,多方安全计算(MPC)会在不暴露每一份密钥碎片的情况下,对3份签名碎片进行汇总,从而形成一份完整的多方签名。其他人也可以轻易的验证这份完整的多方签名与钱包地址的对应关系,从而判定交易有效。
在上述 MPC 钱包场景下,你并不用担心私钥的单点失败问题。此时没有生成一个单独的私钥,而是将私钥分解成多个碎片并储存在不同的地方,即使你手上的那个碎片被盗取,他人也无法通过单个碎片来控制钱包内的资产;
同时,如果你发现密钥碎片丢失或者被盗,MPC 还可以执行密钥碎片的刷新功能:用新的密钥碎片,来替换每个人手上原有的密钥碎片。此时被盗或丢失的密钥碎片等于被“挂失”,失去了效力和价值;
最后,由于没有私钥的存在,你也不用再去尝试记下助记词,更不用担心相关的保管问题。
这样的解决方案与目前市场上依赖于助记词和私钥的钱包存在着技术上的明显不同,从“妥善保管私钥/助记词”,到“何必保管私钥/助记词”,一词之差可能会带来用户体验和安全层级上的巨大区别。
回顾钱包形态的发展史,再将 MPC 钱包纳入考量,可以发现它在私钥和助记词的顽症上的处理显得更加合理和安全。同时,随着相关产品的商用和推广,旧的钱包解决方案也许会不可避免的受到冲击。
钱包赛道里的新选手,正在从私钥和助记词的保管问题的高墙里突围。
若觉得概念抽象,从真实的MPC钱包产品入手可能更直观。
目前市面上面向普通大众日常使用的且成熟可用的 MPC 钱包并不多,我们从安全性、易用性、抗审查、隐私和多链生态兼容这 5 个方面进行多方对比后,认为 Bitizen 钱包是各方面综合处理得最好且方案最完善的。尤其是,它在不牺牲任何安全性(甚至还大幅提升安全性)、隐私和抗审查的前提下,将用户使用 Web3 钱包的体验直接提升到了跟 Web2 的产品一样的简单易用水平,这近乎完美地贴合了用户对一个 Web3 钱包的所有需求和想象。
与传统钱包创建时提醒抄写助记词形成对比,在 Bitizen 钱包的创建页面,我们没有看到任何关于私钥和助记词的提示。从点击创建到生成,不到 5 秒钟,非常丝滑。无助记词和私钥,也没有过多理解成本,即来即用。
Bitizen 同样会要求用户对资产进行备份,但不是助记词模式,而采用了常见的多因素认证:
用户验证自己的邮箱然后完成安全生物识别,确认多个特征与备份文件相关联,以便今后在任何时间任何地点都可以方便、安全地恢复资产;同时密钥碎片会被加密,用于解密的钥匙会被保存到仅由用户自己掌控的云盘内。多因素认证保障了任何其中一个因素被攻击都不会对整体安全造成任何影响。例如,即使解密钥匙本身被泄露,小偷会发现毫无作用,因为他无法与你的邮箱和生物识别等特征匹配,窃取本身变成了一种徒劳。
此外,Bitizen 在 MPC 多签设计上赋予了用户更大的自由度。
你可以选择新增一台设备设置成 2/3 模式,此时你的设备 1、设备 2 以及 Bitizen 服务器拥有 3 份碎片,其中任意两份合作即可确认交易。这也就意味着,你完全可以选择绕过 Bitizen 钱包的服务器,仅用自己的 2 台设备来创建一个联合签名来达成交易,完全掌控主动权。这就是除了安全性和易用性之外的又一个特性——抗审查。
你可能会觉得服务器、邮箱、生物识别和云盘等非常不 Web3、中心化,甚至会担心自己的隐私泄露,但在我们仔细了解 Bitizen 的设计方案细节后,发现其实际情况与直觉是完全相反的。
首先,这些让我们感觉非常中心化的要素在 Bitizen 中都被设计成是一种可替换的(而不是必须依赖的),即使它们出了问题也并不会对用户资产的安全性和可用性造成任何威胁。
其次,这些要素在 Bitizen 中都是被精心加密或脱敏处理,这些数据对于包括 Bitizen 在内的第三方都是无用的,仅有用户自己可以解密和看到,因此完全不用担心隐私泄露。
用 Bitizen 的资料中的描述来总结会更容易理解:即使是 Bitizen 的技术团队也无法得知是谁在使用 Bitizen 钱包,即使 Bitizen 的服务器端数据被黑客完全掌控,即使Bitizen 的服务器宕机、关停甚至是团队都跑路了,你的资产依然安全且依然可用,你的隐私也不会泄露。
Bitizen 和 Citizen 一词之差,似乎也包含着希望更多人成为 Web3 数字公民的宏大愿景;但我们却也总是在强调着,用户大规模进入 Web3 的世界尚需时日。
虽然罗马并非一天建成,但对年久失修的城门入口进行更新换代,才是实现愿景的可行之道。
类似 Bitizen 这类基于 MPC 技术的钱包不断出现,必然将重构用户走进 Web3 入口的方式和体验。没有私钥和助记词的困扰,更没有服务器作恶的后顾之忧,这才是钱包产品应该向用户呈现的姿态。
关于各类钱包的技术原理,一篇文章难以详尽的展示。我们将在 10 月 21 日联合 Bitizen 和其他钱包相关项目方、VC、行业 KOL 等嘉宾一起举办一个钱包的科普活动,用两个小时时间,为大家更加详尽的剖析各类钱包背后的技术原理,欢迎感兴趣的朋友通过如下链接扫码参与。
也许正如马克吐温所说,历史不会重复,但会押韵。那些不同的成功产品背后,都暗含着满足用户需求的相似韵脚。
当那个从蛮荒时代延续至今的私钥/助记词体系,对上逐渐展露头角的 MPC 钱包,
胜利的天平尚未明显倾斜,但一场关于 Web3 的入口革命也许即将开始。
深潮 TechFlow 是由社区驱动的深度内容平台,致力于提供有价值的信息,有态度的思考。
社区:
订阅频道:https://t.me/TechFlowDaily
推特:@TechFlowPost
进微信群添加助手微信:blocktheworld