BTCFI是什么?全面解读BTCFI潜力与挑战

时间:2024-09-13  分类:电子

时间锁


时间锁用来控制交易的有效性以及一个输出什么时候可以被花费,这是再质押,质押,抵押借贷等BTCFI场景都会用到的比特币脚本编程武器,开发者需要选择使用相对时间锁(nSequence)还是绝对时间锁(nLocktime):


●绝对时间锁(nLocktime):仅在某个时间点后,这笔交易才会被视为有效交易,才能打包到区块中,脚本层面的绝对时间锁是OP_CLTV操作码,验证在某个时间点之后,才能解锁这个UTXO,如这笔钱在区块高度400000后才可花费。


●相对时间锁(nSequence)的意思是在输入创建这个UTXO的交易(即前序交易)得到区块确认的一段时间后,这笔交易才是有效的,才能解锁这个UTXO,脚本层面的相对时间锁是OP_CSV,如这笔钱在得到区块确认的3个区块之后才可花费。


哈希锁(哈希原像验证)


除此之外还有结合了哈希锁(哈希原像验证)的哈希时间锁,这也常常用在比特币质押和再质押之中:


●哈希锁的锁定脚本形式为OP_HASH160<hash>OP_EQUAL,验证解锁脚本中的数据是不是锁定脚本中的哈希值的原像


●哈希时间锁合约(HTLC):收到资金的一方若不能在一定时间内提供一个哈希值的原像,这笔资金就可以被支付方收回


流程控制(并列的解锁条件)


OP_IF操作码可以在锁定脚本中安排多种解锁路径,只要任一路径的条件得到满足,就可以解锁这个UTXO。上文提到的哈希时间锁合约,也是利用了这样的流程控制操作码。


在taproot升级之后,MAST(默克尔化的抽象语法树)特性允许我们将不同的解锁路径放到不同的默克尔树叶子中,Babylon的BTC质押交易中也使用了MAST,提升了交易的效率和隐私性,我们将在后文描述。


SIGHASH附带信息签名


比特币的交易在签名时允许使用SIGHASH标签,这些标签为签名的有效性作了额外的指定,允许我们改动交易的部分而不会使签名作废,表达签名人对这个签名的用途的期望或委托。比如:


●SIGHASH_SINGLE|ANYONECANPAY签名了输入以及与该输入使用同一个索引号的输出,其余的输入和输出都可以改变,签名不会因此而作废。Andy可以签名价值1BTC的输入和100某Runes代币的输出,那么任何愿意以100某Runes代币交换1BTC的人都可以补完这个交易并使之上链。


其他的例子还有taproot升级后的Schnorr签名,可以用于谨慎日志合约DLC。


比特币可编程性的限制


比特币编程的基本模式是UTXO锁定脚本表明验证条件,解锁脚本提供数据,锁定脚本中的操作码指明了数据的验证程序(签名验证、哈希原像验证等等),通过验证程序,资金就可被花费,核心的限制点是:


1.可用验证程序只有有限的几种:实施零知识证明或者其他验证程序就需要分叉,因此unisat推出的BTCFI拓展方案Fractal尽管BTC100%保持一致,但为了能够实施OP_CAT,ZK原生验证OPCode等具备「争议性」的操作码提案,在流动性和安全性方面也与比特币主网部分分离了。


2.比特币脚本没有计算能力:只要能解锁资金,运用任何一条路径都可以使用全部资金,资金花费方式在解锁后无法限制,这也意味着在BTCFI借贷项目中很难使用浮动利率方案,只能用固定利率。为了解决这个问题,比特币的社区在讨论实施「限制条款」(covenants),这能够通过对交易进一步花费的限定解锁更多BTCFI应用场景。TaprootWizard说的BIP-420和OP_CAT、OP_CTV、APO、OP_VAULT等都与这相关。


3.UTXO的解锁条件是完全独立的:一个UTXO不能根据另一个UTXO是否存在和其锁定条件决定自己能不能解锁,这个问题BTCFI的抵押借贷和质押中经常出现,后文说明的部分签名比特币交易PSBT就用于解决这个问题。


比特币合约的调整和进化


