Blog
钱包 Recovery 机制介绍(下):Recover 合约钱包
作者:Nic Lin @imToken Labs
校对:imToken Labs
封面来源:rawpixel.com @freepik
适合读者:一般区块链钱包使用者
先备知识:
了解智能合约
知道 EOA(External Owned Account)及合约帐户的不同
以下将视「帐户」或「钱包」两个词为同义并将交互使用;另外「Contract Account」、「Contract Wallet」也会视为同义,都是指「合约钱包」。
合约钱包的 Recovery 机制
相比于 EOA 的控制权就是那一把私钥,合约钱包的「控制权」可以非常复杂且多元,因为它是透过智能合约实现。举一个基本的合约钱包 Recovery 机制为例,这个合约钱包里有两个角色,分别是 Owner 与 Guardian。当 Alice 建立自己的合约钱包时会指定自己的地址为 Owner,并指定 Bob 的地址为 Guardian。当 Alice 遗失自己的私钥时,她可以请 Bob 去触发她的合约钱包,将 Owner 更新成她的新地址。
Guardian 可以将 Owner 换成其他地址
当 Alice 遗失私钥时,可以请 Bob 帮忙更新钱包 Owner 为新的地址
可以看到合约钱包的 Recovery 机制并不是真的找回 Owner 原本的私钥,而是找回合约钱包的控制权,确保使用者还能继续使用合约钱包就好。这是因为 EOA 的控制权和其私钥完全绑定,但合约钱包的控制权不需和某一把特定私钥绑定,而是可以任意切换。只要合约里规则定好,控制钱包的私钥都能随时进行更换。
和利用 SSS 的 Recovery 机制比较
利用 SSS 的 Recovery 机制可以参考上一篇的备份部分私钥。以下为了方便比较,会将 SSS 中负责保管 Share 的角色也称为 Guardian。
相同之处:必须要信任 Guardian
使用者必须相信 Guardian 在需要执行 Recovery 的时候会提供帮助、相信 Guardian 不会在未经允许的情况下执行 Recovery 并拿走钱包控制权。在合约钱包中 Guardian 会被授权可以将 Owner 设置为另一个地址,好让 Owner 在遗失私钥时可以透过 Guardian 协助更新 Owner 地址来拿回钱包控制权。但这也表示 Guardian 有权利来将 Owner 设置为任意地址,所以使用者必须相信 Guardian。
注:合约钱包没办法知道 Owner 是否真的遗失私钥,它只能按照它写好的规则执行:如果 Guardian 来执行 Recovery,它就相信 Owner 真的遗失私钥了。
合约钱包没办法识别 Owner 私钥是否真的遗失。Guardian 请求更新 Owner,合约钱包就会执行
相同之处:可以有多个 Guardian
如果使用者不相信单一个 Guardian,他也可以同时设置多个 Guardian。和 SSS 中一样,合约钱包也会设定一个门槛值 t,要有超过 t 个 Guardian 授权才可以执行 Recovery。
相同之处:可以设定 Share 或 Guardian 权重
和 SSS 可以为 Share 指定权重一样,合约钱包也可以让使用者指定每个 Guardian 的权重,例如 Alice 为自己的家人都指定 100 的权重,为自己的好友指定 50 的权重,为工作同事指定 10 的权重。所以如果门槛值 t 设为 100 的话只需要一位家人参与;如果是好友的话就需要两位;如果是好友加上同事的话就需要一位好友加上五位同事。
Guardian 权重及各个可以超过门槛值的 Guardian 组合
不过要注意权重这个设计带来弹性,但相对地在评估安全性会更复杂。例如每次当使用者新增或移除一位 Guardian、调整某位 Guardian 的权重,或调整门槛值 t,他都要评估过一次所有Guardian 彼此的不同组合,看是否会导致原本预期的某些组合从「足够权重可以还原」变成「权重不够还原」,或是从预期「权重不够还原」变成「足够还原」,破坏原本使用者的安全假设。
新增一个 Guardian (Grace),造成新的三组可以超过门槛值的 Guardian 组合
调整一个 Guardian (Bob) 的权重,造成一组旧的组合无法超过门槛值
调整门槛值 t,造成新的五组可以超过门槛值的 Guardian 组合
不同之处:SSS 的 Share 永久有效
前一篇用 SSS 将私钥分片并分配 Share 给不同 Guardian 的方式有一个缺点是:Share 是永久有效的,除非使用者换一把私钥。这表示虽然攻击者黑进了其中一个 Guardian 并拿到一份 Share,虽然还不足以还原出完整私钥,但攻击者可以持续发动攻击去拿到其他份 Share,直到他凑满足够的 Share。但在合约钱包里如果 Owner 怀疑 Guardian 被黑,他可以直接将 Guardian 替换掉,被替换掉的 Guardian 将无法再对该合约钱包起任何效用。
不同之处:合约钱包更多弹性
在 SSS 中,门槛值 t 一旦设定了就没办法改变,除非换一把私钥。但在合约钱包中,使用者可以新增、移除 Guardian,也可以随时改变门槛值 t。另外合约钱包也能加上例如时间锁的机制(下面会介绍)。
比较表格
可以结合 SSS 和合约钱包 Recovery
合约钱包 Recovery 机制不会规定 Guardian 该怎么设计,只要 Guardian 能够送交易到合约来执行即可,所以使用者可以采用合约钱包 Recovery 机制,而让 Guardian 采用 SSS 来提升 Guardian 的可靠程度。
Guardian 的选择
在 SSS 中将 Share 存在云端或交给亲朋好友保管,并在有需要的时候再取回 Share 来还原私钥。但在合约钱包中,Guardian 不是作为单纯保管 Share 的功用,Guardian 需要是能持有私钥并能实际去链上执行合约钱包的角色。
钱包厂商作为 Guardian
使用者使用钱包厂商提供的合约钱包及钱包软件,其实就隐含着使用者相信钱包商。钱包商如果要作恶,它是可以拿走使用者资产甚至钱包控制权的。而因为这一个不可避免的信任关系,钱包商很适合作为 Guardian:使用者沿用原本对钱包商的信任,就不需再引入对其他第三方的信任需求。
Social Recovery
如果使用者请自己的朋友同学来担任 Guardian,那就属于 Social Recovery。如果使用者觉得要相信钱包厂商作为 Guardian 而感到不放心的话,使用者也可以指定他相信的亲朋好友作为 Guardian。但因为这些亲朋好友不一定是专业的人,不像钱包商那样能保管好自己的私钥、能随时提供服务,而这也是 Social Recovery 的缺点:亲朋好友的服务品质较低且参差不齐。因此如何设计出简单好用但又安全的 Social Recovery 界面与流程,避免机制出错或亲朋好友失误导致无法还原就是 Social Recovery 的主要挑战。
注:如果使用者邀请许多信任度没有那么高的朋友同事来作为 Guardian 的话,有一个能降低这些 Guardian 彼此合谋机会的机制会是一个不错的设计,例如不让其他人从合约钱包就能看出 Guardian 有谁,就能避免 Guardian 彼此互相联系。但这样的功能会有相对应的代价,不过这边碍于篇幅不展开介绍。
遏止 Guardian 作恶的机制
前面有提到不管是哪种 Recovery 机制,都必须要信任 Guardian。使用者可以新增多位 Guardian 并设定较高的门槛值 t,但一样必须要相信这些 Guardian 中不会超过 t 位坏人。这个信任是没办法避免的,要引入第三方的帮忙,就会需要信任第三方,否则就只能靠自己备份。
如果使用者对「完全信任 Guardian」的关系感到不安,他可以在合约钱包的 Recovery 机制中加入一些遏止机制来提升一些保障,例如时间锁。但请记住,这些遏止机制「不能取代对 Guardian 的信任需求」!这些遏止机制只是多了一些机关让使用者在发现 Guardian 作恶时能即时制止对方。
注:这些防范机制只适用于合约钱包的 Recovery 机制,不适用于 SSS Recovery 机制。
时间锁及取消键
时间锁能延长 Recovery 生效的时间。例如 Guardian 来执行 Recovery 将 Owner 地址换掉,但需要两天才能生效。在这两天期间内,Owner 能随时来「取消」Recovery,并把 Guardian 换掉。但如果 Owner 没能在时间锁期间内取消,Recovery 就会生效,Owner 就会被换掉,使用者就失去钱包控制权。
有了时间锁,Guardian 更新 Owner 不会马上生效
如果 Owner 即时发现,就可以取消 Recovery 并换掉 Guardian
时间锁能多一层保障,让 Recovery 不会马上生效、让使用者有时间反应,但仍然无法免除对 Guardian 的信任需求。
如果 Owner 没有发现,当时间锁结束 Owner 就会被换掉,等于失去合约钱包控制权
总结
合约钱包因为是用智能合约来实现,所以它的控制权可以比 EOA 钱包来得更弹性多元
合约钱包的控制权并不会和单一把私钥绑定,而是可以随时依照合约写好的规则将有控制权的私钥换成另外一把。因此使用者并不需要担心一定要把他的私钥备份好,当他遗失旧的私钥时,只要产生一把新的私钥并透过 Recovery 机制换掉合约钱包里记录的私钥即可
使用者在合约钱包里的角色是 Owner,而合约钱包 Recovery 机制会有另一位角色,称为 Guardian。Guardian 会负责在使用者遗失私钥时,将 Owner 地址更新成使用者新的私钥对应的地址
合约钱包的 Recovery 机制和利用 SSS 的 Recovery 机制相比,有以下相同之处:(1) 都必须信任 Guardian、(2) 可以有多位 Guardian、(3) 可以为 Share/Guardian 设定权重
如果 Guardian 是坏人(或多数是坏人)或被黑,那 Guardian 就能透过 Recovery 机制拿走合约钱包或 EOA 钱包的控制权
权重设计带来弹性,但也要记得每次新增移除 Guardian、调整 Guardian 权重或是调整门槛值 t,都要记得重新评估不同 Guardian 组合,看是否有新的组合从「权重不够还原」变成「足够还原」,或是旧的组合从「权重足够还原」变成「不够还原」
合约钱包的 Recovery 机制和利用 SSS 的 Recovery 机制相比,有以下不同之处:(1) 合约钱包的 Guardian 是可以被移除、注销的,不像 SSS 的 Share 是永久有效的,除非使用者换一把私钥、(2) 合约钱包更多弹性,可以随时调整门槛值 t、可以新增像是时间锁的机制
Guardian 可以选择钱包厂商作为 Guardian,优点是其专业程度,以及可以沿用原本对钱包厂商的信任(Guardian 是必须要被信任的);使用者也可以选择找亲朋好友作为 Guardian,但要确保对方能保管好自己的私钥、能随时提供服务
如果对 Guardian 不是太放心,可以加上时间锁的机制,避免 Recovery 马上生效,让使用者有时间反应。但要注意,时间锁并不能移除对 Guardian 的信任。如果 Guardian 是坏人且使用者没有在时间锁结束前取消,钱包控制权依然会被拿走
2023-09-23钱包 Recovery 机制介绍(上):Recover EOA
作者:Nic Lin @imToken Labs
校对:imToken Labs
封面来源:rawpixel.com @freepik
适合读者:一般区块链钱包使用者
先备知识:知道 EOA(External Owned Account)及合约帐户的不同
以下将视「帐户」或「钱包」两个词为同义并将交互使用。
什么是 Recovery?
Recovery 要复原、找回的是什么?恢复忘记的密码、找回遗失的证件,而在钱包的例子中要找回的是钱包的控制权,拿回控制权才能继续使用钱包、执行各种交易。以下会将钱包分为 EOA 钱包以及合约钱包(合约钱包一般用 Contract Wallet 或 Smart Contract Wallet 代称)两种:EOA 的控制权便是那把私钥,有了私钥才有控制权,没有私钥就没有控制权;合约钱包则可以有更弹性、更细致的控制权。
本文将会介绍 EOA 的 Recovery 机制,包含不同机制的优缺点。下一篇文会介绍合约钱包的 Recovery 机制。
Recover 与 Restore
实际上找回私钥的方式在本质上可能会不太一样,例如从保险箱里取出手写的私钥(Recover)或是从多个私钥分片重新组合成完整私钥(Restore)。但在这篇文章里都会将 Recover 与 Restore 这两种方式视为同一种,它们都「Recover」、找回了钱包的控制权。
EOA 的 Recovery 机制
在 EOA 中,唯一的控制权就是那一把私钥,所以 EOA 的 Recovery 机制便是要找回那一把私钥。而要能找回私钥,使用者必须得在事前「备份」好私钥,才能在私钥遗失的时候「找回」私钥。这里会把 Recovery 机制分为「备份『完整』私钥」以及「备份『部分』私钥」两种。
注:助记词可以推导出私钥,所以其实备份助记词和备份私钥是一样的,而以下都将会以备份私钥为例。
备份完整私钥
使用者可以透过任何他偏好的方式进行备份,例如记在脑中、手写下在纸上、在铁板上、记录在冷钱包里、写下来放在保险箱、加密放在云端硬碟等等。如果使用者担心只使用一种保管方式不够保险,他也可以同时采用多种保管方式,例如同时保管在保险箱及云端硬碟等。不过要注意的是,备份完整私钥的缺点是攻击者只要攻破任一种保管方式,他都能直接拿到私钥。使用者采用多个方式保管,但其实安全性是取决于多个保管方式中安全性最弱的那一个。
(左图)使用者可以选择同时用不同保管方式保管私钥;(右图)同时保管私钥在多个地方则要担心任一个保管方式被黑就会直接被拿走完整私钥
如果使用者不放心使用单一保管方式但又担心同时采用多个保管方式可能会更容易被黑的话,可以透过将私钥进行分片并保管在不同地方的方式。
备份部分私钥
将私钥进行分片
使用者可以透过 Shamir Secret Sharing(SSS)的技术将私钥进行分片(每一个分片称为一个 Share),看要分成 2 份 Share、5 份 Share 还是 100 份都可以。在决定要分成几份 Share 的同时还要决定其中的几份组合在一起可以还原出私钥,称为门槛值。例如 5 份 Share 中任取 3 份可以还原,那门槛值就是 3。以下会分别用 t 与 n 来代表「门槛值」与「总共分成几份」,并用 t-of-n 来描述一个分片的设定,例如 3-of-5 指的是将私钥拆成 5 份,其中任 3 份组合在一起都可以成功还原。
注:这个网站可以让你动手玩玩看 SSS。详细介绍可以看文末的附录部分。
透过分片技术,使用者就可以将私钥分片并用不同保管方式来保管,而且攻击者攻破任一个保管方式也只能拿到一份 Share 而不是完整的私钥。仅看使用者的偏好,越高的门槛值表示攻击者越难拿到足够的 Share,但也表示使用者真的要还原的时候会更麻烦。
攻击者拿到单个 Share 是还原不出私钥的
Social Recovery
如果使用者是请自己社交圈内的亲朋好友来帮忙保管的话,也可以称为 Social Recovery。不过因为这些亲朋好友几乎都会是一般使用者,所以其保管 Share 的能力未必会好到哪去,因此目前 Social Recovery 应用很少,也有许多需要解决的使用体验上的问题。 Social Recovery 的使用体验和其可靠程度息息相关,因为对这些身为一般使用者的亲朋好友来说,使用体验越差就代表 Share 越可能遗失,也就代表这个 Recovery 机制越不可靠。
注:Social Recovery 不一定要做成一个 App 的形式,可以是使用者单纯将 Share 交给亲朋好友,并请他们用自己的保管方式保管好 Share。如此就不需要处理使用体验的问题,只要亲朋好友可以在需要时将 Share (用任何方式)归还即可。不过相对地没有一个统一的保管方案的选项,亲朋好友可能就会以各式各样自己习惯的方式来保管,那保管的品质可能就会参差不齐。
如果保管者经验不够或 Recovery 机制设计太差导致保管者遗失 Share,那就有可能没办法还原回私钥
为 Share 指定权重
可以透过让不同 Share 有不同权重的方式来弹性调整信任设计,例如让较可信的参与者的 Share 有更高权重,较不可信的参与者的 Share 权重则较低。可以透过把私钥分成更多份然后让使用者依照信任程度分发 Share 数量,也可以透过数学来更优雅地做到这件事。
透过为 Share 指定权重,使用者可以更弹性地分配 Share 给不同信任程度的保管者
总结
Recovery 机制要找回的是钱包的控制权。如果是 EOA 钱包那就是找回私钥,如果是合约钱包那就是找回合约的控制权,而合约钱包可以做到更弹性、更细致的控制权设计
EOA 的 Recovery 可以分为「备份『完整』私钥」与「备份『部分』私钥」两种。备份可以有各式各样的方式,例如记忆、手写、冷钱包、保险箱或云端硬碟等等。但备份完整私钥的缺点是只要保管备份的工具被黑客攻击成功,他就能拿到完整的私钥,也就是 EOA 的控制权
更保险的方法是将私钥透过 SSS 技术进行分片,并把分片(也就是「部分」私钥)分别用不同方式保管,如此即便黑客黑了一个保管工具,他也只能取得一个分片。仅看使用者的偏好,将门槛值设定越高,黑客就必须要黑入越多保管工具来取得足够分片才能还原出完整私钥,但也表示使用者在需要还原时要凑齐越多分片
使用者可以将分片交给亲朋好友来保管,称为 Social Recovery。但通常亲朋好友的保管能力不会好到哪去,所以如何让 Social Recovery 变得更好用影响了这个 Recovery 机制的安全性,因为越不好用代表保管者越容易遗失 Share,使用者能在需要时成功进行还原的机率也就越低
使用者还可以透过为不同 Share 指定不同权重的方式来细化管理的颗粒度:将权重高的 Share 交给信任度高的保管者例如家人好友,将权重低的 Share 交给信任度低的保管者例如同学同事
附录
使用 SSS 工具拆分与组合 Share
以这个网站为例,左边的框框(Split)是填入要拆分的 Secret(私钥,或任何资讯、秘密),右边的框框(Combine)则是要还原时填入 Share(每行一个 Share)。
左边是拆分 Secret,右边是组合还原出 Secret
1. 拆分
在进行拆分时要先选择要拆成几份(n)与门槛值(t),接着填入 Secret:
以随机产生的一把私钥(ec093f32a65212745d61fda2da2a782fbe585977f3e02792a3529557ea45ef5e)为例,并将其设置为 2-of-2,也就是总共会有两个 Share,也需要两个 Share 才能还原出私钥
可以看到输入后下面的 Parts 部分马上就会输出两个 Share:
801f45b8ebf15d7265a5437170e0ebd7e845a1834ebc55b08f2b87fe7790df3b2cdbf8f9545ecd6ebc898dde9c9eb7a1d4b5e825c4f5c69ea8e7a62fe092e167567dfc49dfe776e852b5d4f1c1fb21a201d73bf986ee6ebd880eacc044c0341ec696fe8130ad15858e7e3a5c9b09d2c403acde86580cb2617de981277e547455f18ab18bd930346d77f528489ba23f029c35d2a59cc400549fd2af810f1c3b571b2deedd86f3095c2309bc20e9577e002972c0b57db1bf0767fa9e95c12064d86c483324d3c1666a85b1a59f987391ed309ae3e731eae3a3ba56df1def6931406cf2be896147ea84377bf0502b09b77aa03e18fcdb18eca5e823fe89fb5a30620df
802f5b601632ab34cb4a86e2e1c1c67fc15b43068cb97b610f96dfed3f21afb79876303378ac5b1cb8d2da7cf8fcbf43a96bc19b89eb8d2c901f4c4e1125c2ceacea39527e1eedc1756ba9e383e7934403ae6632ddcd1cbad1dc98508980682c5d2decd2614bfb0b0d3db578f7d2758807487cdca1d8b4c2ea12d24eed78e8abe334b9f67640626b351a44a0f35465e5234ba0db2da805592ac54bb20a09b22e2daa191ad95606e99362bc91c98ee880499584faef236b6eca14f87b87b0c3511331bce9a2e2c844def3411ef45729fbbbe412ae69f41d876fddaaca1ab3b840cdc56913171fc1b86bd635c04222bb449a5df55872a0123bc4c7e8623275ba9400c
将这把私钥拆成两个 Share
2. 还原
接着尝试还原。可以先试试看只输入一个 Share 到右边 Combine 的栏位里,会发现产出的是乱码(还原成其他值导致解码成无意义的东西):
只提供一个 Share,Result 部分显示为乱码
再提供另一个 Share 后(要记得换行),就可以还原出原本的私钥,且 Share 的顺序不影响:
提供第二个 Share 后就能还原出私钥
使用者可以按照自己的偏好选择不同的 n 与 t 组合,例如 2-of-3 或 3-of-5。
其他工具
这个网站是开源且可以以离线方式运作,但如果还是不相信的话,可以改用 Trezor 的开源代码库:
指令:$ shamir create 2of3 --master-secret=`openssl rand -hex 32` (透过 openssl 产生随机的乱数值作为私钥)
保存的东西:
私钥对应的地址
Share 们
笔记:
建议用固定版号,这样上面改版后,比较不会因为升级而有变化
可以用 AES 把 Share 给加密起来,并保存在不同地方(例如不同云端),然后 Share 的加密密码放在密码管理器
2023-09-27imToken 宣布支持 PlatON 网络,携手打造 Web3.0 Payment 生态
2023 年 8 月 29 日,全数字化公共基础设施 PlatON 宣布与全球知名数字钱包 imToken 达成合作,imToken 将全面支持 PlatON 网络,携手打造 Web3.0 Payment 生态。这一合作将为用户带来更加便捷、安全的 Digital Payment 体验,推动区块链技术在金融领域的广泛应用。
PlatON 一直专注于隐私保护和可扩展性,致力于为全球用户提供高效、安全的开放金融基础设施。而 imToken 则是一款简单易用的去中心化数字钱包,累计为超过千万用户提供了安全可信赖的多链数字资产管理服务,致力于让更多人平等、自由地接入Web3.0 生态。
此次合作将深化两方在去中心化金融领域的合作,为用户创造更多便利。用户现可在 imToken 上轻松添加、展示、管理 PlatON 网络上的资产。imToken 还在内置浏览器中新增对 PlatON DApp 生态的支持,用户可在 imToken 钱包中直接访问和使用 PlatON 网络上的各种去中心化应用。未来,双方还将在 Stablecoins 等领域展开深度合作。
双方合作的核心目标之一是推动 Web3.0 Payment 生态的发展。随着区块链技术的不断成熟,Web3.0 正在逐渐成为数字经济的未来趋势。通过整合 PlatON 的隐私保护技术和 imToken 的便捷 Payment 功能,双方将共同探索建立更加安全、高效、开放的 Payment 生态系统,满足用户对于 Digital Payment 的不断增长的需求。
本次合作也体现了 PlatON 和 imToken 在推动数字经济创新、构建可信任金融生态方面的共同愿景。我们期待 PlatON 和 imToken 能够为用户带来更多的价值和体验,共同推动区块链技术的创新和普及,为数字经济的发展贡献一份重要力量。
关于 PlatON
PlatON 是以隐私计算为技术特色的开放金融基础设施,由 LatticeX 基金会发起和推动,致力于成为 Web3 世代主要的区块链技术平台,为各类型 Web3 原生应用、从 Web2 迁移到 Web3 的应用与用户,提供金融级别的系统稳定性和性能表现、隐私计算加持的合规数字资产管理、面向多场景的密态支付清算解决方案,以及平滑友好的用户体验。
关于 imToken
imToken 是一款去中心化的数字钱包,用于承载加密数字世界的资产、身份和数据,成立于 2016 年,imToken 已在全球 150 余个国家和地区,累计为超过 1500 万用户提供了安全可信赖的数字资产管理服务。
2023-09-25HashKey Exchange 和 imToken 达成战略合作,共建「Trusted and Trustless」的 Web3 生态
2023 年 8 月 28 日,香港首家持牌零售虚拟资产交易所 HashKey Exchange 和去中心化钱包 imToken 达成战略合作,将在非托管钱包和合规法币出入金服务方面深度集成,充分融合 Web2 和 Web3 优势,共同促进安全资管环境下的「Trusted and Trustless」Web3 生态。
Web3 使用代码、激励机制和经济机制以去中心化方式运作,这意味着用户无需依赖任何第三方即「Trustless」。而 Web2 的接入提供了在 Web3 尚未进入的领域使用「Trusted」的第三方服务的可能性。
HashKey Exchange 和 imToken 将共同推动这一愿景,提供全方位、便捷和安全的解决方案,让用户有更多选择,享受安全和便利的体验。
交易所和非托管钱包间的价值流动是加密投资者体验的重要联结点,投资者通常同时存在使用非托管钱包、法币出入金和专业交易服务的需求,但由于服务提供者的分散而体验不畅。
「Trusted and Trustless」服务:本次战略合作,imToken 将作为 HashKey Exchange 官方合作非托管钱包,满足 HashKey Exchange 用户对于无需信任的自我管理资产的需要;HashKey Exchange 将为 imToken 用户提供值得信任的合规且便捷的法币出入金和虚拟资产交易等服务。
我们相信本次合作将充分催化 HashKey Exchange 监管合规的可信属性与 imToken 的零信任的安全品牌,打通法币和虚拟资产、托管和非托管的最后一道壁垒,促进稳健且安全的价值畅通流动。
Livio Weng,HashKey 首席运营官,表示「我们很高兴能与去中心化钱包领域的主要项目 imToken 合作。通过将 HashKey Exchange 受监管的交易平台与 imToken 安全且无需信任的功能相结合,我们希望提供用户更好的虚拟资产管理体验。」
Ben,imToken 创始人兼 CEO,表示「我们与 HashKey Exchange 的合作标志着我们在为 Web3 爱好者创建便捷、安全的生态系统方面迈出了重要一步。我们将共同赋予用户控制其资产的能力,同时确保他们能够访问可信的法币网关,获得全面的 Web3 生态体验。」
关于 HashKey Exchange
致力于在持牌合规、资金保障、平台安全方面为虚拟资产交易所定义新标杆,Hash Blockchain Limited(HashKey Exchange) 是香港首家持牌零售虚拟资产交易所。目前已获得香港证券及期货事务监察委员会(证监会)批准,持有第 1 类(证券交易)和第 7 类(提供自动化交易服务)牌照,合规运营虛擬資產交易平台。作为 HashKey Group 旗舰业务,HashKey Exchange 为专业投资者(PI)与零售投资者提供一站式虚拟资产交易服务。HashKey Exchange 已获得 ISO 27001(信息安全)和 ISO 27701(数据隐私)管理体系认证。
关于 imToken
imToken 是一款去中心化的数字钱包,用于承载加密数字世界的资产、身份和数据,成立于 2016 年,imToken 已在全球 150 余个国家和地区,累计为超过 1500 万用户提供了安全可信赖的数字资产管理服务。
2023-09-26imToken 签名体验全新升级,让交易更直观安全
对于多数用户来说,充满密码学的「数字签名」总是难以捉摸。在加密货币日交易量破千万,交易额达数十亿美元的背景下,数字签名的重要性日益凸显:它不仅是加密货币交易的关键角色,更是保障资产的重要盾牌。
然而,随着签名场景的丰富,风险也随之增多。以 2022 年 OpenSea 曝出多起 NFT 被盗事件为例,这些事件的背后往往是用户在授权后,遭到黑客钓鱼攻击,导致签名被盗。
在区块链交易中,不经意完成授权,导致签名被盗并非罕见。为应对这类风险,imToken 推出全新设计的「签名体验」,并增强安全风控系统,让用户在实现「所见即所签」的同时保障安全。
全新签名体验,所见即所签
「所见即所签」意味着用户签署的内容应与所看到、所预期的完全一致。为了贯彻这一原则,imToken 在涉及签名的每个环节,如登录 DApp、转账、代币兑换或是授权等,都进行了全面升级,让用户能够轻松读懂每一笔交易。以下是不同场景的优化点:
1. 登录:登录 DApp 时,需进行消息签名以验证身份或同意服务条款,imToken 会清晰展示所有的签名信息,包括登录信息、原始数据、钱包地址、登录网站及其 URL,以及 DApp 详情等。
2. 转账:在转账过程中,imToken 新增细节展示,在首次转账给新地址时弹出提醒,提示用户验证地址的准确性。同时,新增收款地址详情页,查看与该地址的历史交互记录,帮助用户更好地了解该地址的使用情况。
3. 授权:在 Uniswap 等平台交互时,往往需要授权代币转账权限给合约以便自动完成交易。imToken 支持展示 Approve 和 Permit 两种授权方式的详情,包括授权额度、时间、代币和合约详情等。此外,还支持通过可以点击「编辑」直接修改授权额度和时间。
4. 合约交互:在 Uniswap、Tokenlon、OpenSea 和跨链桥等平台交互页面,imToken 新增展示了代币数量增加和减少的详细变化、合约详情等信息,帮助用户判断该笔交互是否符合预期和安全。
增强风控系统,交易更安全
面对市场上日趋激烈的恶意签名行为,imToken 对各种签名场景及潜在风险点进行了全方位的升级和完善,大大加强了风控系统的防护能力。
1. 专业针对性措施
eth_sign 等无法解析的签名:设置风险提醒,同时保留用户的操作自主权;
非标准 EIP-712 类型签名:如果格式有所改动,设置明确提醒;
ENS 安全风控:针对可能出现的零宽字符,设置明确提醒。
2. 主动安全守护
标记风险代币,封禁风险地址和 DApp;
向合约地址转账时,弹出提醒,确保避免误操作;
授权给普通账户时,弹出提醒,减少误授权风险;
代币兑换环节,一旦滑点过高,会弹出警告提醒。
转账给风险地址和合约地址时的安全提醒
最后
我们真诚地邀请广大用户提供宝贵的建议和反馈,以帮助我们进一步优化和完善,提供加密生态更直观且安全的签名体验。同时,imToken 也会不断探索,并在未来继续为大家带来更多的新功能和场景,为大家提供更全面、更安全的服务。
如果有更多建议,欢迎随时与我们分享。
2023-09-25imToken Iliad & Arbitrum Odyssey,双重奖励,双倍乐趣!
更新:imToken Iliad 活动和 Arbitrum Odyssey 活动重启!Layer2 旅程继续!
---
欢迎参加 imToken Iliad 伊利亚特活动!
使用 imToken 体验 Arbitrum 生态,即可同时领取 Arbitrum Odyseey NFT 和 imToken Iliad NFT(12 个手绘星座等 NFT),双重奖励,双倍乐趣!
双赢:Odyssey + Iliad NFT
Arbitrum 已开启为期两个月的 Odyssey 活动。为了帮助大家更轻松地踏上探索 Arbitrum 的 Layer2 旅程,imToken 将助力大家全程参与并提供 Iliad NFT 奖励。活动期间,imToken 会提供各 Arbitrum Odyssey DApp 的操作教程,帮助大家快速上手 Arbitrum 生态。
imToken Iliad:手绘星座 NFT 奖励
点击此处立即参与!
Arbitrum Odyssey 奥德赛活动规则
跨链桥周(已结束)使用 Arbitrum 官方提供的 19 个桥应用中的任一个将 ETH 跨链至 Arbitrum,即可获得 1 个 NFT。如果你选择的桥应用在第一周结束时 ETH 跨链交易量最高,还可额外获得一个 1 个 NFT。
更新:该周活动已结束,交易量最高的桥是 Hop Protocol,跨链桥周使用该桥跨链至 Arbitrum 的用户可在新加坡时间 09/20 12:00 AM - 09/26 12:00 AM 领取额外 NFT 奖励,点击领取。
第 1-7 周(自 2023 年 9 月 27 日 12:00 AM SGT 开始)Arbitrum 每周会提供 1-2 个 DApp 任务,每完成一个任务即可获得一个 NFT 奖励。总共 13 个 DApp 任务,对应 13 个 NFT 奖励。最后,如果你成功收集了跨链桥周和第 1-7 周 15 个 NFT 中 12 个及以上,还可收到由 Ratwell & Sugoi 设计的独家 NFT。
imToken Iliad 伊利亚特活动规则
Arbitrum 活动期间,使用 imToken 完成 Odyssey 任务,即可在领取 Odyssey NFT 的同时获得 Iliad NFT,共 16 个。
跨链桥周:2 个星系 NFT(地球;月球)
第 1-7 周:12 个手绘星座 NFT + 1 个宇航员星系 NFT
收集 15 个 NFT 中的至少 12 个即可领取 1 个设计师独家 NFT
完成任务的用户可在每周活动结束后自行前往 Galxe 领取 NFT 奖励。
说明:在跨链桥周中,通过法币入金的桥应用完成任务的用户无法获得 imToken Iliad NFT,但不影响领取 Arbitrum Odyssey NFT。
imToken Iliad:星系 NFT 奖励
Arbitrum Odyssey 和 imToken Iliad 活动现已开始,👉立即进入!
第 1-7 周 Odyssey DApp 任务陆续公布后,imToken 会提供相应的 DApp 操作教程,关注 imToken Twitter 或加入 Discord 社区,及时参与活动!
imToken Iliad & Arbitrum Odyssey 活动细则
以下任务均需通过 imToken 完成,才可领取 Iliad NFT 奖励。
日期(新加坡时间)
DApp
任务
Iliad NFT 奖励
Odyssey NFT 奖励
✅ 跨链桥周「活动已结束」
桥应用
使用 Arbitrum 官方提供的 19 个桥应用中的任一个将 ETH 跨链至 Arbitrum
点击查看视频教程:Hop;cBridge
地球 NFT
由 Arbitrum 官方公布,每周详情可关注官方更新
满足条件:你使用的桥在第一周活动结束时 ETH 跨链交易量最高
月球 NFT
🏃🏻♀️ 第一周9/27 12:00 AM - 10/2 12:00 AM SGT
GMX
在 GMX V2 中完成一笔杠杆交易
狮子座 NFT
第二周
Aboard Exchange
待公布
巨蟹座 NFT
tofuNFT
待公布
处女座 NFT
第三周
Premia
待公布
天秤座 NFT
ApeX
待公布
天蝎座 NFT
第四周
1inch
待公布
射手座 NFT
Uniswap
待公布
摩羯座 NFT
第五周
DODO
待公布
水瓶座 NFT
Swapr
待公布
双鱼座 NFT
第六周
TreasureDAO
待公布
白羊座 NFT
BattleFly
待公布
金牛座 NFT
第七周
handle.fi
待公布
双子座 NFT
Sushi
待公布
宇航员 NFT
设计师限量款 NFT
收集 15 个 Iliad NFT 中的 12 个及以上
设计师独家 NFT
/
收集 15 个 Odyssey NFT 中的 12 个及以上
/
Ratwell & Sugoi 设计的独家 NFT
imToken:最安全好用的 Layer2 钱包
imToken Arbitrum 钱包的特色功能
语义化的交易信息,轻松读懂每一笔交易
清晰的 DeFi 资产显示,方便查看在 Uniswap、SushiSwap、GMX、Dopex 中的资产
及时的推送通知,帮你实时掌握钱包动态
更多 Layer2 功能
支持主流桥,40+ Arbitrum DApp 和 WalletConnect
集成多个价格源,钱包余额和代币价格一目了然
下载 imToken:https://token.im
风险提示:本文内容均不构成任何形式的投资意见或建议。imToken 对本文所提及的第三方服务和产品不做任何保证和承诺,亦不承担任何责任。数字资产投资有风险,请谨慎评估该等投资风险,咨询相关专业人士后自行作出决定。
2023-09-27盘点常见「地址钓鱼」套路
前言
今年以来,imToken 收到了不少用户反馈钱包地址遭遇了「地址钓鱼」攻击。即骗子会采取各种套路诱导我们主动向其转账。让我们一起来看看骗子都是用的都是哪些套路,一起来拆穿这些骗局吧~
「地址钓鱼」常见套路
链上转账钓鱼
「地址钓鱼」除了 imToken 在早前揭露过「相同尾号地址骗局」,即利用相同尾号地址向用户地址进行小额转账,骚扰转账记录诱导错转。近期 imToken 安全团队发现骗子加大了成本投入。如下图,骗子投入了 3 USDT 来进行钓鱼攻击,最终得手。
imToken 安全团队提醒:
转账时请勿直接复制历史记录中的地址
输入收款方的地址后,请仔细核对每个字符,确保地址完全正确
剪切板钓鱼
小明碰到一件怪事,自己转账成功了,但朋友那头却迟迟没有到账。跟朋友一起仔细检查后才发现收款地址根本不是朋友的地址,只是尾号相同。让小明觉得奇怪的是这个地址明明是朋友刚刚通过聊天软件发送过来的,按道理来说是不会有问题的,小明百思不得其解,于是联系上了 imToken 工作人员。
imToken 安全团队沟通时,小明提到和朋友聊天的 Telegram 是在百度上随便找到安装包下载的,原来小明使用的是假冒聊天应用,手机的剪切板被这个应用入侵,骗子获取了剪切板的读、写权限。用户复制的内容都会被骗子获取,也能修改剪切板的内容。
当复制钱包地址时,骗子会把用户地址替换成自己的钱包地址,并结合「尾号相同策略」更进一步提高钓鱼成功率。
比如,复制的是地址
TRNvRJT2zvdRHzgvM2Rnrtr3ANaT8b2XEQ
粘贴出来的却是
TY7976avKs8EbdsqFMbNButNEwDcQp2XEQ
骗局复现视频:https://tieba.baidu.com/p/8179666515
imToken 安全团队发现用户安装了假冒程序应用,手机的剪切板被入侵了,骗子获取了剪切板的读、写权限。用户复制的内容都会被骗子获取,也能修改剪切板的内容。
当复制钱包地址时,骗子会把用户地址替换成自己的钱包地址,并结合「尾号相同策略」更进一步提高钓鱼成功率。
imToken 安全团队提醒:
不要安装来历不明的应用程序,在官方渠道下载应用程序
做好设备的应用权限管理,取消授予应用不必要的权限(在手机设备的应用管理设置里进行设定)
转账时务必核对收款地址、转账数量等重要信息
私下交易钓鱼
骗子常常以「便宜出售」或「高价购买」数字资产的诱惑词来引诱你进行私下交易。
举个栗子,小明在 Telegram 上被小骗搭讪,2000 美金收购 ETH,有急用!小明心想现在 ETH 价格才 1600 美金,这是个不错的赚钱机会,于是联系上小骗表示可以出售 ETH,并提供了自己在交易所的 USDT 充值地址。
TRNvRJT2zvdRHzgvM2Rnrtr3ANaT8b2XEQ
小骗先给小明这个地址转账了一笔小额的 USDT,以确保这个地址是正确的。
在骗取到小明的信任后,小骗将 2000 USDT 转账截图证明提供给小明,紧接着催促小明尽快把 ETH 转给他。虽然小明迟迟在交易所没有看到 USDT 到账,但小骗提供了转账截图,小明也通过 Tronscan 查询到「自己的地址」的确有 2000 U 的转入记录,便误认为资金已到账,只是交易所没有及时上账。
结果小骗拿到 ETH 后当即断联失踪,留下小明一人在风中凌乱。
为什么小明通过 Tronscan 查询到「自己的地址」已经有 2000 U 转入记录却还是没有收到这笔资产呢?
原来,小骗给小明转第一笔小额 USDT 时,骗子一共操作了 2 笔小额 USDT 转账。
一笔真正地给小明转账:TRNvRJT2zvdRHzgvM2Rnrtr3ANaT8b2XEQ
这笔转账会被交易所收到并上账
另外一笔给自己的地址转账:TY7976avKs8EbdsqFMbNButNEwDcQp2XEQ
这笔转账是骗子自己的地址,以相同尾号来蒙蔽小明
骗子后续转账的 2000 USDT 虽是真实发生的,但却是从骗子他的左口袋转入了右口袋,并没有转入小明的地址,而小明在跟小骗交易时因没有仔细核对信息,误以为这笔资产是进入了自己的钱包地址。
imToken 安全团队提醒:
不要与陌生人私下交易数字资产,最好在币安、OKX 等知名平台交易
随时保持警惕,任何问题都可以在 imToken App 内打开「我」-「帮助与反馈」咨询我们
imToken 一直在行动
安全风控
八月份,imToken 共标记风险代币 7144 个;封禁风险 DApp 网站 1395 个;标记风险地址 447 个。详见风控数据。
另外,如果你发现了疑似风险的代币或者 DApp,请及时反馈给我们:[email protected],帮助更多用户避免资产损失。
最后
诈骗手段层出不穷,对于普通用户来说,确实难以全面预防。imToken 致力于快速发现和找到解决方案,并向社区及时反馈和科普各种新型骗局,以降低用户损失。
我们诚邀你阅读并分享「imToken 钱包安全月报」,和 imToken 携手,保护每一份资产安全。
imToken 官方下载链接:https://token.im/download
2023-09-28imToken 产品思考:探索下一代 Web3 钱包的用户交互和产品框架
众所周知,加密货币领域近年来发展迅速,应用场景也在不断扩大并进入大众视野。然而,作为用户与区块链世界交互的核心媒介——去中心化钱包,对于大众用户来说,仍然存在较高的学习成本和使用门槛。
全新的体系、陌生的技术术语、特殊的私钥保存方式以及频繁出现的丢失、盗窃和欺诈事件,使得大众用户望而却步或浅尝辄止。
此外,以技术实现为基础的用户体验流程也给用户带来了较高的学习成本。因此,如何帮助大众用户克服重重障碍,构建用户友好的去中心化钱包体验,成为了 imToken 和众多从业者的愿景。
在探索新一代钱包体验的过程中,imToken从用户研究出发,进行市场细分和用户画像构建。以用户需求和使用痛点为出发点,构建了基于使用场景和任务优先级的信息架构,并将重点放在初级用户和新用户身上,同时兼顾专家用户的去中心化、高安全性和抗审查等需求。
在探索用户体验优化方案的过程中,我们也在不断总结相应的设计策略,比如:
Onboarding 不能终止于创建账户及备份私钥,还要帮助用户了解全新的产品模式,产品价值以及对加密货币进行探索。允许用户在未备份甚至无账户状态下的探索,从而帮助用户对产品建立信任和弥合知识门槛。
建立以 Token 为中心的信息模型,在用户与 Token 交互的过程中进行全面的了解。
将资产日常查看和定期深度分析的使用场景分而治之,通过智能资产分析将专业及时的洞见融入特定场景,为不同类型的用户提供有效信息,方便用户决策。
面对门槛较高的私钥备份环节,imToken 也在积极探索生物验证、个人云盘备份、加密文件备份、MPC、以及基于智能合约的备份方式,然而每种备份方式都有其优势和挑战,如何平衡安全性,便捷性和去中心化,同时满足不同用户需求,是钱包的重要考量。
imToken 将继续探索下一代钱包产品,并与众多优秀从业者共同推进去中心化钱包的体验优化。
钱包的三个主要问题
下面想和大家分享的是 imToken 为下一代 Web3 钱包开发的产品框架,主要分享将涵盖当前钱包所面临的问题,现有方法及其局限性,以及我们正在考虑的未来方向。
I have 3.0 ETH and would like to stake the asset to earn profit( 我有 3 个 ETH,想要通过质押这些资产来赚取收益。 )
这句话涵盖了钱包需要解决的三个主要问题。
首先是所有权,即谁拥有加密资产,以及如何安全、轻松地验证所有权并在必要时允许所有者进行授权。
其次是帐户和资产管理,确定所有者拥有的资产类型,并有序地展示信息,为用户提供洞察。
最后,在用户使用资产参与区块链用例时,我们需要了解用户的目的并帮助他们达成。
让我们看看当前的钱包是如何处理这些问题的。
底部是一个所有权控制模块(也称为密钥管理服务),它采用 EOA 结构,包含一对私钥和公钥来管理所有权。imToken 是一个支持多链资产的钱包,通过采用 HD 结构,允许用户使用一对密钥来管理多条链上的资产。
但资产仍分别存储在不同链上,当用户参与链上用例时,其体验是有差异的。因此,这种方法主要存在两个问题。首先,我们使用一对密钥来管理钱包,而公私钥对于 Web2 用户来说是一个新概念,学习曲线非常陡峭。其次,这对密钥会导致单点故障,容错能力非常低。
在顶部,由于资产是在不同链上被单独管理,导致跨链用户体验割裂,流动性共享受限。为解决这一问题,我们提出以下方案。
imToken 将会采用更通用的所有权控制模块替换 EOA 结构,以提供更多设备和帐户的支持,将风险分散到多个帐户和设备,并利用 Web2 工具带来更友好的用户体验。我们还将引入通用帐户的概念,以协助用户跨链操作。这包括通用身份投资组合和用例抽象等多个组件。
以下是现有方案和 imToken 提出的未来方案的对比。
MPC TSS 和 AA
目前业界有两种流行方案:MPC TSS 和 AA。MPC TSS 不是使用一个密钥或一对密钥来管理所有权,而是将所有权分成不同的部分,称为私钥分片。为了声明所有权和签署交易,用户可能需要同时出示多个私钥分片。这看起来很容易,但其实还有许多产品实现参数需要考虑,例如生成私钥分片的数量和相关的阈值设置。
一种常见的方法是 2-2,即生成两个私钥分片。用户必须同时提供两个私钥分片才能控制资产。但这个方法缺乏冗余,如果用户丢失一个私钥分片,便无法恢复钱包。
为了应对这一问题,一些团队采用了 2-3 方法,即只需三个私钥分片中的任意两份即可声明所有权。这种方法增加了冗余,但同时也带来了复杂性,需要用户具备一定的知识背景。理论上,我们可以选择任意 M 或 N 来增加灵活性,但更多的私钥分片管理造成了成本增加。另一个关键因素是共享存储解决方案。在确定私钥分片数量和阈值后,要把这些私钥分片存储在哪里呢?
最简单的就是存在 imToken 等钱包运营商处,因为运营商通常具备更专业的管理能力,可以为用户提供更安全的服务。
然而,运营商有平台依赖性,跨平台迁移钱包也欠缺互操作性。尽管使用社交登录可以带来更友好的用户体验,但对中心化 Web2 服务的依赖可能并不适合 Web3 用户。其他可选方案包括使用硬件钱包和社交恢复,这些方法对中心化服务的依赖最小。然而,这些概念对于大多数用户来说难以理解,社交恢复的实施也面临着因区块链普及程度不足而带来的障碍。
总体而言,由于不同参数的组合,情况变得复杂,企业可能需要考虑最佳的组合以满足其需求。imToken 正在积极探索不同的组合,以找到最适合我们业务环境和目标客户的方法。另一种方法是采用 AA 钱包,其中所有的钱包逻辑都在智能合约中编写(特别是 ERC-4337)。这个方法的优点包括链上可编程的所有权控制模块,可以引入设备、Web2 帐户和更复杂的逻辑,如规则、阈值和权重设计等。
此外,还可以构建更多可编程的用例,包括允许其他人授权交易或支付费用,以及链上的社交恢复等。在这里,关键问题不在于 AA 的强大性能,而更多地在于我们如何制定产品策略,找出最适合我们业务的杀手级功能。因此,imToken 也在积极探索这种方法。
与 AA 相比,MPC TSS 的设置更灵活,适用于不同的业务环境,且大多数操作都在链外进行,成本低且支持多链,同时它还继承了 EOA 的 HD 结构。
然而,向用户解释多个私钥分片和冗余的概念会相当复杂,每个设备和帐户都必须具备签名能力,这限制了可使用的服务器和设备类型。相比之下,AA 支持多种用例,逻辑实现高度透明,对链下基础设施的依赖性最小。但由于信息存储在链上,钱包用户可能会面临额外的成本,钱包在支持多链时也可能会遇到兼容性的挑战,因为每个链可能以不同的方式实现 AA。
没有一种解决方案适用于所有情况,这取决于所服务的具体用例。imToken 首席科学家 Changwu 曾提出将 MPC 和 AA 结合起来以最大程度发挥它们各自的优势。这也是 imToken 正在探索的方向。
通用账户
下一个我想介绍的概念是通用帐户,包括通用身份、通用投资组合和用例抽象。
关于身份管理,用户希望能够利用更易读的 ENS 域名来管理他们的钱包地址。我们计划通过引入不同的格式,如前缀,来扩展 ENS 的功能,以便管理多链钱包地址和 Web2 身份。但目前在主网上注册 ENS 域名的成本相对较高,每年大约需花费 5-600 美元,对于大多数用户而言显然不划算。
因此,我们正在考虑采用一种安全的离线数据检索 EIP,即由平台运营商(例如 imToken)购买主域名,比如 .imToken,然后允许用户在该主域下注册子域名。以 Alice 为例,她的子域名是alice.imToken。其他用户也可以遵循相同的格式。这种结构对平台运营商和用户都有好处,因为运营商的成本与用户数量无关,而用户则无需支付额外费用。我们期望通过这种结构来扩展我们的产品,并更好地为客户提供服务。
此外,用户希望能够在所有钱包中查看他们的通用投资组合,但目前资产信息存储在链级别,因此在那里最准确。
我们可以在用户界面层面进行操作。对于个人钱包视图,当用户选择查看其个人钱包时,我们可以显示相关信息。对于通用投资组合视图,我们可以按代币资产进行汇总。
我们正在考虑保留这两种视图,让用户在它们之间自由切换,因为它们各有优势。通用投资组合视图设计直观,可以与投资组合分析工具完美配合。而个人钱包视图则更适合经验丰富的用户,因为它提供更准确的信息,让用户进行更具针对性的操作。界面层不仅负责提供信息,还会影响用户的交互体验。
在个人钱包视图上执行操作可能会涉及到与特定钱包用例相关的细节。而在通用投资组合视图中,需要一种新的用户交互方式,以便关注用例而不是执行细节。这就是所谓的用例抽象。例如,Alice 想要将 2 ETH 从她的通用帐户 alice.imToken 转到 Bob,Bob 则指定了他的主网地址来接收资金。
问题是,Alice 要如何将钱转给 Bob?有多种方法可以实现这个目标,而我们的解决方案是引入 imToken 交易路由模块。这个模块的设计理念是向用户呈现最必要和关键的信息,以便用户能够更好地做出决策。用户可以根据不同的标准选择最快的转账速度或最便宜的交易成本,或者根据自定义逻辑进行选择,比如首选使用 BTC 进行支付。无论用户选择哪种方式,我们都提供了详细的信息,让他们清楚了解每个选项中资产将如何被处理。
但是作为用户不必担心。他们可以根据自己的优先级和决策标准选择最适合的方案。我们将为用户处理其余的执行细节。Bob 可能不想操心这笔交易的收款地址,所以如果他选择使用通用帐户来接收资金,情况会变得更加复杂。然而,逻辑保持不变。我们的交易路由模块将根据不同的标准找出最佳交易方案,并将其呈现给双方,以便他们进行选择。
我们之所以采取这种方法,是因为现今大多数钱包功能主要关注如何帮助用户完成特定任务。然而,我们认识到今天的用户更需要的是根据有效信息进行决策的协助。
我们渴望深入了解用户的需求,以理解他们采取行动的根本动机。例如,当用户考虑参与质押时,实际上是出于希望能够根据自身的财务状况和风险偏好来获得投资回报的愿望。imToken 将以此为基础设计更出色的产品策略,帮助用户摆脱执行细节的烦扰,满足用户更深层次的需求。
以上所分享的钱包框架,所有权控制模型和通用账户模型,是 imToken 未来的探索方向。钱包是用户进入 Web3 生态的入口,我们期待与大家一起参与这一场变革,为用户带来更友好的产品体验。
2023-09-22加密钱包的大规模采用:挑战和机会|TOKEN2049
大家好!很高兴与大家分享关于钱包如何在未来更好地普惠大众的话题,今天我们将主要探讨钱包未来可能面临的一些机会与挑战。在此之前,我们先来关注抽象账户钱包的一些设计概念。
在原生交易中,用户首先会生成一个账户地址(EOA),然后使用相应的私钥来为以太坊交易签名,并且该交易格式会遵循以太坊的标准。一旦签名验证通过,这笔交易就会被广播到以太坊网络中,之后由验证者验证交易并收取矿工费,最后执行交易。这就是传统的交易方式。
但今天的重点是抽象账户钱包,所以我们将从这种钱包的交易周期来探讨其与传统方式的不同。可以注意到下图有一个被虚线圈出的区域,这在传统的交易流程中是不存在的。这部分可以视为用户在签署交易时所签署的一个信息,而非传统的以太坊交易标准格式。我将这个信息称作「意图」,即用户所希望执行的动作。在此处,用户会进行签名,这种签名与 EIP-712 的签名方式相似。
接下来,谁将负责收集这些「意图」信息并传送至以太坊节点?抽象账户引入了一个名为 「bundler」的角色,bundler 在链下对这笔交易进行判断,确认其是否能够成功执行,并在成功后是否能够按预期扣除费用。我将这个流程称为「虚拟验证」。它会在交易真正进入交易池之前进行模拟验证。之后,bundler 会将交易发送给相应的节点,然后开始实际的交易执行过程。
相比原生交易,抽象账户带来三大创新:
信息签名环节:与过去不同,之前签名的是交易的标准格式。现在签名的仅仅是一条信息,例如我想转账的目标,而不是完整的以太坊交易内容。
账户与签名者的区分:传统意义上,若没有账户则无 Token。现在的情境下,账户与能签名的使用者(Signer)是两个不同的角色。这带来了两个核心变化:通过合约,我们可以预先创建地址;由于签名者不等同于账户,如果签名密钥丢失,我们可以更换签名者来恢复账户。特别地,关于预生成地址:过去,若想鼓励他人使用钱包,但对方无地址,即便想赠送十元礼物卡也无法实现。但有了预生成地址,当用户创建新钱包时,你就可以直接为其充值。
Gas 费用的抽象:除了账户的抽象,现如今 Gas 的概念也已抽象化。这意味着你今天支付的矿工费并不必须是 ETH,它可以是 ERC-20 代币,或者任何其他法币。
密钥管理
与钱包紧密相关的一点是密钥管理,这无疑是我们首要考虑的内容。在 Web2 的环境中,已有的规范,如 Passkey、FIDO2 或 WebAuthn,为我们提供了便捷的密钥管理方式。
但抽象账户为密钥管理提供了新的视角。与传统的 ECDSA 签名机制不同,抽象账户引入了合约的能力,支持多种签名算法。例如,手机的安全芯片中就内置有私钥。只要这个私钥算法能被合约验证,手机即可视为硬件钱包,为用户带来了便捷性,免除了记忆助记词的麻烦。
抽象账户允许我们在私钥丢失时替换 Signer,而账户仍保持不变。这增加了钱包的可持续性和可升级性。此外,因为这些账户是基于开源合约开发的,其逻辑和验证方式对于所有用户都是透明的,允许更多的定制化和多样化的前端界面。
例如,可以有移动端应用,也可以有 Web 版本,为用户提供了更多选择和便利。抽象账户的持久性意味着,用户在这些账户上的交易历史或积累的信誉,未来可能会被应用于数字身份验证(DID)上。
地址
传统的区块链地址生成方式是基于公钥的编码方式。只要你知道私钥,你就可以推导出对应的公钥和地址。这种方式的优势在于它为多个链提供了一致性。用户只需管理一个私钥,就可以在多个链上进行操作。
由于合约的使用,抽象账户的地址管理变得复杂。在 EVM 兼容的链上,地址可能仍然是传统的,但在非 EVM 兼容的链上,如 StarkWare 和 zkSync,情况就不同了。尽管存在差异,但通过 ENS 的管理方式,用户仍可以在多个链或 Layer2 解决方案上保持操作的一致性。
原生交易的地址管理方式因其简单性而备受欢迎,但抽象账户为我们带来了新的挑战。如何确保用户在多个链或 Layer2 解决方案上的体验保持一致性,同时还要考虑到合约账户的复杂性,是未来需要解决的问题。
签名信息
签名信息环节在抽象账户中展现了独特的魅力和前景。与传统的原生交易不同,用户不再受限于固定的交易格式,而是可以自由地表达自己的意图和意愿。这种灵活性为区块链交互带来了革命性的变化。
在抽象账户中,签名信息不再仅仅是关于资金转移的指令。用户可以通过签名他们的意图,来指示他们希望执行的操作,无论是在区块链上,还是在其他应用中。这种自由度意味着用户的交互可以在电子邮件、社交平台、消息应用等多种场景中发生。
想象一下,如果用户可以简单地在电子邮件中写明「向 Alice 转账 50 个 ETH」,而不必通过复杂的交易界面,系统会自动识别这个意图,并帮助用户完成交易。这就好比我们在 Google搜索框中输入关键词,而不必担心背后的处理细节。这种模式可以被扩展到各种应用中,让用户在几乎任何地方都能简单、快速地完成区块链交互。
矿工费支付
支付 Gas 费在区块链交易中始终是个挑战。传统上,用户在执行交易前必须首先确保他们的钱包中有足够的 ETH 来支付交易费用。这无疑给用户带来了额外的麻烦,因为他们首先需要购买 ETH,这可能需要通过法币在交易所进行购买,或者通过其他方式获取。
不过,在抽象账户的框架下,这个问题得到了很大的改善。由于 Paymaster 的存在,用户不再局限于只使用 ETH 来支付交易费,降低了进入门槛和复杂性。同时,抽象账户允许合约有更高的定制性。这意味着合约可以根据特定需求来设计,包括如何收取和支付交易费用。
这种新模式确保用户可以轻松、无缝地进行交易,提高了整体的用户体验。
账户恢复
账户恢复是另一个核心考虑。传统上,我们主要依赖助记词来恢复账户。在抽象账户中,即使签名者(Signer)发生变化,账户的连续性也得以维持。这为我们提供了恢复账户的多种方式,包括多重签名(Multi-Sign)、身份验证技术,甚至链下的解决方案,如 MPC。这大大增强了用户的信心,因为他们知道即使出现问题,也有多种方法恢复账户。
既然抽象账户以合约为基础。这意味着我们可以设计更模块化的合约,并为其增加不同的插件和功能。从用户画像的变化,我们可以看到用户需求的多样性。一个初学者可能需要简单易用的钱包,而随着经验积累和需求的变化,他可能期望钱包能提供更多高级功能,如 DeFi 操作或增强的安全特性。
为了满足不同的用户需求,我们可以设计具有不同模块和功能的合约。通过抽象账户,我们可以更灵活地为用户提供他们所需的服务。
总之,抽象账户带给我们一个更大的好处,就是允许功能和合约的模块化,以进一步实现差异化和定制化。然而,目前面临的挑战是合约执行成本高昂。因此,我们亟需沿着扩容的发展路径,降低交易成本。我预见未来的钱包将更多地依赖 Layer2 技术,特别是在抽象账户的实现和执行方面。
2023-09-27