当前位置: 首页 > news >正文

Bitcoin Bridge:治愈还是诅咒?

1. 引言

主要参考:

  • Bitcoin Bridges: Cure or Curse?

2. 为何需关注Bitcoin bridge?

当前的Bitcoin bridge,其所谓bridge,实际是deposit:
在这里插入图片描述
在其它链上的BTC情况为:
在这里插入图片描述
尽管当前约有43.7万枚BTC在其它链上,但其去中心化程度不足0.3%。
在这里插入图片描述

3. Bitcoin bridge 101

Bitcoin bridge的目标是:

  • 将BTC存入某appchain(“application chain”)内
  • 在appchain内,将BTC用作某原生资产
  • 将BTC赎回到Bitcoin
  • 用户体验(UX,User Experience):与在中心化交易所内使用BTC一样
  • 安全性(Security):总是能拿回你的BTC

但是需注意:

  • 在Bitcoin和appchain上,二者的信任模型是有差异的
Bitcoin链上的BTC其它appchain上的BTC
所需资源?Bitcoin钱包Bitcoin钱包、appchain钱包、bridge BTC的方式
所需信任?Bitcoin网络是安全的、钱包未损坏Bitcoin网络是安全的、appchain网络是安全的、钱包未损坏、(可能是中心化的)bridge未损坏
如何检查?开源代码开源代码、中心化bridge的声誉

在这里插入图片描述

3.1 Wrapping

BTC仅存在于Bitcoin链上。

所谓Wrapping,是指:

  • 在另一条链上,创建1:1的BTC原生token表示。

在计算机科学属于中:

  • 获取某UTXO state的write lock,并确保在该write lock释放之前,在其它链上完成(applied)updates

3.2 为何bridge如此难?

在这里插入图片描述
这是一个好的、老的公平交易问题:

  • Alice有BTC,Bob有苹果,如何确保二者交易总是公平的?
    在这里插入图片描述

在数字世界中,总是有某人先做动作,为确保所有情况下的100%公平性:

  • 需引入可信第三方
    在这里插入图片描述

这与bridge的关系为:

  • Wrapping:将BTC,替换为,wrapped BTC
  • Unwrapping:将wrapped BTC,替换为,BTC

即,需有人在Bitcoin链上做BTC的锁定和解锁。

bridge的难点在于:

  • 如何确保在锁定的同时,同步,在appchain上mint wrapped BTC?即保证整个bridge操作的原子性。
    在这里插入图片描述

bridge的挑战在于:

  • 选择合适的custodian(监护人)
    • 中心化实体
    • 委员会/联盟
    • 第三方网络的共识
    • 所关联链的共识

在这里插入图片描述

3.3 bridge最好情况:链共识

bridge最好情况:链共识,即继承目标链的安全性/去中心化。
在这里插入图片描述

如:

  • 以太坊,验证,Bitcoin SPV proof
  • Bitcoin,验证,以太坊SPV proof
  • 需有一个在线方负责relay proofs

但这需要引入新的Bitcoin opcode,来验证其它网络/系统的lock/unlock。

3.4 当今的BTC bridge:hard模式

希望能实现的目标为:

  • 根据其它链上的事件,来lock/unlock Bitcoin链上的BTC

问题在于:

  • Bitcoin链并不知道其它链上的事件。

因此,需要有人来处理BTC的lock/unlock。
当前大多数(中心化)BTC bridge的mint和redeem操作流程为:
在这里插入图片描述
但是,这样的中心化bridge,没有防盗/扣押/审查/丢失保护。
在这里插入图片描述

3.5 如何在不改变Bitcoin的情况下,实现去中心化bridge?

在这里插入图片描述
如何在不改变Bitcoin的情况下,实现去中心化bridge?
可采用如下措施:

  • 1)支持任何人成为operator/custodian。
  • 2)意识到情况更糟……则将BTC发送给网络上的随机用户。
  • 3)使用与Bitcoin相同的工具来解决:
    • 激励措施:operator锁定抵押
    • 惩罚:若operator行为不端,则slash抵押(且 补偿受害者)

