Web3.0入口-MPC钱包和智能合约钱包

这篇具有很好参考价值的文章主要介绍了Web3.0入口-MPC钱包和智能合约钱包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前数字钱包存在的三个问题

Web3.0大规模普及,需要解决一些关键问题,包括钱包私钥带来的一个用户体验问题与两个安全问题。

1.一个用户体验问题

助记词与私钥难记、难保存,导致用户使用门槛过高

2.两个安全问题

助记词和私钥的泄露,导致资产被盗。

助记词和私钥的丢失,导致资产丢失。

数字钱包为什么只能通过私钥的方式进行验证

为什么只能通过私钥的方式进行验证?为了回答这个问题,我们需要了一些背景知识和概念。首先是以太坊上的账户类型。

以太坊一共有两种账户:外部账户(EOA)和合约账户(CA)。

合约账户就是智能合约,其代码由以太坊虚拟机来运行。

外部账户就是我们平常用来发起交易的钱包账户,它之所以被称为“外部“是因为这种账户本身是没有代码的,因此独立于以太坊虚拟机之外,由用户通过私钥进行控制。

合约账户(CA)虽然有自定义逻辑,但它是无法主动发起事务的。因此任何合约状态的改变都依赖外部账户来发起,并由外部账户(EOA)支付gas。

如何验证事务的合法性呢?

以太坊上的验证方式为检查事务的发起人和资产账户的拥有者是一致的(同一个人)。因此需要用户通过钱包对交易进行签名。

而以太坊默认的验证逻辑是通过secp256k1非对称密钥算法实现,用户必须掌握用于签名的私钥。

这就是为什么无论如何优化钱包的用户体验也无法绕开私钥的问题。

外部账户(EOA)并不具备代码逻辑。如果想要引入更复杂的逻辑来实现其他的功能,比如多签等等,是无法在外部账户上直接进行的。

那么,目前有什么样的方式可以解决此问题呢?

下面将介绍被认为最可行有效的两种解决方案:MPC钱包和智能合约钱包。

MPC钱包

MPC,全称为Multi-Party Computation(多方计算),是一种重要的加密安全措施。其包含了很多种技术方案,在本文的语境下主要指MPC-TSS。

而MPC钱包,是通过对私钥进行多方计算在链下实现“多签“、”跨链“等等更复杂的验证方式。

简单来说,就是将一个私钥打碎成多片,将私钥碎片交与一个去中心化的网络(Multi-Party多方)进行计算和加密。当需要私钥签名时,则将多方碎片再拼接起来形成一个完整的私钥。

MPC的核心思路为分散控制权以达到分散风险或提高备灾的目的,有效避免了单点失败等安全问题。

MPC钱包“多方参与”的概念与“多签钱包”有些类似,但实际上,虽然都可以实现“多签”的功能,二者的实现途径是不一样的。

之前我们所熟知的多签钱包,比如Gnosis Safe等等,是建立在智能合约上的钱包,合约中定义了验证逻辑,比如如果需要验证一笔交易,需要一个以上的私钥,或者五个中至少三个私钥进行验证。这类钱包属于后文即将提到的智能钱包的一种。

而MPC钱包,则是将一个私钥分解成多个片段,验证过程只涉及到一个私钥。并且计算网络是链下的,与智能合约并无联系。

MPC 钱包的优势

无单点故障。一个完整的私钥在任何时候都不会集中在一台设备上。也没有助记词。

可调整的签名方案。批准固定人数可以随着个人和组织需求的变化而修改,同时保持相同的地址。组织可以动态调整签名方案,而不必每次都通知交易对手一个新地址。

粒度访问控制。机构用户可以为一个策略分配无限数量的交易审批者,并分配能够准确反映组织角色和安全措施 ( 时间锁、MFA、欺诈监控 ) 的权限。个人可以通过 MPC 钱包即服务 (wallet-as-a-service) 选择半托管路线,第三方持有其中一个关键共享部分。

更低的交易和回收成本。MPC 钱包在区块链上表示为单个地址,其 gas 费用与常规私钥地址相同。这对于每天进行数百个交易的用户 ( 例如在 B2C 用例中 ) 来说非常重要。丢失的密钥共享部分也可以进行链下回收。

区块链不可知论者。密钥生成和签名依赖于链下的纯密码学。将兼容性扩展到新的区块链很简单,因为钱包只需要能够使用该链识别的算法生成签名。

MPC 钱包的缺点

链下问责制。签署授权政策和批准固定人数是在链下管理的,因此这些自定义规则仍然容易出现中心化问题。密钥共享仍然是加密秘密,应该像处理整个私钥一样处理。链下规则和签名阻碍了透明度,需要更严格的运营审计。

与许多用户采用的大多数传统钱包不兼容 ( 没有助记词,没有完整的私钥存储在单个设备上 )。MPC 算法也没有标准化,也没有得到机构级安全设备 ( 如 iPhone SEP 和 HSM) 的原生支持。

