用户视角的比特币和以太坊外围技术整理

1. 引言

要点:

  • 比特币L2基本强调交易内容的隐蔽性,P2P交易(尤其是支付)成为主流,给用户带来一定负担(闪电网络)
  • 在以太坊 L2 中,一定程度上减少了交易的隐蔽性,主流是实现更灵活的交易(例如,使用流动性池和自动市场创建模型),减轻用户的负担(Rollup)。
  • 比特币和以太坊都有针对与基本理念略有不同的向量的协议和服务(基于比特币的 DLC、BitVM、以太坊 L2 解决方案 Intmax、Plasma 等)
  • 对于以太坊和比特币来说,结合“交易内容的隐蔽性”和“交易的灵活性”的技术似乎仍然是一个有讨论空间的领域。

比特币是“一种点对点的电子现金系统”,而以太坊则是实现“基于状态机概念的广义交易”,基于这一层(以下简称L1 “Layer 1”),这两条链各有自己的设计理念。链下进行交易的方案有很多,如Layer 2(以下简称L2)。

  • L2 是 L1 协议之外的一项技术,旨在实现更快、更便宜的交易,同时保持与 L1 相同的安全级别。它通过在L1之外执行和验证交易并在L1中记录最少的必要记录,起到提高L1可扩展性的作用。

比特币、以太坊的L2等链下解决方案的基础技术极其复杂,需要深入了解每项技术才能进行横断面分析。
因此,比较它们的文章往往侧重于技术差异,Ichiro Kuwahara觉得从用户的角度从本质的设计理念和技术选型角度很难理解。
这次,Ichiro Kuwahara决定从区块链用户的角度总结哪些技术是值得选择的,而(尽可能)不描述这些技术的细节。

2. 目标用户(先决条件)

将根据以下三个关键词来解释目标用户。

  • 不是你的钥匙,不是你的硬币
    用户希望自己负责管理自己的资产。
    也可将其称为非托管钱包用户。
  • 去中心化公共区块链
    用户希望使用比特币或以太坊(或各自的 L2)
  • 信任最小化的第三方
    当用户使用分布充分的运营商(如比特币或以太坊)时,他们无法通过欺诈或串通窃取或冻结用户的资产。
    • 如,侧链的使用,优先考虑处理性能,同时抑制去中心化。侧链不受此分析的影响,因为存在由于未充分分布的侧链区块生成器的欺诈或串通而导致用户资金被冻结或被盗的风险。

3. 流程图1(交易灵活性、交易细节隐藏)

在这里插入图片描述
上图显示了根据用户的要求应该选择哪个链。从交易灵活性和交易内容隐蔽性的角度出发,设立了以下分支。

  • 分支1:支付?
    各种代币的简单支付/转账,或者使用期权、期货、衍生品、流动性池、自动市场创建(AMM)模型等金融交易的更复杂的交易。
  • 分支2:P2P(OTC)?
    1:1交易或更复杂的交易,使用N:N交易,不指定特定交易对手的流动性池,自动市场创建(AMM)模型等。这是一个分支。前一种情况发生在两个用户达成协议并按照协议进行交易时。像 Uniswap 这样的去中心化交易所 (DEX) 上的交易就属于后一类。
  • 分支3:Footprint OK?
    这是判断是否可以从区块链上记录的内容确定交易内容的分支。问题在于你是否担心被矿工或第三方组织审查,或者被利用进行抢先交易等。

有六个分支目标,越往上走,交易越灵活,越往右走,交易细节越隐蔽。

下面解释每个分支情况:

  • 1)简单的支付案例:
    在这里插入图片描述

    • 若不关心支付足迹,可使用比特币或以太坊进行交易,
    • 但减少足迹的有效方法是使用比特币和以太坊的 L2 进行支付。(详细内容将在下面的流程图2中讨论)
    • 由于不需要每次付款时都在L1上记录,因此也可以减少Tx费用。用户必须将所有 L2 交易历史记录存储在本地环境中,而不是记录到 L1,并自行承担风险(在最坏的情况下,如果丢失,将无法将资产返回到 L1)。
    • 这里存储的信息与通常存储在钱包中的“密钥”不同,因此它可能不是可以普遍保存在世界上广泛使用的非托管钱包(如 Trezor、Ledger、Metamask、Electrum)中的东西。在这种情况下,用户需要维护一个专用于特定 L2 的钱包。
  • 2)P2P合约案例:
    在这里插入图片描述
    对于比支付更复杂的 P2P (OTC) 交易,适当的链取决于“Footprint OK?”的答案。

    • 如果用户担心足迹,那么它属于比特币的链下合约。定义(执行)链下各方约定的合约内容,仅在链上执行最终结果(结算)。由于合同的内容无法从链上识别,因此除了合同当事人之外,任何人都无法得知合同的内容,甚至无法得知合同的签订。用户必须自行承担所有L2交易历史记录,而不是不记录到L1(如果丢失,最坏的情况下将无法将资产返回到L1)。
  • 3)灵活的合约案例:
    在这里插入图片描述
    对于更复杂的交易,最好的选择是使用部署在以太坊 L1 上的 DeFi 或 DEX 平台。这些都需要L1(Validator)计算执行来运行Cotnract,因此Gas(Fee)会相应更高。作为解决方法,目前正在 L2(Roll up)上实施通用合约。
    在上面的 L1 和 L2(roll up)中,足迹(合约的内容)都记录在链上。
    此外,目前不可能在链上留下足迹(合约内容)的交易。目前正在考虑在以太坊 L2 上以 ZK-contract 和 zk-zk rollup 等名称实施。

