塔岸网

ZeroWallet钱包介绍

热度:17℃ 发布时间:2023-11-04 11:43:50
背景介绍

ZeroWallet利用零知识证明(Zero Knowledge Proof)的方式来强化私钥保护,希冀提供脑钱包的便利性与多签钱包的安全特性。本钱包专案是一位在UIUC暑假实习的高中生Aman Ladia在Andrew Miller教授的指导下完成的作品,以下是展示与源码:

Demo: https://app.zerowallet.me/ ( video )Source code: https://github.com/amsee01/ZeroWallet操作方式

如果进入到该钱包的demo 页面,会如下图所示:

 ZeroWallet钱包介绍登入画面

使用者透过输入

使用者帐号自订的密码一(Password 1)自订的密码二(Password 2)

结果:产生用于以太坊钱包的一组私钥及一个share (如图)

ps. 这个demo 只是PoC,证明私钥产生与还原的可行性,并不是真正的钱包应用,但概念上有许多有趣的部分

 ZeroWallet钱包介绍输入使用者帐号,以及两组密码,产生私钥与备份用的share私钥产生方法

为了较好理解本文介绍的ZeroWallet,我们先从几种私钥产生的方式与演进,了解其优缺点及背后设计的动机。至于为什么私钥的产生与保管如此重要,本文暂不赘述,可以简单理解为在密码货币(Cryptocurrency) 的世界,私钥代表唯一能够动用钱包资产的钥匙(授权),同时亦扮演着身份(认证)。

第一种:透过随机数(Entropy) 产生

这类私钥的产生方法,通常牵涉到产生乱数,而透过该乱数混乱的程度产生一把具有固定长度的私钥,如下图。而私钥产生后,由于它代表你个人资产的授权与认证关系,故私钥一但掉了,也意味着,你的资产将再也回不来。

不同于传统的网页登入密码,你需要记住的是一串64 个字元的十六进位数字,除非你有过人的记忆力,否则通常最好的保存方式是抄在纸上护贝起来,并藏在安全的地方。
ZeroWallet钱包介绍

第二种:透过助记词(Mnemonic Phrase) 产生

与第一种方式不同于,乱数会转成人类易读的助记词(红色部分),例如12 个单字,好处在于若是要抄写十六进位的字元时,容易搞混,而单字也比较不会抄错。如此一来,只要知道助记词如何转换到私钥的计算过程,就可恢复私钥,同时让抄写或输入的部分减少人工的错误。这也是目前手机钱包或硬体钱包中,常见的做法。

 ZeroWallet钱包介绍第三种:透过秘密分享(Secret Sharing) 技术产生

这边要提到一种古老的秘密分享技术,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 来完成交易,相较之前的方式多了再次确认与检查的特性。(类似银行层层签核的流程)

 ZeroWallet钱包介绍第四种:透过预先计算的Share 还原产生

了解第三种私钥的产生方式后,我们能否透过预先计算的Share 来还原私钥?而不是先有私钥,才来计算如何拆分share,这是本专案作者的切入点。

稍微调整计算的步骤后,如下图所示。先前,我们提到,如果share 保管在异地,那么要同时偷走可用share 的难度就会变高。因此,作者将其中一个share 托管给服务商,并且需要同时拿到使用者的密码与服务器的秘密才能够还原share 2。至于share 1 则由使用者自己保管,share 3 做为备份,当使用者自己不慎遗失share 1 或是服务商不慎弄丢使用者的share 2 时,可用于复原私钥。

除此之外,对使用者来讲,需要记住的是使用者帐号与两组一开始设定的密码,而不是冗长的私钥,亦不是12 单字的助记词,比较符合传统的使用体验。

 ZeroWallet钱包介绍研究挑战

有了SSS 的概念与初步背景介绍后,接下来的挑战是,如何设计share 2 的产生方式?

服务器端会针对不同使用者存一个Secret。如何让服务器端无法知晓share 2 如何产生?

这边会利用到OPAQUE的算法,OPAQUE本身是一种PAKE (Password Authenticated Key Exchange)协定的演算法,用于以密码验证的金钥交换协议。

工作原理

首先,要理解工作原理之前,需了解不经意伪随机协议(Oblivious Pseudo-Random Function, OPRF)。OPRF 在此主要是生成一个随机乱数,而OPRF 函数的输入来自两个不同方,属多方计算(MPC) 的一种应用,两方的人彼此不知道输入的值是什么,但仅有一方能知道结果。

这对于s​​hare 2 的产生有很大的帮助,原因是:

使用者并不想同时储存share 1 与share 2,想委任第三方托管。使用者又不想托管方知道share 2 的产生方式。如果没有使用者的参与,仅有托管方的部分讯息是无法计算share 2。托管方即使掉了参与用的讯息,或是讯息被中间人调包,只会造成使用者生不出share 2 或是产生错误的值,使用者仍保有备份的share 3 可用于还原,但托管方无法学习任何有用的结果,亦即此处零知识证明的用途。

下图是share 2 产生的过程,左边是使用者,右边是服务器,红色代表秘密,仅能握有秘密的一方才能知道,即便是中间人都不该拿走秘密值。