大多是孤立的定制产品。许多 MPC 库和解决方案都不是开源的,因此,如果出现问题,生态系统很难独立审计和集成它们。

基于 MPC 的解决方案主要针对机构客户,如基金、交易所和托管人。

智能合约钱包

智能合约钱包,正如其名,是基于智能合约(CA)而不是外部账户的钱包。

市面上已经有不少的智能合约钱包,但因为这些智能合约是自定义的,缺乏统一的行业标准,且存在合约漏洞以及与其他合约兼容性等等问题未获得广泛的应用。

即将来临的以太坊上海升级,智能合约钱包又因为“账户抽象”提案EIP-4337的重大进展而再次成为了热议的话题。

那么账户抽象到底是什么意思呢?实现了账户抽象后,又能给用户带来怎样全新的体验?在了解以太坊上的账户抽象之前,我们首先需要了解“抽象”的概念。

“抽象”是计算机科学最重要的概念之一,指在向外界提供必要的关键信息的同时隐藏其后台的实现细节,使得开发者在处理一个抽象层的任务时,只需要专注于这一个抽象层。

账户抽象同理,我们作为钱包用户,需要考虑很多因素,比如gas price、gas limit、事务阻塞等等复杂的费用逻辑。其根本原因是钱包不够“抽象”,导致需要处理很多本不应该由用户处理的问题。那如何解决呢?

逻辑很简单,我们可以将外部账户和合约账户抽象,使外部账户与合约账户相“结合”,通过智能合约赋予外部账户钱包更加复杂的逻辑。智能合约钱包能够实现的功能也不止“多签”这一个场景了。

如果EIP-4337能够实现以太坊账户的系统性升级,作为用户能获得什么新的体验呢?理论上只要能通过智能合约代码定义的功能都能实现。首先,智能合约钱包可以通过非secp256k1的验证算法进行验证,用户不需要面对长长的密钥对和助记词。

智能合约还可以赋予密钥更多的逻辑。比如在多签的场景下,给每一个私钥定义不同的权限。

此外,通过移动端与区块链交互会变得更加容易,我们可以授权一个专属于手机的密钥,且可以定义这个密钥加上限制,比如只能与固定几个智能合约交互,或者智能验证数额较小的交易等。其他能够实现的功能还包括一键授权批量交易、交易黑名单等等。总之,智能合约钱包的想象空间非常大。

智能合约钱包的优势

无单点故障。执行交易需要多个签名。

可编程访问控制。用户可以定义不同的规则,设置时间锁、支出限制、自动化。

可以实现交易批处理以节省成本。

可扩展。由于智能合约的可组合性,钱包开发人员可以创建一个模块生态系统,用户可以选择将这些模块添加到他们的钱包中,为 NFT 借待框架、DAO 投票模块和非托管资产管理服务等新功能创建一个应用程序商店。

可编程恢复。钱包可以提供几种选择,将资金回收到智能合约本身。

链上问责制。链上签名授权策略和聚合可以明确使用哪些密钥对交易进行签名,从而使操作更加透明和直接,以便在出现错误的情况下审计谁参与了交易。

支持迁移到其他签名方案。智能合约钱包可以将其签名方案改为更简单、更省 gas 或抗量子的方案。他们还可以在 iOS 和 Android 设备上使用 ( 将手机变成硬件钱包 ),或启用 Ed25519,允许使用 iOS 生物识别和网络认证。

开源。任何人都可以审计智能钱包的实现和功能扩展,从而通过生态系统的方式解决漏洞和添加新功能。

智能合约钱包的缺点

更高的费用。智能钱包的费用比普通的单地址交易要高,因为需要验证多个签名。添加 / 删除所有者和更改阈值等操作也需要链上交易。

没有得到普遍支持。虽然智能钱包可以部署在相同地址的任何 EVM 链上,但它们需要在非 EVM 链上定制实现。

恢复成本更高。虽然恢复逻辑是可编程的,但需要支付链上费用来执行它。

与不可升级的合约不兼容。尽管 EIP -1271 允许应用程序代表合约钱包进行签名,但它仍然没有得到普遍支持,并且不能添加到不可升级的合约中。

总结

二者是互补的方案,MPC钱包和智能合约钱包本质上不在同一个层面解决问题。

MPC钱包是链下方案,既可以控制基于外部账户的普通钱包,也可以控制智能钱包。

MPC钱包作为链下方案,并不涉及到以太坊共识层或合约层的改动,用户的使用成本更低,且在短期内更具可行性。此外,在一些特殊的使用场景比如跨链密钥等更具优势。

智能合约钱包是以太坊的系统性升级,可以给用户带来更多全新的体验和用例。但账户抽象是一个需要“兴师动众”的大工程,要求其他智能合约、开发者、以及以太坊架构都配合升级。过大的实操难度使从2015年就提出的愿景到今天也没有完全落地。

