ZeroWallet利用零知识证明(Zero Knowledge Proof)的方式来强化私钥保护,希冀提供脑钱包的便利性与多签钱包的安全特性。本钱包专案是一位在UIUC暑假实习的高中生Aman Ladia在Andrew Miller教授的指导下完成的作品,以下是展示与源码:
Demo: https://app.zerowallet.me/ ( video )Source code: https://github.com/amsee01/ZeroWallet操作方式如果进入到该钱包的demo 页面,会如下图所示:
使用者透过输入
使用者帐号自订的密码一(Password 1)自订的密码二(Password 2)结果:产生用于以太坊钱包的一组私钥及一个share (如图)
ps. 这个demo 只是PoC,证明私钥产生与还原的可行性,并不是真正的钱包应用,但概念上有许多有趣的部分
为了较好理解本文介绍的ZeroWallet,我们先从几种私钥产生的方式与演进,了解其优缺点及背后设计的动机。至于为什么私钥的产生与保管如此重要,本文暂不赘述,可以简单理解为在密码货币(Cryptocurrency) 的世界,私钥代表唯一能够动用钱包资产的钥匙(授权),同时亦扮演着身份(认证)。
第一种:透过随机数(Entropy) 产生这类私钥的产生方法,通常牵涉到产生乱数,而透过该乱数混乱的程度产生一把具有固定长度的私钥,如下图。而私钥产生后,由于它代表你个人资产的授权与认证关系,故私钥一但掉了,也意味着,你的资产将再也回不来。
不同于传统的网页登入密码,你需要记住的是一串64 个字元的十六进位数字,除非你有过人的记忆力,否则通常最好的保存方式是抄在纸上护贝起来,并藏在安全的地方。
与第一种方式不同于,乱数会转成人类易读的助记词(红色部分),例如12 个单字,好处在于若是要抄写十六进位的字元时,容易搞混,而单字也比较不会抄错。如此一来,只要知道助记词如何转换到私钥的计算过程,就可恢复私钥,同时让抄写或输入的部分减少人工的错误。这也是目前手机钱包或硬体钱包中,常见的做法。
这边要提到一种古老的秘密分享技术,Shamir's Secret Sharing (SSS),该种技术可将一个秘密(Secret),根据他的设定拆分成t-of-n的规则,即当你有n个share时,只要拿到任意t份(门槛),就可还原既有的秘密,下图是一个2-of-3的例子,每个蓝色框框里的数值称作share,拿到任意两份就可回推黑色的秘密(私钥)。
与上述两种方法相比,这样设计的好处是一但助记词或私钥遗失,不会立即遭受损失。因为三份share 的其中一份,可以放在保管箱或其他安全地方,用于备份,并且另外两份share 也可放在异地,使有心的窃盗人士要一次性盗走的困难度增加。
但更重要的是,这类需要多个share 来还原秘密的方式,在policy 的设计上也较有弹性。例如share 1 & 2 分别给A & B 两人,每次交易时,A 必须拿出share,并由B 检查交易内容正确无误,才拿出B 的share 来完成交易,相较之前的方式多了再次确认与检查的特性。(类似银行层层签核的流程)
了解第三种私钥的产生方式后,我们能否透过预先计算的Share 来还原私钥?而不是先有私钥,才来计算如何拆分share,这是本专案作者的切入点。
稍微调整计算的步骤后,如下图所示。先前,我们提到,如果share 保管在异地,那么要同时偷走可用share 的难度就会变高。因此,作者将其中一个share 托管给服务商,并且需要同时拿到使用者的密码与服务器的秘密才能够还原share 2。至于share 1 则由使用者自己保管,share 3 做为备份,当使用者自己不慎遗失share 1 或是服务商不慎弄丢使用者的share 2 时,可用于复原私钥。
除此之外,对使用者来讲,需要记住的是使用者帐号与两组一开始设定的密码,而不是冗长的私钥,亦不是12 单字的助记词,比较符合传统的使用体验。
有了SSS 的概念与初步背景介绍后,接下来的挑战是,如何设计share 2 的产生方式?
服务器端会针对不同使用者存一个Secret。如何让服务器端无法知晓share 2 如何产生?这边会利用到OPAQUE的算法,OPAQUE本身是一种PAKE (Password Authenticated Key Exchange)协定的演算法,用于以密码验证的金钥交换协议。
工作原理首先,要理解工作原理之前,需了解不经意伪随机协议(Oblivious Pseudo-Random Function, OPRF)。OPRF 在此主要是生成一个随机乱数,而OPRF 函数的输入来自两个不同方,属多方计算(MPC) 的一种应用,两方的人彼此不知道输入的值是什么,但仅有一方能知道结果。
这对于share 2 的产生有很大的帮助,原因是:
使用者并不想同时储存share 1 与share 2,想委任第三方托管。使用者又不想托管方知道share 2 的产生方式。如果没有使用者的参与,仅有托管方的部分讯息是无法计算share 2。托管方即使掉了参与用的讯息,或是讯息被中间人调包,只会造成使用者生不出share 2 或是产生错误的值,使用者仍保有备份的share 3 可用于还原,但托管方无法学习任何有用的结果,亦即此处零知识证明的用途。下图是share 2 产生的过程,左边是使用者,右边是服务器,红色代表秘密,仅能握有秘密的一方才能知道,即便是中间人都不该拿走秘密值。
Step 1. User -> Server使用者端会产生一组随机数r,并且设定一组使用者密码,仅有使用者才知道这两个秘密。(注:在2-of-3 的情况下,也许先有share 才还原secret 也许可行(线性),但在3-of-5 (二次式)或更高次时,不一定能够直接由share推回secret)
Share 的储存为了分开share 的存放,Share 1 则由使用者自己保存,Share 2 只在每次交互时才产生,Share 3 则可离线备份或藏在安全的地方,如此,即完成ZeroWallet 产生私钥与互动的过程。
小结整个wallet 的运作与流程如上,是个非常有创意的方法,透过传统密码的记忆来产生私钥,让使用者毋须记忆冗长的私钥,并透过多方计算的方式,让私钥必须借助多个share的组装才能进行还原,并且有recover 的概念,让离线备份的share,在Server 无法使用的情况下,可用于还原。
这是个有趣的作品,但值得注意的是,使用者在拿到足够share 之时,即可组出私钥,甚至当下可记住私钥。换言之,在使用的过程中,仍有私钥被组出的可能性,即使他的安全性相对只存私钥的作法更佳。
私钥的保管与防护,在区块链上一直都是重要的研究挑战,不论是在安全性或在使用体验上,都与传统的密码登入有所不同,更重要的是,私钥代表着资产,不像传统上忘记密码就请求重送般简单。
门槛式签名安全的多方计算( Secure Multi-Party Computation , sMPC)以及门槛式密码学( Threshold Cryptography )都是密码学上已有但古老的技术,透过门槛式签名的方法(Threshold Signature Scheme, TSS),让我们可在不还原私钥的任何情况下,每次产生一组针对同一地址的合法签名(Signature),进而保护私钥安全,由于私钥并不会存放在任何资料库,并且多个share分散在不同Server,而增加攻击困难度。除非多个资料库同时被骇,且攻击者取得足够的share,以及知道组装的手法,才有可能被还原回来。细节就暂不叙述。门槛式签名的方法与研究,是目前本团队(AMIS)已有且用于钱包服务上的技术。
以上就是ZeroWallet钱包介绍的全部内容,望能这篇ZeroWallet钱包介绍可以帮助您解决问题,能够解决大家的实际问题是塔岸网一直努力的方向和目标。
近年来,区块链技术不断发展,越来愈多的虚拟货币开始受到关注,而TWT币则是其中之一,Trust Wallet是一家加密货币钱包提供商,于2017年成立,最初是为以太坊提供支持的移动钱包应用程序,那么 TWT币未来前景怎么样?TWT币值得投资吗?TWT币未来前景怎么样?技术优势与发展潜力TWT币作为基...
10-27
加密货币继续成为市场焦点,这也为加密对冲基金打开了大门,某些对冲基金正在大量购买加密证券,这个新市场在主要银行、公司和投资者的支持下继续增长。加密货币对冲基金是什么意思?加密货币基金的建立允许与加密货币和数字资产相关的投资活动,加密货币基金通常是指风险投资或加密货币对冲基金,尽管存在交易所交易基金 ...
10-27
Shambala元宇宙是一个创作者生态系统,该项目在将玩家转变成创作者的同时,还推动了玩家对于整个游戏的扩展,并且还推动整个生态系统进化成为一个全新的虚拟游戏世界,BALA币就是这个生态系统的核心货币。BALA币发行量和流通量分析据小编调查得知,BALA币的发行总量为2,368,000亿枚,流通量为...
10-27
YGG币的英文全称是Yield Guild Games,它是a16z投资的一种NFTDIAbigail,a16z就是Andreessen Horowitz的简称,而Andreessen Horowit是硅谷最知名VC之一,这家公司2018年成立专门的区块链投资基金,现在已经成为了加密货币领域最知名投...
10-27
XCAD币的英文全称是XCAD Network,其实Xcad Network是一个能够为创作者提供DeFi工具的平台,该平台能够将每个创作者的观众及其内容的参与度进行通证化,并以此来创建一种激励经济。Xcad这一网络还能够为创作者提供一些独家的NFT市场,帮助创作者们来一键创建稀有版和限量版的NFT...
10-28