4. 流程图1结果分析(在交易灵活性和交易细节隐藏方面)

在这里插入图片描述
上面的表格列出了流程图的每个结论。

交易灵活性随着阶梯的上升而增加,特别是对于 N:N 交易以及使用流动性池和不指定特定交易对手的自动市场创建(AMM)模型的更复杂的交易,而且,越向右移动,交易细节就越容易被隐藏。 更高的交易隐蔽性意味着交易在链外定义和执行,这降低了 L1 中记录的数据和 L1 验证器的计算成本,但另一方面,交易必须由用户自己定义和执行。
特别是比特币正在积极开发闪电网络,它根据这些用户需求扩展了P2P支付。

综上所述,以太坊在一定程度上减少了交易的隐蔽性,转而注重灵活的交易,减轻用户的负担(左上),而比特币则基本减少了交易内容的隐蔽性,可以说,重点是在P2P交易(尤其是支付)给用户带来了一定的负担。

5. 流程图2(在流程图1的结果上添加分支)

通过将分支“你能让你的节点保持在线吗?”添加到上面流程图 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)链上合约案例
    在这里插入图片描述

    • 更复杂的交易,如使用N:N交易或非指定流动性池或自动市场创建(AMM)模型的交易,使用以太坊L1上的DeFi和DEX应用程序,不强制用户提出在线请求,这是主流。
    • 虽然目前还处于研究阶段,还没有流行的服务,但未来使用基于以太坊 L2 解决方案 Rollup 构建的 DeFi 或 DEX 应用程序来运行它可能会成为主流。
    • Rollup 在 L1 中工作,通过让一个称为操作员的实体在链外验证、执行和更新用户交易的状态,并定期压缩它们并在 L1 中记录它们(通常称为“Blob”)。这是一种 L2 解决方案,可降低执行和存储交易的成本。用户可以将其资产锁定到L1智能合约中,并通过将后续交易传递给运营商而不是将其广播到L1来继续执行交易。
    • Rollup运营商无法拿走Rollup用户的资金,而且即使运营商消失,用户也可以在L1上证明自己在L2上的状态,并将资产撤离到L1,而不需要依赖运营商。
      Roll up大致分为两种:
      • Optimistic rollup:
        • Optimistic Rollup 并不验证操作者提交的 Blob 内容(即交易)是否在 L1 被正确验证和处理。
        • 如果运营商进行欺诈,用户可以证明欺诈并将状态再次更新为正确的状态。同时,经营者因欺诈行为也会受到处罚。
      • ZK rollup:
        • 在ZK rollup中,Operator将编译后的交易与Blob一起验证,并将执行证明作为ZKP提交给L1。ZKP在L1定义的合约中进行验证,OK的则记录下来。

    换句话说,两者的主要区别在于,是用户自己验证Rollup算子提交的Blob是否正确,还是部署到L1的合约验证。

    这种差异在上面流程图的分支中表现为 Optimistic rollup,需要链上监控,而 ZK rollup 则不需要。

    请注意,如果 Rollup 算子消失,用户将需要将资产撤离到 L1,但足以恢复最新 Rollup 状态的交易数据将根据需要提供下载。(这是一个称为“数据可用性”的要求)

    当前的汇总将交易数据(最少的必要信息)存储为 L1 中的调用数据。这就是交易详细信息在 Rollup 上保留足迹的原因。

  • 4)P2P链下合约
    在这里插入图片描述
    P2P链下合约中,合约内容由用户之间约定,内容由用户本地持有,不记录在链上。除订阅者外,任何人都无法确定区块链中的内容。

    • DLC(Discreet Log Contract)
      一个典型的例子是在比特币上运行的离散日志合约(DLC) 。
      DLC 是一种能够实现两方之间衍生品等金融交易的技术。需要预言机公布用户以外的特定事件(如BitcoinUSD现货价格)的结果,但预言机不仅需要知道用户交易的内容,还需要知道是否存在交易与否,预言机没有必要窃取用户的资金,你也不能这样做。用户唯一需要让客户上线的时间是签订合同并在合同到期时付款。CryptoGarage 正在开发这项技术,开源代码见:https://github.com/p2pderivatives/rust-dlc。
    • 闪电网络上的DLC
      此外,通过闪电网络直接通道连接的两方可以建立DLC通道,并在合约执行时继续交易,无需支付费用。(详情参看2022年11月29日博客 DLC on Lightning)与闪电网络类似,需要对区块链进行监控,以确保对方不以无效状态退出到L1,因此用户必须不断在线监控区块链。
    • BitVM:详情参考2023年11月9日博客Deep dive into BitVM -Computing paradigm to express Turing-complete Bitcoin contracts-
      BitVM 是在比特币上实现图灵完备合约的提议。合约的内容由用户在链外定义。
      不过需要强调的是,这并不是一个能立即在比特币上实施目前在以太坊 L1 中实施的各种合约的灵丹妙药解决方案。原因如下:
    • 合同仅限2方
    • 双方需要大量的计算和交互(执行一份合约彼此交换和持有的信息从几百MB到几GB)

