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

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://www.mfbz.cn/a/455659.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手撕快速排序

定义 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法. 其基本思想为:任取待排序的某个元素作为基准值,按照该排序码将待排序集合分割成两个子序列, 左子序列中所有元素均小于基准值,右子序列均大于基准值,然后左右子序列重复该过程,知道所有元素都有序为止. (核心…

unity3d Animal Controller的Animal组件中General基础部分理解

控制器介绍 动物脚本负责控制动物的所有运动逻辑.它管理所有的动画师和刚体参数,以及所有的状态和模式,动物可以做。 动物控制器 是一个动画框架控制器,根动或到位,为任何生物或人形。它利用刚体与物理世界的互动和动画师的玩动画。 States States 是不互相重叠的动画。例如…

C++ 矩形类

思维导图&#xff1a; #include <iostream> using namespace std; class Rect { private:int width;int height; public:void init(int w,int h){widthw;heighth;}void set_w(int w){widthw;}void set_h(int h){heighth;}void show(){cout << "perimeter &qu…

vue3/vue2若依框架对比,点击新增编辑跳转到新页面(新增编辑共用代码)

vue2若依框架&#xff1a; router里面定义好&#xff0c;编辑里面添加一个id {path: /filmManagement,component: Layout,hidden: true,redirect: noredirect,children: [{path: editFilmDetail,component: () > import(/views/filmManagement/editFilmDetail),name: editFi…

城市级智能网联示范区全扫描(2024版)

本篇推出城市级智能网联示范区全扫描&#xff08;提供“城市级智能网联测试示范区汇总表”、“部委推进的城市级智能网联测试示范区汇总表”&#xff09;。 文 | 吴冬升 全文约5000字&#xff0c;预计阅读14分钟 表1 城市级智能网联测试示范区汇总表 区域省份城市名称华东上海…

《JAVA与模式》之单例模式

系列文章目录 文章目录 系列文章目录前言一、单例模式的结构二、Lazy initialization holder class模式前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在阎宏博士…

《JAVA与模式》之建造模式

系列文章目录 文章目录 系列文章目录前言一、产品的内部表象二、使用场景三、使用建造模式构建复杂对象前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在阎宏博士…

下一站,华东理工大学!

Datawhale线下 承办单位&#xff1a;华东理工大学创新创业协会 华东理工大学&#xff08;East China University of Science and Technology&#xff09;&#xff0c;简称华理&#xff08;ECUST&#xff09;&#xff0c;坐落于上海市&#xff0c;是中华人民共和国教育部直属的…

机器人大赛有什么用?

机器人大赛在多个方面都具有显著的价值。首先&#xff0c;机器人大赛可以为学生提供一个实践与创新的机会&#xff0c;有助于培养学生的动手实践能力和创新思维。在比赛过程中&#xff0c;学生需要运用所学的知识和技能&#xff0c;设计、制作和调试机器人&#xff0c;这不仅可…

【前端寻宝之路】学习和总结文本和图片位置和类型设置

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-YaQjeEzlBXrYuFKV {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

【EDK II】作为UEFI的实现,EDK II 的架构是什么样的

目录 前言 EDK II 架构 配置文件 结语 前言 基本输入输出系统 (Basic Input Output System, BIOS) 最早由 IBM&#xff08;International Business Machines Corporation) 公司于1981年提出并开发&#xff0c;后来成为个人计算机(PC)的标准固件接口。但受限于传统BIOS (Le…

力扣串题:字符串中的第一个唯一字母

映射做法&#xff1a;将字母转为数字之类的转化必须在运算中实现如-a int firstUniqChar(char * s){int a[26] {0};int len strlen(s);int i;for (i 0; i < len; i)a[s[i] - a];for (i 0; i < len; i) {if (a[s[i] - a] 1)return i;}return -1; }

聚观早报 | 比亚迪e2荣耀版上市;华为享界S9正式亮相

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 3月14日消息 比亚迪e2荣耀版上市 华为享界S9正式亮相 理想汽车L系列改名 极氪全新纯电MPV车型曝光 vivo X100S外…

一键导入Figma,让团队文件管理更加便捷安全!

如何将Figma引入国内软件已成为人们关注的话题。本文将分享两种Figma导入方法&#xff0c;使您的设计文件更加安全。 两种方法&#xff0c;一键导入Figma文件 即时设计是一种基于云的设计工具&#xff0c;在功能和特性上与Figma非常相似。如果你熟悉Figma的界面&#xff0c;即…

Day31:安全开发-JS应用WebPack打包器第三方库JQuery安装使用安全检测

目录 打包器-WebPack-使用&安全 第三方库-JQuery-使用&安全 思维导图 JS知识点&#xff1a; 功能&#xff1a;登录验证&#xff0c;文件操作&#xff0c;SQL操作&#xff0c;云应用接入&#xff0c;框架开发&#xff0c;打包器使用等 技术&#xff1a;原生开发&…

RAG一文读懂!概念、场景、优势、对比微调与项目代码示例

本文结合“基于 ERNIE SDKLangChain 搭建个人知识库”的代码示例&#xff0c;为您讲解 RAG 的相关概念。 01 概念 在2020年 Facebook AI Research(FAIR)团队发表一篇名为《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》的论文。这篇论文首次提出了 RA…

Midjourney绘图欣赏系列(九)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…

行业认可 | 海云安上榜《2024年网络与信息安全行业全景图》多个领域

近日&#xff0c;深圳市网络与信息安全行业协会正式发布《2024年网络与信息安全行业全景图》。海云安凭借过硬的技术实力及成熟的网络与信息安全产品及服务获得行业认可&#xff0c;入围6大类目共计17项细分领域。包括&#xff1a; 业务安全&#xff08;软硬件开发安全、人工智…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (5 / 5)

vtkProp的组件和其他类型 通常希望将演员收集到一个依赖于变换的层次结构中。例如&#xff0c;一个机器人手臂可以由刚性连接的链接表示&#xff0c;这些链接在肩关节、上臂、肘部、下臂、腕关节和手部等关节处连接在一起。在这种配置中&#xff0c;当肩关节旋转时&#xff0c;…

[C++]20.实现红黑树。

实现红黑树 一.基本概念&#xff1a;1.红黑树的概念&#xff1a;2.红黑树的性质&#xff1a; 二.实现红黑树&#xff1a;1.基本结构&#xff1a;2.插入节点的多种情况&#xff1a;1.叔叔存在且为红&#xff1a;2.叔叔不存在/存在且为黑(单旋变色)3.叔叔不存在/存在且为黑(多旋&…
最新文章