要点:
比特币是“一种点对点的电子现金系统”,而以太坊则是实现“基于状态机概念的广义交易”,基于这一层(以下简称L1 “Layer 1”),这两条链各有自己的设计理念。链下进行交易的方案有很多,如Layer 2(以下简称L2)。
比特币、以太坊的L2等链下解决方案的基础技术极其复杂,需要深入了解每项技术才能进行横断面分析。
因此,比较它们的文章往往侧重于技术差异,Ichiro Kuwahara觉得从用户的角度从本质的设计理念和技术选型角度很难理解。
这次,Ichiro Kuwahara决定从区块链用户的角度总结哪些技术是值得选择的,而(尽可能)不描述这些技术的细节。
将根据以下三个关键词来解释目标用户。
上图显示了根据用户的要求应该选择哪个链。从交易灵活性和交易内容隐蔽性的角度出发,设立了以下分支。
有六个分支目标,越往上走,交易越灵活,越往右走,交易细节越隐蔽。
下面解释每个分支情况:
1)简单的支付案例:
2)P2P合约案例:
对于比支付更复杂的 P2P (OTC) 交易,适当的链取决于“Footprint OK?”的答案。
3)灵活的合约案例:
对于更复杂的交易,最好的选择是使用部署在以太坊 L1 上的 DeFi 或 DEX 平台。这些都需要L1(Validator)计算执行来运行Cotnract,因此Gas(Fee)会相应更高。作为解决方法,目前正在 L2(Roll up)上实施通用合约。
在上面的 L1 和 L2(roll up)中,足迹(合约的内容)都记录在链上。
此外,目前不可能在链上留下足迹(合约内容)的交易。目前正在考虑在以太坊 L2 上以 ZK-contract 和 zk-zk rollup 等名称实施。
上面的表格列出了流程图的每个结论。
交易灵活性随着阶梯的上升而增加,特别是对于 N:N 交易以及使用流动性池和不指定特定交易对手的自动市场创建(AMM)模型的更复杂的交易,而且,越向右移动,交易细节就越容易被隐藏。 更高的交易隐蔽性意味着交易在链外定义和执行,这降低了 L1 中记录的数据和 L1 验证器的计算成本,但另一方面,交易必须由用户自己定义和执行。
特别是比特币正在积极开发闪电网络,它根据这些用户需求扩展了P2P支付。
综上所述,以太坊在一定程度上减少了交易的隐蔽性,转而注重灵活的交易,减轻用户的负担(左上),而比特币则基本减少了交易内容的隐蔽性,可以说,重点是在P2P交易(尤其是支付)给用户带来了一定的负担。
通过将分支“你能让你的节点保持在线吗?”添加到上面流程图 1 中的六个结论中,创建一个更详细的流程图。
这个问题指的是你是否有基础设施来持续监控区块链的状态,即使用户没有进行交易,最好保持全节点与链同步以满足要求,这给用户带来了很高的障碍。
用户可以通过使用以太坊全节点运营(如 Alchemy 和 Public 节点)或 Lightning Costodial 钱包(主要由 LN 服务提供商提供)等服务来减轻自己的负担,但这由于对服务提供商的信任是一种前提条件,本案不适用。
1)简单的支付案例
用户在L1上进行支付时离线没有问题(无分支)
2)链下支付案例
比特币 L2 闪电网络是一种支付专用技术。Plasma 是以太坊 L2 的一个例子(尽管它可能不是目前发展的主流)。
在这两种情况下,交易历史均由用户本地保存,而不会记录在链上,通过在L1上反映本地保存的状态,资产可以随时从L2转移到L1。
然而,对于闪电网络和 Plasma 来说,在将资产转移到 L1 时无法验证用户提交的状态是否正确。因此,用户需要监控区块链,看看自己的状态是否由于他人未经授权的提交而以错误的状态反映在L1中,如果有错误的状态,则需要采取行动。这就是为什么用户需要始终保持节点在线的原因。
在以太坊项目中,交易的保密性有所降低,取而代之的是减轻用户负担的灵活交易(左上),而 Plasma 可以说是一个正在走向相反方向的项目。(就是这样)为什么我认为这是发展的主流。)
在基本上强调交易内容隐蔽性、以P2P交易(尤其是支付)为主的给用户带来一定负担的比特币中,闪电网络可以说是直接继承了这一思想的主流比特币L2开发技术。
另一个不强迫用户始终在线的独特项目是Intmax 。Intmax是一种专门用于支付的以太坊L2技术,除了支付之外不需要用户在线。 通过该技术,进行过交易的用户的账户信息会定期记录在L1中,但不会记录详细信息。
我认为这是一个非常独特的项目,专注于减轻用户的负担并保持交易隐藏。
3)链上合约案例
换句话说,两者的主要区别在于,是用户自己验证Rollup算子提交的Blob是否正确,还是部署到L1的合约验证。
这种差异在上面流程图的分支中表现为 Optimistic rollup,需要链上监控,而 ZK rollup 则不需要。
请注意,如果 Rollup 算子消失,用户将需要将资产撤离到 L1,但足以恢复最新 Rollup 状态的交易数据将根据需要提供下载。(这是一个称为“数据可用性”的要求)
当前的汇总将交易数据(最少的必要信息)存储为 L1 中的调用数据。这就是交易详细信息在 Rollup 上保留足迹的原因。
4)P2P链下合约
P2P链下合约中,合约内容由用户之间约定,内容由用户本地持有,不记录在链上。除订阅者外,任何人都无法确定区块链中的内容。
上面的三维图是迄今为止流程图中描述的每笔交易的摘要。
目前以太坊最积极推荐的L2开发是rollup,它专注于交易灵活性而不是交易隐蔽性,而比特币则是闪电网络,是强调隐私的P2P支付。两者可以说都继承了以太坊和比特币L1的设计理念。
另外,以太坊上注重简单功能、强调隐私的Intmax和Plasma,以及比特币上执行更复杂交易同时保持P2P匿名性的DLC和BitVM,与上面的侧重点有所不同,我想大家可以看一下。
兼具交易灵活性和隐蔽性的交易目前正在考虑以 ZK-contract 和 zk-zk rollup 等名称在以太坊 L2 上实现。(参看2020年3月27日博客Aztec: Fast Privacy with ZK² Rollup)
当像BitVM这样的P2P交易扩展到N:N并实现兼具灵活性和隐蔽性的交易时,用户之间的交互数量可能会成为一个问题。
另外,当使用 rollup 这样最小化信任的交易协调器来实现兼具灵活性和隐蔽性的交易时,需要考虑协调器如何在不知道交易细节的情况下协调交易,问题似乎在于用户如何处理交易。当协调者消失时可以继续或强制终止交易。
比特币是“点对点电子现金系统”,以太坊是实现“基于广义交易的状态机概念”,这两条链有着各自独特的设计理念。发现有多种提案混合在一起(比特币网络、以太坊 Rollup)以及原始想法略有不同的提案。
此外,还发现这两个链目前都没有能力“实现对交易细节保密的灵活合约”。
目前,每天都有关于区块链的各种提议。为了避免被如此巨大的信息量所左右,Ichiro Kuwahara觉得基于一个简单的分类轴来思考会是一个好主意,比如像这次的“用户视角”。
到目前为止的分析已经大大简化了分析要素,所以读者可能会有一些疑问。预期的问答如下所述。
Q1. Liquid等侧链分类在哪里?
侧链是充当主链(例如比特币或以太坊)侧链的链。通过将资产从主链转移到侧链,用户可以更快、更低成本地进行交易。
侧链采用与主链不同的共识算法,通过集中更新区块的权限来提高性能。
理论上,该更新机构可以通过欺诈或串通的方式窃取或冻结用户在侧链上的资产,因此被排除在本次分析之外。
Q2. 还没有引入混合等秘密技术吗?
该分析仅关注隐藏是否在交易中原生实现。在进行交易时,当交易本身主要出于以下目的时,作为功能特征的交易保密与被第三方查看和审查等的风险之间存在差异“隐蔽”。我个人认为确实如此,所以这次我排除了旨在“隐蔽”本身的技术。
Q3.没有对Validium等专注于DA的技术进行分析。
这不包括在本次分析中。原因是,当使用分布不充分的 Operator、Validator 等时,很难选择一种技术来防止它们因欺诈或串通而冻结用户的资产(用户可以自行收回资金)。是因为它是一个先决条件。
Q4. 没有安全视角
安全性受到多种因素的影响,如底层密码原语本身的安全性、用户进行的交易细节和密钥管理方法、基于理论实现的软件的质量及其管理体系等。在这个大群体中比较安全性,所以本文省略了。
Q5.Account模型和UTXO模型的隐私是不同的。
从“链接交易明细和用户”的角度来看,交易明细和余额链接到账户的模型和存在未使用资金碎片及其所有者的UTXO模型之间的链接难易程度是不同的。
这次只是从“交易明细痕迹”的角度进行分析,所以上面的内容就不涉及到了。
Q6.什么是原子交换?
原子交换被认为是广义上的支付(双方同意的两种支付的组合)。每次支付的便利性和隐私性取决于要交换的资产所搭载的技术(如闪电网络和比特币 L1)取决于此。
Q7.没有谈到在比特币上实现各种合约的契约?
契约要求激活比特币的新操作码(换句话说,软分叉),并且尚不清楚何时(或是否)发生这种情况,因此本文将其排除在外。
Q8.没有讨论处理比特币上的任意代币?
有许多处理比特币代币的项目。目前主流的有RGB、Taproot Assets Protocol等。
这些包含了UTXO中某处代币的类型和数量,但基本上只有交易方才能识别类型和数量等内容。即使在处理比特币上的资产时,也可以说(基本上)继承了P2P交易强调交易隐蔽性的思想。还有计划利用闪电通道在L2上进行资产交易。
理论上,相信比特币上的交易可以用原生资产、BTC或任何其他资产进行。(这自然会增加开发步骤的数量,因此可能需要一段时间才能实现。)
[1] 2023年12月27日Ichiro Kuwahara博客 BitcoinとEthereumの周辺技術を(なるべく)シンプルに整理する。