比特币新功能的扩展,侧链Liquid将涉及STO、零知识证明、Simplicity智能合约等

洒脱喜 发布在 技术指南 63936

写在前面:

比特币协议开发公司Blockstream近期更新了其Liquid侧链的白皮书,其中不仅涉及到了保密交易(CT)、防弹证明(Bulletproof)、零知识证明zk-STARK、Simplicity智能合约语言、契约(covenants)、闪电网络,还涉及到了证券代币的发行功能(即STO),显然,比特币并不是停止不前的。

比特币新功能的扩展,侧链Liquid将涉及STO、零知识证明、Simplicity智能合约等

注:以下内容摘译自新版《Liquid白皮书

比特币的创新首次允许创建一种无需领导,不受审查的数字货币,它不存在单一的失败点。然而,某些类别的用户在使用这种系统时会面临着挑战。对于加密货币交易者所处在的高速世界,交易费用、结算时间的差异、公开广播交易以及链重组的风险,都可能在其交易活动中产生重大成本。然而,比特币支付或合约并不一定要在比特币区块链上进行。Liquid网络可以满足交易者对高速交易、隐私结算的需求,此外它还可以享受很多其他技术创新,以换取在不同的安全模式下工作。

此外,Liquid网络支持发行侧链原生资产,通过多资产交易实现资产的原子交易。网络上的所有资产(Liquid比特币(简称L-BTC)和已发行的资产)享有相同的一分钟区块时间,以及关于资产类型和交易金额的加密保密性。Liquid支持比特币脚本及在其之上构建的协议(例如闪电网络),以及支持契约(covenants)、密钥树(keytree)等高级功能的脚本扩展。

作为一个侧链,Liquid通过密码学锚定的方式来实现比特币的进出,进入Liquid网络的比特币被称为Liquid 比特币或L-BTC,而Liquid账本及托管的比特币,则由一个联邦控制,只要该联邦的成员有超过2/3是诚实的,便能保持这些资产的安全。

 

为何采用联邦的侧链方式

 

为了允许快速创新,Adam Back等人在2014年提出了侧链的概念,侧链是一个独立的区块链,它支持锚定机制,允许在比特币区块链和侧链之间自动传输比特币。

侧链白皮书中的愿景是一种无需信任的锚定,在这个锚定中,向侧链传输或从侧链传输,都是通过密码学强制执行的。由于侧链的关键在于其有效性规则独立于比特币的有效性规则,这就带来了一个问题:

比特币网络如何验证来自侧链的传输,是根据侧链规则发起的?

而这个问题,至今有三种解决方案:

一种选择是扩展比特币,使其具有验证侧链区块头,而不是整个区块的能力,并信任有效区块头的存在,意味着关联的区块,根据任何侧链规则可能都是有效的。这是由Drivechain项目提倡的方法,并被称为SPV锚定。

虽然这一策略将实现独立侧链规则的目标,而不需要对比特币协议进行复杂的修改,但目前还不清楚其激励结构在现实世界中的表现。特别是,它允许一个足够强大和资金充足的侧链矿工子集窃取所有的锚定币。

此外,这种方式还要求对比特币协议进行非平凡的更改,这对比特币未来的部署是不利的。

2、另一种方法是使用零知识证明STARK等密码学工具来扩展比特币验证任意计算的能力,使比特币验证者以比跟踪侧链本身所需资源少得多的资源消耗来检查侧链规则。

不幸的是,虽然在过去的五年里,密码学工具已经有了巨大的进步,但它们根本不足以使这个选项可行,对于未来几年密码学技术的发展,这仍然是值得期待的。

与之相关的是,与SPV锚定一样,这一选择也需要对比特币协议进行修改,而在撰写本文时,还没有出现一种被广泛接受的提议

3、最后,侧链白皮书的作者在附录A中,提出了一个联邦锚定机制,其中侧链币由一个联盟(统称为“强联邦”)托管。这些联盟工作人员负责验证侧链规则,并通过在比特币网络上签署交易来处理向比特币的转移。

这个选择不需要更改比特币协议,因为它的锚定是通过普通的多重签名交易强制执行的,当然,这个方案确实需要一个联盟存在,并且对于该系统,至少要求2/3的参与者会诚实地开展工作。

在权衡利弊之后, Liquid侧链网络就采用了第三种方式,即通过联邦锚定的机制来进行开发

 

