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

news2024/11/16 13:38:24

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.coloradmin.cn/o/1515698.html

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

相关文章

Linux网络配置修改hosts映射文件关闭防火墙

Linux网络配置&系统管理 一、物理机、VMware软件、虚拟机之间的网络关系1.1 总体框架图1.2 为什么物理机、VM软件、客户机之间能够通信?1.3 查看客户机的IP地址ifconfig1.4 小节1.5 修改静态IP地址1.6 测试能不能ping通 二、修改主机名以及hosts映射文件2.1 修改主机名2.1…

物联网终端telegraf采集设备信息

背景 低功耗设备上资源有限,但又比较重要。对其的管理难度很大,有些时候又必须时刻了解其运行状况。我们自然想到的是能否有办法监控它呢?当时是有的!而且很成熟的解决方案。TICK技术栈,那TICK是什么呢? TI…

环保企业应适应行业发展趋势,不断创新和提升竞争力|中联环保圈

《2023年行业评述及2024年发展展望》一文,由中国环保产业协会撰写,全面审视了过去一年我国生态环保产业的发展状况,并对新的一年发展趋势进行了深度预测。该报告以行业主要政策标准为基础,结合报告以及新冠疫情防控转段后的经济恢…

海豚调度系列之:任务类型——SQL节点

海豚调度系列之:任务类型——SQL节点 一、SQL节点二、创建任务三、任务参数四、任务样例五、运行该任务成功之后在hive中查询结果六、使用前置sql和后置sql示例 一、SQL节点 SQL任务类型,用于连接数据库并执行相应SQL。 二、创建任务 点击项目管理-项…

SpringBoot配置达梦数据库依赖(达梦8)

maven配置 <!-- 达梦数据库 --><dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.1.193</version></dependency><dependency><groupId>com.alibaba&l…

已解决:android SDK安装时点击SDK Manager出现闪退

1、首先确保电脑里边安装了JDK&#xff0c;并且要把安装路径配置在环境变量里边&#xff0c;避免使用绝对路径 推荐%JAVA_HOME%\bin 2、在C:\Users\huanhuan\Desktop\android-sdk-windows\tools路径下找到android.bat文件打开&#xff0c;把set java_exe后改为jdk中java.exe的路…

关于stm32(CubeMX+HAL库)的掉电检测以及flash读写

1.掉电检测 CubeMX配置 只需使能PVD中断即可 但是使能了PVD中断后还需要自行配置一些PWR寄存器中的参数&#xff0c;我也通过HAL库进行编写 void PVD_config(void) {//配置PWRPWR_PVDTypeDef sConfigPVD; sConfigPVD.PVDLevel PWR_PVDLEVEL_7; …

元宇宙崛起:区块链与金融科技共绘数字新世界

文章目录 一、引言二、元宇宙与区块链的深度融合三、区块链在元宇宙金融中的应用四、金融科技在元宇宙中的创新应用五、面临的挑战与机遇《区块链与金融科技》亮点内容简介获取方式 一、引言 随着科技的飞速发展&#xff0c;元宇宙概念逐渐走进人们的视野&#xff0c;成为数字…

HTTP中的GET,POST,PUT,DELETE请求方式的区别

前言 Http定义了与服务器交互的不同方法&#xff0c;最基本的方法有4种&#xff0c;分别是GET&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE。 URL全称是统一资源定位符&#xff0c;我们可以这样认为&#xff1a;一个URL地址&#xff0c;它用于描述一个网络上的资源&am…

Unity3d版白银城地图

将老外之前拼接的Unity3d版白银城地图&#xff0c;导入到国内某手游里&#xff0c;改成它的客户端地图模式&#xff0c;可以体验一把手游的快乐。 人物角色用的是它原版的手游默认的&#xff0c;城内显示效果很好&#xff0c;大家可以仔细看看。 由于前期在导入时遇到重大挫折&…

2024腾讯云轻量主机地域怎么选择?上海/北京/广州哪个地域好?

腾讯云轻量应用服务器地域如何选择&#xff1f;地域就近选择&#xff0c;北方选北京地域、南方选广州地域&#xff0c;华东地区选上海地域。广州上海北京地域有什么区别&#xff1f;哪个好&#xff1f;区别就是城市地理位置不同&#xff0c;其他的差不多&#xff0c;不区分好坏…

北大核心期刊《思想政治课教学》投稿有什么要求?

北核《思想政治课教学》收职教、中专、大学、中小学&#xff0c;职称没要求&#xff0c;学生可以 探寻智慧之源&#xff0c;倾听思想之声&#xff0c;欢迎投稿《思想政治课教学》。我们致力于搭建一个开放、前沿的学术交流平台&#xff0c;汇聚国内外思想政治课教学的最新研究成…

如何在Linux Archcraft中配置SSH服务并结合内网穿透实现远程连接

文章目录 1. 本地SSH连接测试2. Archcraft安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接小结 5. 固定SSH公网地址6. SSH固定地址连接 Archcraft是一个基于Arch Linux的Linux发行版&#xff0c;它使用最简主义的窗口管理器而不是功能齐全的桌面环境来提供图形化用户界面。 C…

当_WIN32_WINNT大于0x500时,ToolTip窗口不显示问题排查

目录 1、前言 2、回退代码后&#xff0c;ToolTip窗口不显示了 3、使用历史版本比对法找到ToolTip窗口何时开始不显示的 4、为了给字体设置ClearType属性&#xff0c;_WIN32_WINNT宏的值从0x500修改成0x501 5、将_WIN32_WINNT宏值由从0x500修改成0x501&#xff0c;导致系统…

2024最新轻量应用服务器简介_轻量应用服务器购买指南

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器&#xff0c;CPU内存带宽配置高并且价格特别便宜&#xff0c;大带宽&#xff0c;但是限制月流量&#xff0c;轻量2核2G3M带宽61元一年、2核2G4M优惠价99元一年&#xff0c;540元三年、2核4G5M带宽165元一年&#xff0c;…

c++11语法特性

c11 1.c11发展简介 ​ 第一个比较正式的c标准是1998提出的c98标准。之后定了5年计划&#xff0c;每5年来一次大更新。在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0c;使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C…

java组合模式揭秘:如何构建可扩展的树形结构

组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构以表示整体/部分层次结构。组合模式使得客户端可以统一对待单个对象和组合对象&#xff0c;从而使得客户端可以处理更复杂的结构。 组合模式的主要组成部分包括&…

Text-to-SQL 工具Vanna进阶|数据库对话机器人的多轮对话

跟数据库对话机器人对话,我可不止一个问题。 可能基于第一句问话,还有第二句、第三句问话。。。第N句对话。所以本文测试了多轮对话功能。 单轮对话的环境搭建参考博客 Text-to-SQL 工具Vanna + MySQL本地部署 | 数据库对话机器人 我的数据是这样 1. 基础配置 import vann…

Mysql锁与MVCC

文章目录 Mysql锁的类型锁使用MVCC快照读和当前读读视图【Read View】串行化的解决 exlpain字段解析ACID的原理日志引擎整合SpringBoot博客记录 Mysql锁的类型 MySQL中有哪些锁&#xff1a; 乐观锁&#xff08;Optimistic Locking&#xff09;&#xff1a;假设并发操作时不会发…

CodeReview 规范及实施

优质博文&#xff1a;IT-BLOG-CN 一、为什么需要CodeReview 随着业务压力增大&#xff0c;引发代码质量下降&#xff0c;代码质量的下降导致了开发效率的降低&#xff0c;维护成功高等问题&#xff0c;开发效率下降后又加重了业务压力&#xff0c;最终陷入了死亡三角的内耗之…