相对于基于计算的以太坊合约,比特币合约是基于验证的,这种无状态的合约为我们开发BTCFI产品带来了很多困难,在比特币合约发展的十多年中,密码学算法和签名的妙用大幅提升了隐私性,效率和去中心化程度,让产品化应用的BTCFI成为可能。


谨慎日志合约(DLC):解决BTCFI场景中的去中心化清算问题


当借贷、期权、期货协议需要实现根据预言机价格对用户仓位进行清算时,无法避免地需要保留对于用户资产的操作权,而这无疑会造成用户需要信任协议不会作恶的信任成本。


谨慎日志合约(DLC)被引入用来解决这一问题,其使用了一种叫做适配器签名(adaptorsignature)的密码学技巧,使得比特币脚本可以编程出依赖于外部事件的金融合约,并充分保证了隐私性。


它由麻省理工学院(MIT)的数字货币计划(DigitalCurrencyInitiative)的TadgeDryja(研究科学家)和Gert-JaapGlasbergen(软件开发者)在2017年提出,并在2018年3月19日公开演示。


适配器签名可以让一个签名仅在加入一个私钥之后,才会变成有效的签名。taproot升级中引入的Schnorr签名就是适配器签名的例子。


通俗的说,Schnorr签名的标准形式是(R,s),给出(R,s),只要知道x即秘密值(secret),就可以令s=s+x,得到的(R,s)。


这里借助一个简单的例子来解释其应用方式:


●Alice和Bob两人投注一场体育比赛(假设无平局)的相反结果,各自押注1$BTC,谁预测成功则从赢取全部2$BTC的赌注,他们就会将赌注锁定在一个多重签名钱包中,该钱包需要多方签名才能释放资金。


●选择预言机,它将公布比赛的结果(通常这种信息来源是在链外找到的,如交易所和比赛网站等)


●预言机不需要知道有关赌注的任何细节,甚至不需要知道谁参与了DLC。其工作严格限于提供结果,一旦事件发生,预言机就会发布一个称为承诺的加密证明,表明它已经确定了事件的结果。


●为了领取锁定在多重签名钱包中的资金,获胜方Alice使用预言机提供的秘密值来创建有效的私钥,使他们能够签署花费钱包中资金的交易。


●该交易被添加到比特币区块链中结算,这时由于其签名就是普通的签名,也看不出这是个DLC。这与其他常见的多方签名模式合约的内容完全公开、预言机参与决策完全不同。


https://shellfinance.gitbook.io/shell


借贷协议的清算机制


假定Alice以$ORDI作为抵押资产,借出价值为0.15$BTC,当且仅当预言机对于$ORDI报价低于225,000sats/ordi时,该借贷仓位将变更为待清算状态。DLC能让清算人在待清算状态下,可以无需许可地清算该仓位,同时又能够保证其在价格未达到清算价格时无法操作用户的抵押资产。在上述场景中,Alice相当于与借贷协议对于$ORDI的价格立下了一个赌约:


●如果价格低于225,000sats/ordi,则协议则可以获得Alice的全部抵押品,并承担起相应的BTC债务


●如果价格大于等于225,000sats/ordi,则无事发生,资产归属关系保持不变


那么,我们需要预言机承诺在价格低于225,000sats/ordi时,用一个nonceR_c发布对结果的签名s_c_1:


●Alice和协议仅需为该结果创建一笔承诺交易,创建适配器签名(R,s),而不是签名(R,s),这也就意味着双方交给对方的签名都是不能直接用来解锁这个合约的,而必须揭晓一个秘密值才可以。这个秘密值正是s_c_1.G的原像,即预言机的签名。因为预言机的签名nonce值已经确定了,所以,s_c_1.G是可以构造出来的。


●当价格低于225,000sats/ordi时,预言机就会发布签名(R_c,s_c_1),那么协议可以补完对手的适配器签名,再加上自己的签名,使上述交易成为一笔有效交易,并广播到网络中、触发结算效果。



-->> 2/6 文章未完,请继续阅读

以上就是BTCFI是什么?全面解读BTCFI潜力与挑战的全部内容,望能这篇BTCFI是什么?全面解读BTCFI潜力与挑战可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。