而智能合约钱包对于用户而言,最直接的问题就是钱包的使用成本将会提升,从创建钱包开始就需要支付费用。

智能合约钱包是最终愿景,MPC是短期内的热点方案,且在一些特殊场景更具实施优势。

考虑成本问题,智能合约钱包在以太坊主网实现的可行性和可能性都较低。可以更多关注Layer2上的账户抽象和智能合约钱包进展。文章来源地址https://www.toymoban.com/news/detail-786236.html

到了这里,关于Web3.0入口-MPC钱包和智能合约钱包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 赛联区块链培训:Web3的核心要素——区块链、加密资产、智能合约和预言机

    在2008年,中本聪发布了比特币白皮书,彻底颠覆了我们对数字化交易的概念,并首次提出了一种无需可信中间方的安全在线交易模式。中本聪写道:“需要基于加密证明,而非信任,来建立电子支付系统。” 智能合约被发明后,去中心化的互联网模式进入公众视野。如果说

    2024年02月07日
    浏览(60)
  • 手把手部署区块链智能合约及python的web3接口调用

    说句实话,在做区块链、智能合约、搭私链、pythonWeb3接口调用这些东西的时候,心里崩溃了不止四五十回,如果可以选别的方向,博主劝你赶紧换,人生已经很不容易了,别给自己找罪受。。。。。 创世块是什么请自行搜索,网络上很多示例的创世块博主都试过,在实际使

    2024年02月04日
    浏览(49)
  • 解析MPC多方计算钱包:私钥分片与备份的新安全前沿

    前言 什么是MPC钱包 1.1 定义和基本原理 当前用户的困境 MPC钱包简介 3.1 工作原理 3.2 解决问题的关键点 MPC钱包优势与劣势 4.1 优势 4.2 缺点 MPC主流算法实现 5.1 概述不同算法 市场竞品 6.1 竞品列表 个人观点 7.1 安全性评价 7.2 中心化问题 7.3 技术黑盒挑战 7.4 移植性局限 7.5 期望

    2024年01月16日
    浏览(45)
  • 使用web3.js连接Metamask钱包并完成合约交互

    Web3.js是一个用于与以太坊网络进行交互的JavaScript库。Metamask是一个以太坊钱包插件,可以在浏览器中创建和管理以太坊账户。本文将介绍如何使用web3.js库连接Metamask钱包,并完成与智能合约的交互。 Web3.js是一个用于与以太坊网络进行交互的JavaScript库。它提供了一些方法和功

    2024年03月16日
    浏览(52)
  • 使用nodejs和web3js实现链接metamask钱包并实现合约交互

    在以太坊区块链上,metamask钱包是一个非常常用的钱包,用以管理以太币和其他以太坊资产。同时,它也是一个重要的以太坊智能合约交互工具。在本文中,我们将介绍如何使用nodejs和web3js实现链接metamask钱包并实现合约交互。 在开始之前,首先需要安装NodeJS和Web3JS。 NodeJS是

    2024年02月04日
    浏览(90)
  • 区块链合约交互 web3

    遵循ERC20规则, 钱包里可以有很多种类型的token:USDT,DFI,DFA 1.合约交互之前需要先判断是否仍允许purchasePool合约从账户(钱包里的账户) 中提取的ERC20dfaContract 这本合约里(DFA)的金额 await this.contract.ERC20dfaContract.methods.allowance(this.address,this.addressMap.AcceleratePool).call(); ERC20df

    2024年02月07日
    浏览(63)
  • 区块链-java对接web3合约

    本文章讲述了如何在合约已经部署并且能拿到合约abi文件的情况下,用java代码去进行调用合约 已经部署好的合约地址 编译合约后生成的abi文件  通过hardhat-build去编译 通过remix网站去编译获取(教程可自行百度查询) 引入web3的jar包 版本用最新的就行了 引入web3j-maven-plugin 将编

    2024年01月16日
    浏览(70)
  • 【区块链 | 智能合约】Ethereum源代码(2)- go-ethereum 客户端入口代码和Node分析

    上篇提到用 make geth 来编译geth客户端。我们来看看make file做了什么: 执行了 ci.go 里面做了两件事情 1,ln -s命令在build/_workspace/ 目录上生成了go-etherum的一个文件镜像,不占用磁盘空间,与源文件同步更新 2

    2024年02月03日
    浏览(42)
  • web3: 智能合约

    2024年01月09日
    浏览(49)
  • 智能合约及其web3共识机制

      目录 什么是共识? 什么是共识机制? 共识机制的目标 为什么需要共识机制? 如何评价一个共识机制的优劣: 共识机制分类 PoW( Proof of Work)工作量证明:多劳多得 PoS(Proof of Stake)股权证明算法:持有越多,获得越多 优点 缺点 如何配置web3 智能合约测试   我们所说的共识,是

    2024年01月17日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包