保密交易(CT)和防弹证明(Bulletproofs)

 

与比特币网络不同,Liquid交易的任何输入或输出通常没有明确的金额,相反,这些金额被Pedersen commitments所取代,这种密码学承诺具有同态的特殊性质,这意味着它们可以被加在一起产生新的 commitment。

这意味着,虽然验证者没有显示有关潜在金额的信息,但是验证者可以将输入承诺和输出承诺相加,并检查结果是否相等,从而确保没有发生通货膨胀。同时,由于没有可见的数据量,用户的隐私性大大提高,其隐藏了每笔交易的总传输量,使得找零输出与普通输出不可区分,从而极大地增强了CoinJoin的隐私保证。

这个功能,便被称为保密交易(CT),它是由Gregory Maxwell为Liquid 开发的一种技术,此后保密交易(CT)被很多其他区块链方案所采用(例如门罗币和MimbleWimble)。

为了允许用户提供其币属性的密码学证明,Blockstream还帮助开发了Bulletproofs(防弹证明),这是一种通用的零知识证明系统,其针对Pedersen commitments进行了优化。

这使得这些属性能够被证明,同时保留基础金额的完美私密性。

 

资产与发行

 

Liquid是一个资产发行平台,这意味着该区块链支持任何参与者创建新的资产类别,并且系统中的任何参与者都可以无限制地(重)发行资产。 通过将保密交易技术部署到Liquid平台,网络就能够隐藏每笔交易输入和输出的资产类别及金额。通过这种方式支持多资产交易,可以实现新的用例,例如资产的原子交易,同时通过确保此类交易与普通交易不可区分来保护隐私。

Liquid允许对资产进行多重签名重发行,从而实现更安全的资产管理。例如,对于任何给定的发行,Liquid中代币化法币锚定资产可能需要5个签名中的3个,这降低了未经授权增加代币供应的可能性。

(注:关于以上部分的内容,原文白皮书中有更多的详细描述。)

 

工具

 

Liquid区块链是一个资产发行平台,然而,Liquid的许多功能和能力并不是来自区块链本身,而是来自于它上面的工具。在这节当中,我们会介绍Blockstream已经开发并正在继续开发的一些工具。

1、准备金证明(PoR)

准备金证明(PoR)是由Blockstream开发的一种工具,它可用于解决交易柜台、OTC交易商和交易所客户的一个痛点需求,他们要求确保索赔资金确实存在,并且在索赔人的监管范围内。PoR是一个开源工具,它创建了一个部分签名比特币交易(PSBT),这是一种由Blockstream参与开发的比特币签名者的互操作性格式。

它将PSBT传递给签名者(例如硬件钱包),然后将其传递给验证证明的请求者。这种PSBT与普通的PSBT不同,实际上它并不是一种有效的比特币交易(即使在签名之后),这意味着即使目的地不受签名者控制,资金也不会有移动或被盗的风险。

PoR的近期扩展将直接支持Liquid(其中包括保密金额和资产类型)。证明人无需披露特定UTXO的金额或资产类型,但仍需证明对每种类型资金总额的授权。使用相同的工具,交易所可以证明他们的链上资产,包括BTC、L-BTC和任何其他在Liquid链上发行的资产,而无需添加任何额外的工具。

未来的工作将包括使用零知识证明来增强PoR的隐私,这将允许这些无效的“交易”隐藏它们引用的输入。然而,目前的零知识证明技术还不足以有效地实现这一愿景。

关于这个项目,你可以在https://github.com/ElementsProject/reserves 找到。

2、保险库( Vaults)

Liquid对比特币脚本的扩展包括一个新的操作码CHECKSIGFROMSTACK,这使支出政策需要对某些任意数据进行数字签名,而不仅仅是支出交易。此操作码还可用于对花费一些币的交易实施任意限制,这种能力称为契约(covenants)。Russell O’Connor 通过使用契约(covenants)得以实施了一项名为Möser-Eyal-Sirer的保险库(Vault)计划。

保险库(Vault)是不能直接花费的交易输出,但必须先发送到一个“暂存区”,该输出类型限制币在没有明显时间延迟的情况下再次移动。在此延迟期间,币可能会退还至保险库,从而有效地取消了原始交易。这样,即使在密钥被盗的情况下,原始所有者也因此能够无限期地将币保留在保险库中。