6. 流程图2考虑(交易灵活性、交易隐蔽性、用户负载角度)

在这里插入图片描述
上面的三维图是迄今为止流程图中描述的每笔交易的摘要。

目前以太坊最积极推荐的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 这样最小化信任的交易协调器来实现兼具灵活性和隐蔽性的交易时,需要考虑协调器如何在不知道交易细节的情况下协调交易,问题似乎在于用户如何处理交易。当协调者消失时可以继续或强制终止交易。

7. 概括

比特币是“点对点电子现金系统”,以太坊是实现“基于广义交易的状态机概念”,这两条链有着各自独特的设计理念。发现有多种提案混合在一起(比特币网络、以太坊 Rollup)以及原始想法略有不同的提案。

此外,还发现这两个链目前都没有能力“实现对交易细节保密的灵活合约”。

目前,每天都有关于区块链的各种提议。为了避免被如此巨大的信息量所左右,Ichiro Kuwahara觉得基于一个简单的分类轴来思考会是一个好主意,比如像这次的“用户视角”。

8. 问答

到目前为止的分析已经大大简化了分析要素,所以读者可能会有一些疑问。预期的问答如下所述。

  • Q1. Liquid等侧链分类在哪里?
    侧链是充当主链(例如比特币或以太坊)侧链的链。通过将资产从主链转移到侧链,用户可以更快、更低成本地进行交易。
    侧链采用与主链不同的共识算法,通过集中更新区块的权限来提高性能。
    理论上,该更新机构可以通过欺诈或串通的方式窃取或冻结用户在侧链上的资产,因此被排除在本次分析之外。

    • (12/28 新增)我们已按照nuno的指示进行更正,谢谢!
      Polygon 被描述为与 Liquid 相同的侧链,但添加它是因为存在误解的风险。
      Polygon 被设计为 Plasma,即使 Polygon 网络出现故障,用户也可以通过向以太坊 L1 提交所有权证明来转移其资产。然而,这仅限于 MATIC,并且对于 ERC20 代币来说是不可能的。因此,Polygon 也被排除在本次分析之外。
  • 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の周辺技術を(なるべく)シンプルに整理する。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2868502.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux进程状态】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、直接谈论Linux的进程状态 看看Linux内核源代码怎么说 1.1、R状态 -----> 进程运行的状态 1.2、S状态 -----> 休眠状态(进程在等待“资源”就绪) 1.3、T状…

突破编程_前端_JS编程实例(工具栏组件)

1 开发目标 工具栏组件旨在模拟常见的桌面软件工具栏,所以比较适用于 electron 的开发,该组件包含工具栏按钮、工具栏分割条和工具栏容器三个主要角色,并提供一系列接口和功能,以满足用户在不同场景下的需求: 点击工具…

Vue+SpringBoot打造音乐平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的音乐平台,包含了音乐…

tigramite教程(五)使用TIGRAMITE 进行自助聚合和链接置信度量化

