区块链支付系统开发,支付渠道、区块链支付渠道的发展

2024-02-29
来源:网络整理

链下交易似乎是比特币扩容的最佳选择,虽然多家公司正在构建和测试链下交易基础设施,但很少有人体验过它们的工作原理。

问题

首先,为什么我们需要在区块链之外进行交易? 使用比特币的人都在寻求安全性,而区块链无疑是实现安全交易的最佳方式。 当然,问题在于区块链非常昂贵且效率低下,因为网络中的每个参与者都存储整个历史记录的副本,并且必须限制使用以维持网络的可持续参与。

区块链上可存储的数据量有限,这会造成对包含在分类账中的交易的竞争,从而推高交易成本。 因此,为了保持区块链层的轻量级和安全性,我们需要尽可能少地使用它,并寻找其他方式来进行交易。

线下支付渠道

支付通道基于交易替换的思想,在将未确认的交易广播到网络之前更新其状态。 这个概念比大多数人想象的要古老,他实际上在比特币的第一个版本中实现了类似的东西(但他当时的目标不是提高可扩展性,而是在一组参与者之间实现高可扩展性的频率交易)。

通过在广播之前替换交易,可以在不使用昂贵且缓慢的区块链的情况下进行多个交易。 线下支付渠道可分为三类:

单向支付通道

单向支付渠道于 2013 年首次实施,当时 Matt 和 Mike 添加了对它们的支持,但它们的用例相当有限,因为它们只允许您将资金从 A 转移到 B,而不是相反。

区块链支付开发系统包括_区块链支付开发系统设计_区块链支付系统开发

单向支付通道的基本设计如下:

然而,时间锁定交易并不是理想的解决方案,因为它们容易受到延展性攻击。 为了缓解这个问题,2015 年的协议升级引入了 CLTV(检查锁定时间验证),它允许将时间锁包含在合约本身的脚本中,而不是创建特定的交易,从而避免延展性问题。

注意:该支付渠道有预定的有限寿命。 在时间锁定到期后,Bob 继续使用通道确实不安全,需要在该日期之前关闭通道。

基于时间的双向支付通道

在单向支付通道中,只能将钱发送给 Bob,而不能将钱发送给 Bob,而在双向通道中,流量可以双向传输。

单向支付通道的安全性基于这样一个事实:Bob 没有动力广播通道的旧状态,因为这只会让他感兴趣(丢失 Bob 的签名并且无法自己广播旧状态)。 然而,在双向通道中,双方可能都有动机在不同时间广播通道的旧状态,因此需要不同的安全模型。 有两种不同的方法:基于时间的安全性和基于惩罚的安全性。 我们将开始分析前者。

基于时间的通道在交易通过时受到保护,锁定它,以便通道的最后状态始终具有最低的时间锁定,这意味着它是第一个可以广播的状态。 每个具有较低时间锁定的新事务都会使所有先前的事务无效,从而更新通道的状态。

为了使这样的系统真正实现去信任化,有必要创建第一笔交易,在转移任何比特币之前将资金发送回双方,以防其中一方无响应。 然而,创建花费未经确认交易的交易会使各方面临可塑性攻击的风险,这意味着该过程中只能使用交易,因为与正常交易不同,它们不受可塑性问题的影响。

区块链支付开发系统包括_区块链支付系统开发_区块链支付开发系统设计

然而,这样的设计有一个明显的问题。 通道的安全性仅在第一个锁定到期之前得到保证,之后必须关闭(即资金发送给双方),从而赋予通道预定的有限寿命。

为了克服这个问题,可以使用相对时间锁而不是之前看到的绝对时间锁来实现稍微不同的设计。 通过相对时间锁定,时钟仅在交易包含在块中后才开始计时。 为了使用相对时间锁来实现无到期日的通道,我们需要构造一个由双方预先签名的特殊启动交易,其目的是激活时间锁(启动时钟)。 只有当其中一方希望单方面关闭通道时,它才会被广播(如果双方都同意,他们可以将正确金额的简单交易发送到各自的地址)。 时间锁被冻结,直到启动事件发生,并且可以无限期地保持在该状态。

区块链支付开发系统设计_区块链支付开发系统包括_区块链支付系统开发

区块链支付开发系统设计_区块链支付系统开发_区块链支付开发系统包括

支付渠道是链下扩展解决方案的基石,但它们本身还不够,因为它们需要为每个想要交易的人开放渠道(并锁定流动性)。 为了解决这个问题,引入了一些额外的基于加密的技术,允许不同的支付渠道相互通信,形成一个网络(绝对太简单了,你可以在这里了解更多)。

世界各地的多个团队和开发人员正在探索其他解决方案来提高比特币支付的可扩展性,例如帮助重新平衡支付渠道的通道工厂、减少链上结算交易规模(同时提高隐私性)的签名和 MAST 脚本以及许多其他解决方案。其他 很棒的建议。

扩展区块链并不容易,目前可用于资助基础设施改进的资源有限。 比特币可能需要一段时间才能与主流中心化解决方案竞争,但比特币可以存在几个世纪,因此适当发展所需的等待是完全值得的。

分享