最初的保险库结构是为Liquid的技术前体Elements Alpha创建的,其中包括比特币“隔离见证”(Segwit)的原始版本。这使得保险库的效率特别低下,因为它需要在脚本解释器堆栈上构建一笔完整的交易,并将其限制为非CT交易。然而,Liquid使用了部署在比特币上的隔离见证(Segwit)的现代版本,并且这些限制已不再适用。

这使得保险库(Vault)的部署效率更高,甚至对于使用CT的交易也是实用的。

3、Liquid 证券

Liquid核心软件和共识层侧重于建立代币所有权的历史,而不是特定代币的含义或资产所有权赋予所有者的能力。

换句话说,表示股票份额的代币不需要特殊的链上逻辑来强制执行约束。相反,这些约束可以由发行人或监管机构直接执行。这既是隐私又是可扩展的胜利,链上没有额外的识别逻辑。

为了缩小客户需求与低层链逻辑之间的差距,Liquid Securities软件套件建立在Liquid Core的坚实基础上。Liquid Securities套件支持功能丰富、合法合规的证券代币发行和管理。该套件通过不使用复杂的法律逻辑来阻碍基础层,而是将Liquid区块链用作纯粹的结算网络。相反,较高层逻辑在最上面执行。

该套件的功能包括:

  1. 向持有人发行、重新发行和分发证券代币;
  2. 投资者管理、投资者身份认证合规;
  3. 非托管投资者钱包,联合签署人执行所需的证券逻辑;
  4. 向证券代币持有人支付股息;

4、闪电网络

闪电网络是一个第二层(layer-2)支付网络,有很多来自世界各地的贡献者在为比特币开发这个layer-2支付网络。它通过将支付链接到由两个支付通道组成的路径上来工作,这两个支付通道是原子式更新的,以确保支付不会在路径途中丢失。这些付款通道通过让双方共同创建未发布到区块链的交易来工作。

取而代之的是,该交易被重复替换以反映通道中余额的变化,只有当事方同意关闭通道或一方下线时,任何内容才会发布到比特币区块链。

虽然闪电网络几乎可以在无需改变的情况下适应 Liquid ,但其设计假定所有参与者都可以看到所有金额和资产类别。而Blockstream正在多个方面资助对闪电网络的研究:

  1. 首先,基本的闪电网络支持,在这种支持下,Liquid上的闪电网络用户必须显示其资产类型和金额,以允许普通闪电支付路由逻辑工作。
  2. 然后,可以将闪电网络扩展到跨链支付,允许比特币和Liquid L-BTC之间的传输几乎是瞬间的,绕过了锚定机制。
  3. 尽管跨链闪电网络支付因不同区块链资产之间的价格波动问题而备受批评,但这些问题并不适用于BTC和L-BTC,因为锚定几乎是恒定在1:1附近的。
  4. 与此同时,通过一些额外的密码学技术来创建闪电网络通道,在该通道中不会显示所有资产和金额。这项研究还将应用于其他区块链系统,这些系统可能希望在保密资产之上支持闪电网络。
  5. 最后,Blockstream率先推出了一个名为“无脚本脚本”(scriptless scripts)的研究项目,该项目将允许闪电网络通道的区块链交易看起来像普通支出。 无脚本脚本允许将付款通道链接到路径中,从而使各个通道中的参与者(端点上的参与者除外)也无法看到哪些支付正在通过哪些路径进行路由。
这是一个令人兴奋的研究领域,有望改善比特币和Liquid的隐私和可扩展性。

 

关于未来的工作

 

Liquid作为比特币的一个侧链以及Bitcoin Core的分支,其研发一直伴随着比特币本身的研究而发展。像隔离见证(segregated witness)和相对时间锁(relative timelocks )这些新想法,都是在Liquid的开源对等项目Elements Alpha中使用,之后才被比特币应用,而更具破坏性的功能(例如保密交易CT)则刺激了整个比特币生态系统的研究。

展望未来,Blockstream希望保持这种合作创新的节奏,既可以通过在比特币社区内开发可转化为Liquid的的想法,也可以通过推进区块链研究的边界,为更广泛的生态系统带来长期利益。

eltoo:使用SIGHASH_NOINPUT创建可能绑定到通道任何先前状态的更新交易。然后,即使在发布过期状态的情况下,用户也可以简单地发布最新状态,以使区块链在通道的实际状态上加快速度。这意味着用户只需要将最近的交易存储在一个支付通道中,而不必担心保密问题。