如interBTC:

  • 1)任何人都可在interlay网络注册运行vaults,并存入抵押
  • 2)若用户锁定BTC,其锁定值应小于抵押值(即要求过度抵押)
    在这里插入图片描述
  • 3)则interlay网络为用户mint iBTC。
  • 4)若用户想要赎回BTC,Good Vault情况下,则:
    • 用户先返还iBTC,
    • 然后Vault将BTC返还给用户,
    • Vault的抵押解锁
  • 5)若用户想要赎回BTC,Bad Vault情况下,则:
    • 用户先返还iBTC,
    • 然后Vault fails,
    • 用户被偿付(或,尝试不同的Vault)
      在这里插入图片描述

其中,可采用如下方式来验证Bitcoin payment:【用于验证BTC锁定,以及BTC赎回完成】

  • 将Bitcoin light client (SPV) 作为智能合约部署
    • 可跟踪所有Bitcoin区块头
    • 可验证Bitcoin交易
  • 其安全模型为:若在Bitcoin主链上存在,则必须有效(与任何手机钱包一样)
  • 需有人负责持续更新该light client为最新
    在这里插入图片描述
    总之,interBTC bridge中:
  • issuer为智能合约
  • 任何人可参与的,由Vaults组成的无需许可的网络
  • 作为安全保证,Vaults需过度抵押
  • 验证:SPV light client
  • 安全假设:总是能拿回BTC,或者被偿付。
    在这里插入图片描述
    在此,忽略了:
  • 抵押管理和流动性
    • Vault抵押市值可能会下降
    • 与lending协议一样,会top up或被清算
  • 如何获得BTC报价?
    • 需要oracle
    • 可混合中心化交易所和去中心化交易所报价

还存在其它扩展:

  • Vault模式
    • Single key
    • Vault = multisig (plain, musig, MPC threshold sig,…)
    • Free for all vs pre-defined group vs one big Vault
  • 抵押类型及金额
    • Full / partial
    • Diversified (USDC, ETH,…) vs native token (risky)
  • 安全假设
    • Pessimistic / optimistic
  • 验证类型
    • Light client / 3rd party oracle / coinvote(共同投票)

4. 现有Bitcoin bridge方案对比

现有Bitcoin bridge方案对比为:

BTC保管/安全模型是否抵押?
RSK由第三方群体组成的多签
Stacks xBTC中心化第三方保管
Stacks sBTC由STX质押者组成的多签,会轮换是,但仅抵押STX token
tBTC v2由大量(50/100)第三方组成的多签,会轮换
Liquid由侧链(联盟系统)operators组成的多签。
Fedmint由mint(联盟系统)operators组成的多签。
CashuSingle Key,为mint(保管系统)operator。
Interlay iBTC由抵押过的第三方保管人组成的去中心化网络是(多种抵押物)

在这里插入图片描述

5. 其它bridge模式

5.1 miners强化的bridge

所谓miners强化的bridge,是指:

  • 由Bitcoin miners验证bridge,确保locking/unlocking处理正确。

如:

  • BIP300:基于很长一段时间,miners对peg-in和peg-out交易进行投票。
    • 缺点是:需要硬分叉

更多细节,可参看:

  • https://layertwolabs.com/(https://github.com/LayerTwo-Labs)

5.2 基于zkRollup实现的bridge

所谓基于zkRollup实现的bridge,是指:

  • Bitcoin通过检查cryptographic proof,来验证appchain上的lock/unlock是否正确。

如:

  • 将appchain上状态的验证编码为一个opcode。验证ZK proofs是非常高效的(创建ZK proofs是昂贵的)。
    • 缺点是:需要分叉
    • 需要ZK技术的成熟