Step 1. User -> Server使用者端会产生一组随机数r,并且设定一组使用者密码,仅有使用者才知道这两个秘密。
(注:使用者每次向server请求协议的执行,r每次不一样)利用杂凑函数计算密码的杂凑。将密码的杂凑值作为椭圆曲线上的x座标,找到对应椭圆曲线上的y座标,即将杂凑值化成一个座标点(x, y),并以该点P作为生成元(generator)。
(注:将杂凑值化为点座标要有点技巧,不是每个x座标在椭圆曲线上都有对应的y值)计算α,基于离散对数(Discrete Logarithm) 问题的假设,若不晓得r,要从α 与P 还原r 是非常困难的,接着将α 送给server 端。Step 2. Server -> UserServer 端针对每一使用者,挑选一个秘密值Ks,并保存在其资料库。假设Server 端某种方式知道使用者的ID,便可从其资料库取出Ks。Server 端接着利用使用者传过来的α 与自己才知道的Ks 计算β,并传给使用者。由于要解开β 的Ks 也是离散对数问题,使用者并不晓得Ks 是什么,传输过程中他人也无法知晓。Step 3. User -> Server待使用者收到来自Server 端计算的β 值后。使用者会计算r 在椭圆曲线上的反元素m。并利用m计算rw。
(注:推导过程如图,可注意到过程中r和r的反元素会消掉,因此即使每回合使用者选择不同的r,都不会影响最后share 2的生成)最后,使用者利用自己设定的密码(pw) 与rw,计算杂凑值作为share 2 的结果。产生其他shareShare 1:使用者一开始会设定两组密码,其中一组密码(pw1) 的杂凑值即为share 1。Share 2:使用者利用另外一组密码(pw2) 与每次挑选的随机数r,与Server 交互后所得的结果。Share 3:在已知Share 1 与Share 2 的情况下,利用SSS 还原secret,并计算share 3,又或是利用内差取另外一个值。

(注:在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 之时,即可组出私钥,甚至当下可记住私钥。换言之,在使用的过程中,仍有私钥被组出的可能性,即使他的安全性相对只存私钥的作法更佳。

私钥的保管与防护,在区块链上一直都是重要的研究挑战,不论是在安全性或在使用体验上,都与传统的密码登入有所不同,更重要的是,私钥代表着资产,不像传统上忘记密码就请求重送般简单。

门槛式签名 ZeroWallet钱包介绍Threshold Signature

安全的多方计算( Secure Multi-Party Computation , sMPC)以及门槛式密码学( Threshold Cryptography )都是密码学上已有但古老的技术,透过门槛式签名的方法(Threshold Signature Scheme, TSS),让我们可在不还原私钥的任何情况下,每次产生一组针对同一地址的合法签名(Signature),进而保护私钥安全,由于私钥并不会存放在任何资料库,并且多个share分散在不同Server,而增加攻击困难度。除非多个资料库同时被骇,且攻击者取得足够的share,以及知道组装的手法,才有可能被还原回来。细节就暂不叙述。门槛式签名的方法与研究,是目前本团队(AMIS)已有且用于钱包服务上的技术。

以上就是ZeroWallet钱包介绍的全部内容,望能这篇ZeroWallet钱包介绍可以帮助您解决问题,能够解决大家的实际问题是塔岸网一直努力的方向和目标。

  • 区块链推荐
更多+
香港HashKey交易所正式上线App,平台币HSK或在明年年中

香港HashKey交易所正式上线App,平台币HSK或在明年年中

香港持牌加密货币交易所HashKey Exchange 周三(1日)正式推出行动端应用程序,为专业投资人和零售用户提供服务。HashKey 营运长Livio Weng 受访表示,HashKey 还计划铸造自己的ERC-20 应用型代币HSK,可能会在明年年中上市。App 正式上线根据《The Blo...

11-15

Sushi社群起义要求归还代币分润权,SUSHI过去一周涨超

Sushi社群起义要求归还代币分润权,SUSHI过去一周涨超

Sushi 社群成员在治理论坛发布提案,拟议恢复SUSHI 代币的价值与功能,并让DAO 重新掌握协议治理权。Sushi 社群起义重拾治理权社群成员Trantor 表示,自从Kanpai 2.0 于2022 年12 月推出以来,所有协议费用都流入国库,尽管这有助于确保国库能够获得充足的资金,但核心团...

11-15

继贝莱德之后,景顺的比特币ETF也在DTCC上架,股票代

继贝莱德之后,景顺的比特币ETF也在DTCC上架,股票代

继贝莱德的IBTC 之后,景顺(Invesco)与Galaxy 共同提交的比特币现货ETF 也在美国证券存托清算公司的清单(DTCC)上架,股票代码为BTCO。标志着这两档ETF 申请正朝着标准程序持续推进。需要再次重申的是,许多人甚至会误将「上架DTCC」视为比特币现货ETF 批准的预告,但事实上...

11-15

OKX POR 一周年里程碑事件回顾:创下多个里程碑

OKX POR 一周年里程碑事件回顾:创下多个里程碑

由于传统金融体系缺乏信任而诞生的加密行业,逐渐崭露头角,并引发了人们的思考以及全球范围内的广泛关注,迄今已经成长为万亿美元市场。但作为没有任何参考的新兴行业,加密市场为传统金融市场带来创新与注入活力的同时,各种突现的黑天鹅事件也不容忽视,合规透明正成为其未来发展的主旋律。作为全球领先的加密资产交易所...

11-15

Bitfinex被列入英国FCA未经授权警告名单

Bitfinex被列入英国FCA未经授权警告名单

根据英国金融行为监理总署 (Financial Conduct Authority, FCA) 官方公告显示,知名交易所 Bitfinex 被列为未经当局授权的警告名单。FCA:Bitfinex 在未经授权下推广英国金融行为监理总署 (Financial Conduct Authority, FCA...

11-15

网友评论
评论
发 布

更多区块链