就像最初的闪电网络一样,eltoo可以通过区块链连接支付通道。虽然这会导致资产价格波动性较高的区块链出现复杂情况,但在 Liquid L-BTC和比特币的情况下,这两种资产仍然是一一对应的,因此不会出现这种复杂情况。这使得闪电网络可以充当Liquid的无缝上线和下线机制。

Taproot和无脚本脚本:Taproot部分是由Blockstream的研究团队开发的,它是对比特币的一个拟议扩展,其承诺在一笔交易中的所有参与者协同工作的情况下,通过隐藏所有脚本策略来提高系统的隐私性和可扩展性。

它是通过两种技术的结合来实现的。首先,Taproot中的交易输出是简单的椭圆曲线密钥,这些输出可以使用与该密钥对应的数字签名来使用。使用Liquid peg-ins使用的pay-to-contract技术,这一密钥还可以提交额外的脚本语义,这样,除非这些额外的语义实际上是必要的,否则就不会泄露。

其次,使用由Blockstream研究团队共同发明的MuSig Schnorr多重签名和无脚本脚本技术,可以将大多数公共脚本语义编码到公钥本身中,从而消除了在常见情况下显示脚本承诺的需要。特别是,MuSig的扩展允许创建门限签名(或者实际上,由多个可接受签名集定义的任何策略),而无脚本脚本允许这些门限签名额外地揭示秘密数据,例如闪电网络HTLC使用的哈希原像或零知识或有支付(Zero-Knowledge Contingent Payments)中使用的加密密钥。

Simplicity:为了提高智能合约语言的表达能力,Blockstream正在开发一种新的语言,称为Simplicity。与按顺序执行语句的传统命令式语言不同,Simplicity是一种函数式语言,它允许使用声明式方法指定智能合约所需的条件。表达智能合约语言带来了额外的编程错误风险。更糟糕的是,错误一旦提交到区块链就无法纠正。为了解决这个风险,Simplicity具有形式化的语义,它允许智能合约开发人员使用形式化的方法来消除程序中的错误

Bulletproofs和通用零知识证明(ZKP):与Taproot一样,Simplicity通过隐藏未使用的脚本语义,提供了比比特币脚本更好的隐私。然而,原则上,使用一种称为零知识证明的密码学原语可以做得更好。这样的证明可以用来隐藏整个脚本,而仅显示该脚本

尽管目前用于证明零知识的任意脚本的技术效率太低,无法完全替换显式脚本,但是有一些研究方向有望使我们接近这个目标。特别是,防弹证明(Bulletproofs)提供了非常小的任意计算证明,并且可以非常有效地使用Pedersen承诺中编码的秘密输入,例如Liquid输出。另外,STARK提供了一种替代的证明结构,尽管生成的证明要大得多,但其构造和验证的速度比要比防弹证明(Bulletproofs)更快。

这些通用的零知识证明系统要求程序以一种称为电路的特殊形式进行编码,通过给输入和输出赋值并检查它们是否一致来“执行”。这个编程模型在概念上接近于Simplicity,尽管用于开发和分析程序电路的工具充其量还不成熟,但Blockstream希望其对Simplicity工具的研究将直接改善这种情况。

此外,STARK系统使用电路的特定编码与Simplicity有更多相似之处,可被利用来在两个系统之间进行有效映射。

译者简评:很多人认为比特币并没有创新,这其实是一种误解,比特币的创新并不是主要发生在主链,而是通过侧链和Layer 2的形式进行,Blockstream作为一家比特币协议开发公司,尽管其开发Liquid和闪电网络会存在私心,但关于“保持主链稳定,而通过侧链扩展比特币”的思路,也被越来越多的人所接受和认可。然而,截至目前,Liquid侧链网络和闪电网络中锁定的比特币锚定资产并不是很多,甚至已被以太坊网络上的BTC锚定币所超越,也因此,关于Liquid和闪电网络的可行性,还有待于市场的进一步验证。

本文链接:https://www.8btc.com/article/604213
转载请注明文章出处

评论(1)
登录 账号发表你的看法,还没有账号?立即免费 注册
  • 向竞争的圈里追 2020-06-02
    #比特币# 在广泛共识、去中心化基础上的创新,总是很令人惊叹!!!!