使用TIGRAMITE 进行自助聚合和链接置信度量化 自助聚合(Bagging)和置信度估计例子数据生成模型基本的PCMCIBagged-PCMCI使用优化后的pc_alpha进行自举聚合使用优化的pc_alpha进行CMIknn的自举聚合 TIGRAMITE是一个用于时间序列分析的Python模块。它基于P…

如何批量获取公众号所有文章的阅读数点赞数和留言数导出excel?

如何批量获取公众号所有文章的阅读数点赞数和留言数导出excel?我写了个脚本批量抓取,导出的excel文章数据包含文章日期,文章标题,文章链接,文章简介,文章作者,文章封面图,是否原创&a…

《圣斗士星矢:纵横宇宙》(上)AI制作真人版大电影

《圣斗士星矢:纵横宇宙》(上)AI制作真人版大电影 平行宇宙,黑暗来袭,十二件黄金圣衣合体成为究极秘密武器! 《圣斗士星矢:纵横宇宙》(上)电影开场,星矢等一众…

网络通信与网络协议

网络编程是指利用计算机网络实现程序之间通信的一种编程方式。在网络编程中,程序需要通过网络协议(如 TCP/IP)来进行通信,以实现不同计算机之间的数据传输和共享。在网络编程中,通常有三个基本要素 IP 地址:定位网络中某台计算机端口号port:定…

Nginx高级技术: 代理缓存配置

一、缓存说明 Nginx缓存,Nginx 提供了一个强大的反向代理和 HTTP 服务器功能,同时也是一个高效的缓存服务器。一般情况下系统用到的缓存有以下三种: 1、服务端缓存:缓存存在后端服务器,如 redis。 2、代理缓存&#…

6.【Linux】进程间通信(管道命名管道||简易进程池||简易客户端服务端通信)

介绍 进程间通信的方式 1.Linux原生支持的管道----匿名和命名管道 2.System V-----共享内存、消息队列、信号量 3.Posix------多线程、网路通信 进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。…

UE4_调试工具_绘制调试球体

学习笔记,仅供参考! 效果: 步骤: 睁开眼睛就是该变量在此蓝图的实例上可公开编辑。 勾选效果:

VUE3生命周期钩子

概念 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在…

文件包含例子

一、常见的文件包含函数 php中常见的文件包含函数有以下四种: include() require() include_once() require()_once() include与require基本是相同的,除了错误处理方面: include(),只生成警告(E_WARNING)&#x…

基于java+springboot+vue实现的自习室管理和预约系统(文末源码+Lw)23-177

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装自习室管理和预约系统软件来发挥其高效地信息处理的作用&a…

Python爬取淘宝商品评价信息实战

文章目录 一、分析需要爬取的页面二、实现爬取商品评价信息的代码1、通过解析显示评价信息的元素获取商品评价信息2、通过mitmproxy代理进行流量抓包获取商品评价信息 三、附-完整代码 前期出了一个《爬取京东商品评价信息实战》的教程,最近又有网友提到要出一个爬淘…

案例分析篇13:系统分析与设计考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

幸福金龄会第二届《锦绣中华》广东省中老年协会携团队共襄盛举

近日,一场盛大的文化艺术盛宴——第二届《锦绣中华》中老年文旅文化艺术节在广东隆重举行。此次活动由幸福金龄会主办,吸引了广东省内各中老年协会的领导及文艺团队纷纷参与,共同为中华文化的传承与发展贡献力量。 广东省各中老年协会的会长、…

Java项目:56 ssm681基于Java的超市管理系统+jsp

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 功能包括:商品分类,供货商管理,库存管理,销售统计,用户及角色管理,等等功能。项目采…

WpsOfficeExcel表格固定首行,点视图下的冻结窗格下的冻结首行

wps 和 微软 excel 表格固定首行的方法基本一样 WpsExcel表格固定首行,点视图下的冻结窗格下的冻结首行 WpsExcel表格固定首行,点视图下的冻结窗格下的冻结首行 Excel表格固定首行,点视图下的冻结窗格下的冻结首行 在Excel中固定首行,通常是通过“冻结窗格”功能…

复现文件上传漏洞

一、搭建upload-labs环境 将下载好的upload-labs的压缩包,将此压缩包解压到WWW中,并将名称修改为upload,同时也要在upload文件中建立一个upload的文件。 然后在浏览器网址栏输入:127.0.0.1/upload进入靶场。 第一关 选择上传文件…

综合实验---Web---进阶版

实验配置: 7-1为内网Nginx服务器;7-2和7-3为Web服务器;7-4为网关服务器;7-5为外网客户机; yum安装Nginx;yum安装Mysql; 编译安装PHP;编译安装 由于我们Nginx和Mysql都是yum安装&…