一、引言
以太坊作为一种开放、可编程的区块链平台,不仅是数字货币的基础设施,还为开发者提供了构建去中心化应用(DApps)和智能合约的环境。由于其灵活性和可扩展性,以太坊已经成为了加密货币生态系统中的关键角色,并吸引了全球范围内的开发者和用户。
然而,正如以太坊的创始人Vitalik Buterin在自己的博客中所指出的,以太坊目前面临着一些重要的挑战和问题,这些问题需要得到解决才能推动以太坊的进一步发展,否则以太坊将走向失败。在他的观点中,Vitalik强调了三个转变的重要性:Layer2扩容、智能合约钱包和隐私保护。这些转变被认为是解决现有问题和推动以太坊生态系统进一步发展的关键。
转变后,以太坊将在性能、用户体验和隐私护等方面有所改善。然而,这些转变也带来了一些新的挑战,需要我们解决。如果要妥善解决这些问题,我们不仅仅需要对协议进行改进,在某些情况下,我们与以太坊交互的方式需要从根本上改变,需要对应用程序和钱包进行深刻的改变。 (以太坊三个转变带来的新问题)
二、以太坊为什么必须转变?
以太坊需要转变的主要原因源于扩展性、安全性和隐私保护的挑战。
首先,扩展性问题是一个核心的挑战。以太坊目前的交易处理能力有限,当网络流量增加时,交易成本会变得很高。这种高昂的交易成本阻碍了以太坊对主流市场的普及,因此以太坊需要通过L2扩展,如rollups,来提高其处理能力并降低交易成本。
其次,钱包的安全性问题也是一个重要的问题。用户可能会因为担心自己的资产安全而不愿意在以太坊钱包中存储他们的资产。这就需要以太坊进行钱包安全转变,推动用户使用智能合约钱包,提供更强大的安全性。
最后,隐私保护是另一个关键挑战。所有以太坊上的交易都是公开的,这对许多用户来说可能是难以接受的隐私牺牲。因此,以太坊需要进一步改进以确保隐私保护资金转移,并确保所有其他正在开发的小工具(如社会恢复、身份、声誉)都是隐私保护的。
三、以太坊转变后会带来哪些新问题?
(一)用户如何管理多地址?(地址)
以太坊的三个转变将影响用户和地址的关系。首先,Layer 2扩容方案将导致用户拥有许多Layer 2地址,因为他们的资产可能分布在不同的Layer 2网络上。这增加了地址管理的复杂性。其次,智能合约钱包需要处理更多逻辑和功能,而不同的Layer 1和Layer 2网络可能使用不同的编程语言和中间组件,这导致了地址保留方面的问题。最后,隐私保护方面的隐形地址提案,如果得到广泛使用,将使用户拥有更多地址,以增强其隐私保护。因此,保留一个地址变得更加困难。
这三种转变,都以不同的方式削弱了“一个用户约等于一个地址”的心理模型,增加了用户对地址管理的复杂性。同时还产生了新的问题,例如用户想要付钱给某人,用户要如何获得付钱给他们的信息?这么多跨链资产,用户要如何进行密钥更改和社交恢复?
(账户的管理问题)
(二)用户多地址如何隐形支付?(支付)
以太坊的三个转变使用户拥有多个Layer 2地址,用户在多地址情况下,支付时将面临寻址问题,选择正确的地址来发送资产或者支付变得更加复杂。传统上,用户只需要知道对方的地址即可发送付款,但现在他们需要知道对方所接受的Layer 2网络和相应的地址。这增加了支付的复杂性,并需要额外的步骤来确保资金发送到正确的目标。这可能对普通用户来说会带来困惑和不便,因为他们需要更多信息来完成简单的支付操作。(账户的支付问题)
以太坊向智能合约钱包的转变,可以轻松解决寻址问题,但是向隐私保护的转变对支付构成了巨大的挑战。这里我们可以参考Vitalik Buterin在早期所提出的隐私保护解决方案:隐形地址。隐形地址可以帮助你在进行数字货币交易时保持隐私,而不会被别人追踪,接下来我们将了解关于解决隐私支付问题的一些步骤。(隐形地址完整工作流程)
1. 使用隐形地址:隐形地址是一种可以由付款方或收款方生成,但只能由收款方控制的地址。这种地址可以提高以太坊在多种场景下的隐私性。在这种系统中,Bob(收款人)生成并保密一个消费密钥,并使用这个密钥生成一个隐形元地址。他将这个元地址传递给Alice(付款人)。Alice可以在这个元地址上执行一个计算,生成属于Bob的隐形地址。然后,她可以将任何她想要发送的资产发送到这个地址,Bob将对它们有完全的控制权。
2. 使用椭圆曲线密码学:椭圆曲线密码学可以用来实现隐形地址。在这种技术中,Bob生成一个密钥m,并计算M = G * m,其中G是椭圆曲线的一个公认的生成点。Alice生成一个临时密钥r,并发布临时公钥R = G * r。Alice可以计算一个共享秘密S = M * r,Bob也可以计算同样的共享秘密S = m * R。
3. 使用ZK-SNARKs支付交易费用:如果有人将一个NFT发送到你控制的隐形地址,你的钱包会自动发现这个地址。你现在可以自由地证明你拥有NFT或将其转移到别人那里。但是,如果该账户中没有ETH,就无法支付交易费用。这个问题的一个解决方案是使用ZK-SNARKs来转移资金以支付费用。
4. 使用零知识证明和公钥加密构建隐形地址:Bob的元地址是一个公共加密密钥加上一个哈希h = hash(x),他的消费密钥是相应的解密密钥加上x。要创建一个隐形地址,Alice生成一个值c,并发布一个只有Bob可以读取的c的加密。地址本身是一个ERC-4337账户,其代码通过要求交易附带一个零知识证明来验证交易,证明拥有值x和c,使得k = hash(hash(x), c)(其中k是账户代码的一部分)。
5. 使用社交恢复和多层次钱包:如果你需要恢复你的账户(也就是说,改变哪个私钥控制它),你也必须执行一些步骤来改变你的N个隐形钱包的账户验证逻辑,这将需要N个交易,这对费用、便利性和隐私都是一个大的负担。一个更复杂的解决方案涉及到零知识证明。在上述基于ZKP的方案中,可以修改逻辑,使得账户不直接持有k = hash(hash(x), c),而是持有对链上k位置的(隐藏)承诺。从该账户消费则需要提供一个零知识证明,证明一,你知道链上与该承诺匹配的位置,以及证明二,该位置的对象包含一些值k(你并未揭示),并且你有一些值x和c满足k = hash(hash(x), c)。这允许许多账户,甚至跨多个L2协议的账户,通过在链上的某个位置改变一个值,来改变所有账户的所有权,而无需揭示账户之间的联系。
(三)用户多地址如何恢复密钥?(恢复)
在智能合约钱包和多地址系统中,密钥恢复同样面临着一些问题和挑战。首先,gas成本是一个重要的问题,因为每个地址都需要单独运行恢复程序,导致成本不切实际。其次,存在反事实地址的概念,即尚未使用过的地址,这增加了恢复的复杂性。此外,隐私也是一个关键问题,同时恢复多个地址可能公开链接所有地址,这可能违反用户的隐私需求。
为了解决这些问题,出现了一种优雅的解决方案:将验证逻辑和资产持有分离的架构。每个用户拥有一个密钥库合约,位于主网或特定的Layer 2上,而用户在不同的Layer 2上拥有地址,每个地址的验证逻辑指向密钥库合约的指针。支出需要提供进入密钥库合约的证明,以显示最近的支出公钥。
这些证明可以通过不同的方式实现,包括直接L2内部的L1访问、Merkle分支和ZK-SNARKs等。通过这样的架构,可以降低数据成本、提高效率,并解决多地址恢复中的问题。同时,为了增加隐私保护,可以使用加密指针和ZK-SNARKs来进行证明。(验证逻辑和资产持有分离架构)
(四)layer2基础设施如何升级?(基础设施)
在Layer 2中,基础设施需要进行一些升级以应对新的挑战和需求。
1. ENS在Layer 2上的支持:当前使用ENS(以太坊域名服务)很昂贵,特别是随着交易费用的增加。为了推广ENS的使用并让人们能够以更低的成本注册域名,需要在Layer 2上实现ENS功能。
2. 多个dapp对链下签名的依赖:许多dapp依赖用户提供的链下签名。对于使用外部拥有账户(EOA)的用户来说,这很容易实现,但许多dapp仍未支持相关的标准(如ERC-1271)。因此,需要让更多的dapp支持这些标准。
3. 区分用户和合约:一些dapp需要区分用户和合约,例如防止转让或强制使用费。寻找纯技术解决方案可能不足以解决这个问题,而需要解决一些链下社区驱动的机制。可能需要减少对防止转让的依赖,更多地依赖类似Harberger tax的技术。
4. 改进钱包与支出和加密密钥的交互方式:钱包需要改进与支出和加密密钥的交互方式。当前的钱包使用确定性签名生成应用程序特定的密钥,但这些技术对钱包来说是“不透明的”,阻止了用户界面级别的安全检查。在更成熟的生态系统中,钱包需要更明确地处理签名、加密和相关功能。
5. 轻客户端的升级:轻客户端需要进行升级,以便不仅验证Layer 1的有效性,还能验证Layer 2的状态。目前的轻客户端主要验证Layer 1的区块头和交易,而未来需要验证Layer 2状态的证明,该证明植根于Layer 1的状态根。
(五)钱包如何保护用户资产并兼顾隐私问题?
钱包在保护资产和密钥方面扮演着关键角色。在传统链上环境中,钱包主要关注私钥的保护,但在ZK(零知识)世界中,钱包需要同时保护身份验证凭据和用户数据。一个例子是基于ZK-SNARK的身份系统Zupass,它允许用户生成身份验证的基本证明,同时保护用户的隐私。
然而,数据持有的问题变得更加复杂,因为用户需要在本地保存数据或依赖第三方持有加密副本之间进行权衡。为了解决这些问题,鼓励用户将密钥存储在多个设备上,并采用秘密共享技术将密钥分散存储在多个监护人之间。
同时,支持社交恢复的钱包需要管理资产恢复和加密密钥恢复,以确保安全性和可用性的平衡。这些解决方案旨在保护用户的资产和数据,并满足隐私需求,同时降低风险和提高用户体验。
(六)用什么形式表示用户身份(身份)?
目前的问题是,传统的地址概念无法满足区块链生态系统中的身份验证需求。一种解决方案是使用ENS作为身份的中心,但这种方法存在名字与个人身份属性绑定以及缺乏不受信任的反事实名称的弱点。
另一个解决方案是将更多的身份信息存储在密钥库合约中,使其成为用户的主要标识符。然而,资产仍存储在不同的地方,而密钥库合约与名称无关,可以生成特定初始参数的地址。
另一种解决方案是放弃面向用户地址的概念,更多地依赖发件人和收件人之间的直接沟通。这种方法可以减少摩擦,但需要确保钱包能够实时生成最新的支付信息。
四、总结
本文全面解读了以太坊面临的三个重要转变:Layer2扩容、智能合约钱包和隐私保护。这些转变是以太坊为了解决扩展性、安全性和隐私保护的问题而必须进行的。然而,这些转变也带来了一系列新的问题,包括用户如何管理多地址、如何进行隐形支付、如何恢复密钥、Layer2基础设施如何升级、钱包如何保护用户资产并兼顾隐私问题以及用什么形式表示用户身份。
对于这些问题,以太坊社区提出了一系列的解决方案。例如,使用隐形地址来实现隐形支付,使用验证逻辑和资产持有分离的架构来解决密钥恢复问题,对Layer2基础设施进行升级以适应新的需求,通过将密钥存储在多个设备上并采用秘密共享技术将密钥分散存储在多个监护人之间来保护用户资产,以及使用ENS或密钥库合约来表示用户身份。
要为普通用户实现简洁、安全和隐私的支付基础设施对于以太坊或者说整个加密行业的未来至关重要,要避免更加复杂的支付基础设施变成一个不透明的“抽象塔”。这不仅关乎技术可行性,还关乎普通用户的实际可访问性,我们需要挺身而出迎接这一挑战。