更多细节,可参看:

  • Validity Rollups on Bitcoin(https://github.com/john-light/validity-rollups)

6. 总结

Bridge问题,等价为,安全保管问题。

Cure(治愈):

  • 更多应用场景和BTC使用,不对Bitcoin造成安全风险。
  • 若使用安全bridge,客观上比中心化交易所更安全。

Curse(诅咒):

  • 99%的BTC bridge是中心化的,且错误营销的
  • 去中心化很难,而且是有代价的(资本效率)
  • 其他链上增加手续费,而不是Bitcoin

6.1 走向非保管bridge

完全的non-custodial bridge是不可能的。
可能的是:为专有应用设置的non-custodial bridge。

如:

  • Lending:
    • 用户BTC与第三方多签管理
    • 仅当用户贷款时,第三方才能获得其BTC

具体实现方式为:

  • DLC(discrete log contracts):基于交易汇率,编码不同的outcomes。
  • 另一 第三方:oracle基于outcome签署交易(理想情况下,应使用“blind”盲签名)。

但是:

  • 这需要信任oracle。“但是”大多数去中心化的金融应用程序都是这样。

在这里插入图片描述

参考资料

[1] Interlay合伙人Alexei Zamyatin Bitcoin Bridges: Cure or Curse?

相关文章:

Bitcoin Bridge:治愈还是诅咒?

1. 引言 主要参考: Bitcoin Bridges: Cure or Curse? 2. 为何需关注Bitcoin bridge? 当前的Bitcoin bridge,其所谓bridge,实际是deposit: 在其它链上的BTC情况为: 尽管当前约有43.7万枚BTC在其它链上…...

Netty应用(七) 之 Handler Netty服务端编程总结

目录 15.Handler 15.1 handler的分类 15.1.1 按照方向划分 15.1.2 handler的结构 15.2 输入方向ChannelInboundHandlerAdapter 15.2.1 输出方向Handler的顺序 15.2.2 多个输入方向Handler之间的数据传递 15.2.2.1 handler消失了 15.2.2.2 手动编写netty提供的new Strin…...

LeetCode、1268. 搜索推荐系统【中等,前缀树+优先队列、排序+前缀匹配】

文章目录 前言LeetCode、1268. 搜索推荐系统【中等,前缀树优先队列、排序前缀匹配】题目类型及分类思路API调用(排序前缀匹配)前缀树优先队列 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创…...

计算机视觉基础:矩阵运算

矩阵及其表示方式 一个矩阵是由行(row)和列(column)组成的一个矩形数组,通常包含数字。我们可以用大写字母(如 A、B)来表示一个矩阵。例如,矩阵 A 可能看起来像这样: A [ a11 a12 a13 ][ a21 a22 a23 ][ a31 a32 a3…...

Gateway中Spring Security6统一处理CORS

文章目录 一、起因二、解决方法 一、起因 使用了gateway微服务作为整体的网关,并且整合了Spring Security6;还有一个system微服务,作为被请求的资源,当浏览器向gateway发送请求,请求system资源时,遇到CORS…...

突破编程_C++_基础教程(输入、输出与文件)

1 流和缓冲区 C中,流( stream )和缓冲区( buffer )是两个紧密相关的概念,它们在处理输入和输出时起着重要的作用。 流( Stream ) 流是一种抽象的概念,用于表示数据的流动…...

UE的 HUD 类中的必备方法和属性

在屏幕上绘制的方法 1. DrawText() DrawText() 方法允许开发者在屏幕上渲染文本。参数包括文本内容、位置、颜色、字体、缩放等。 void DrawText(const FString& Text, const FLinearColor& TextColor, float ScreenX, float ScreenY, UFont* Font, float Scale 1.…...

单片机的认识

单片机的定义 先简单理解为: 在一片集成电路芯片上集成了微处理器(CPU )存储器(ROM和RAM)、I/O 接口电路,构成单芯片微型计算机,即为单片机。 把组成微型计算机的控制器、运算器、存储器、输…...

转发:udig安装 用来为geoserver上shp地图配置显示样式 颜色

下载udig,解压缩 这东东是基于eclipse的,需要Java JRE 把 JDK 1.8 里面的jre目录拷贝到 udig目录下面 udig下载、安装及汉化,简单生成geoserver图层样式sld-CSDN博客...

Linux--常用命令(详解)

详细目录 一、终端命令格式二、显示文件列表命令-ls2.1作用2.2格式2.3 ls常用选项2.3.1 ls -a2.3.2 ls -l(等价于 ll)2.3.2 ls -h 三、相对路径与绝对路径3.1绝对路径3.2相对路径 四、目录操作命令 -cd4.1作用4.2格式4.3案例4.3.1 cd -: 返回上一次所在目录4.3.2 cd…...

SouthLeetCode-打卡24年02月第1周

SouthLeetCode-打卡24年02月第1周 // Date : 2024/02/01 ~ 2024/02/04 034.合并两个有序链表 (1) 题目描述 034#LeetCode.21.#北岸计划2024/02/01 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 (2) 题解代码 cla…...

vscode的cmake工具小三角符号旁边没有目标的解决方法

vscode里面写了个项目,找了半天没办法用cmake调试,最后发现是cmake里面的set(CMAKE_BUILD_TYPE Release)导致的,都是release模式了当然不能调试了;改成Debug就行了 参考:https://stackoverflow.com/questions/7549672…...

Servlet JSP-Eclipse安装配置Maven插件

Maven 是一款比较常用的 Java 开发拓展包,它相当于一个全自动 jar 包管理器,会导入用户开发时需要使用的相应 jar 包。使用 Maven 开发 Java 程序,可以极大提升开发者的开发效率。下面我就跟大家介绍一下如何在 Eclipse 里安装和配置 Maven 插…...

os模块

os 模块是 Python 中用于与操作系统进行交互的标准库之一。它提供了许多函数来执行文件和目录操作,管理进程以及与操作系统交互的其他功能。 下面是一些 os 模块中常用的函数和功能: 文件和目录操作: os.getcwd(): 返回当前工作目录的路径。…...

【C语言进阶】深度剖析数据在内存中的存储--上

1. C语言中的数据类型的简单介绍 注:C99标准里面,定义了bool类型变量。这时,只要引入头文件stdbool.h ,就能在C语言里面正常使用bool类型。 1.1 在C语言中各类型所占内存空间的大小如下 char类型的数据类型大小为1字节即8比特位。…...

【doghead】VS2022 win11 安装配置WSL2 以编译linux端的cmake项目并运行2

【bifrost】VS2022 win11 安装配置WSL2 以编译linux端的cmake项目并运行1 完成了WSL2的安装。13900K 的电脑安装了ubuntu22.04构建中出现了一些问题,fix了。发现libuv 似乎不识别,认为是libuv.so ,无法让worker识别到uv 从而没构建。干脆单独构建好了,官方的脚本如此:而且…...

【教程】C++语言基础学习笔记(七)——Array数组

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【C语言基础学习】系列文章 第一章 《项目与程序结构》 第二章 《数据类型》 第三章 《运算符》 第四章 《流程控制》 第五章…...

BUGKU-WEB GET

题目描述 没有提示,就一个get,启动场景看看: 解题思路 显然是PHP语言解读分析代码吧写出你的payload 相关工具 略 解题步骤 进入场景分析代码 $what$_GET[what]; echo $what; if($whatflag) echo flag{****};前两句:使用get…...

蓝桥杯每日一题----唯一分解定理

唯一分解定理 1.内容 任何一个大于1的整数n都可以分解成若干个质数的连乘积,如果不计各个质数的顺序,那么这种分解是惟一的,即若n>1,则有 n ∏ p i j n\prod{p^j_i} n∏pij​ 这里的 p i p_i pi​是质数。可以进行简单证明…...

openssl3.2 - osslsigncode工程的学习

文章目录 openssl3.2 - osslsigncode工程的学习概述笔记工程库地址工程的编译osslsigncodeM工程文件列表osslsigncodeM工程搭建细节原始工程实现的改动自己封装的包含openssl和curl的实现osslsigncodeM工程命令行的用法备注 - VS2019调试环境备注 - 如果要单步openssl的API学学…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​:Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...