区块链-简单的支付通道

目录:http://www.javashuo.com/article/p-nitsjfvy-ey.html浏览器

摘自《精通比特币》 服务器

要说明状态通道,咱们必须从一个很是简单的例子开始。 咱们展现一个单向通道,意味着价值只向着一个方向流动。 为了便于解释,咱们以一个天真的假设开始,假设没有人要试图欺骗他人。一旦咱们解释了基本的通道概念, 咱们将会接着看看是什么使得支付通道能够无信任化,从而让交易双方哪怕去尝试进行欺骗都没法成功。网络

对于这个例子,咱们假设两个参与者:Emma和Fabian。 Fabian(卖家)提供由微支付通道支持以秒为单位时长计费的视频流服务。Fabian每秒视频收费0.01毫比特(0.00001BTC),至关于每小时36毫比(0.036BTC)的视频。Emma(卖家)是从Fabian那里使用以秒计费的支付通道来购买流媒体视频服务的用户。下图显示 Emma使用支付通道从 Fabian 购买视频流服务。.net

在这个例子中,Fabian (卖家)和 Emma(买家) 正在使用专门的处理支付通道和视频流的软件。 Emma(买家)在浏览器中运行该软件,Fabian (卖家)从服务器端运行该软件。该软件包括基本的比特币钱包功能,能够建立和签署比特币交易。“支付通道”的概念和术语对于用户都是彻底不可见的。他们看到的是以秒为单位支付了的视频。3d

为了设置支付通道,Emma和Fabian创建了一个 2-2 的多重签名地址,双方各持一个密钥。从Emma(买家)的角度来看,她的浏览器中的软件提供了一个带有P2SH地址的二维码(以“3”开头),并要求她提交最多1小时视频的“押金”。视频

该地址于是获得了Emma的注资。支付给该多重地址的Emma(买家)交易,就是支付通道的资金交易或锚点交易。blog

就这个例子而言,咱们假设Emma支付了 36 个毫比(0.036BTC) 到通道中。这将容许Emma消费长达1小时的流媒体视频。这笔资金交易设定了能够在这个通道上发送的最大数量(数据量),即设置了通道容量。get

资金交易从Emma 的钱包中消耗一个或多个输入以集成资金。它建立一个价值为36毫比的输出,支付给Emma(买家)和 Fabian(卖家)之间共同控制的多重签名 2-2 地址。它也可能有一个做为找零钱到 Emma的钱包的额外输出。class

一旦资金交易获得确认,Emma能够开始观看视频。Emma的软件建立并签署一笔承诺交易,改变通道余额,将0.01毫比纳入Fabian(卖家)的地址,并退回给Emma(买家)的35.99毫比。比特币

Emma签署的交易消耗了由资金交易创造的36毫比输出,并建立了两个输出:一个用于找钱,另外一个用于Fabian的付款。交易只是部分被签署了 - 它须要两个签名(2-2),但只有 Emma的签名。

当Fabian的服务器接收到此交易时,它会添加第二个签名(用于 2-2 输入),并将其返回给 Emma 并附带时长1秒的视频。如今双方都有谁均可以兑换的彻底签署的承诺交易,这个承诺交易表明着通道中的最新正确余额。双方都不会将此交易广播到网络中。

在下一轮,Emma(买家)的软件建立并签署另外一个承诺交易(承诺2号),该交易从资金交易中消耗相同的 2-2 输出。二号承诺交易分配一个 0.2 毫比的一个输出到 Fabian 的地址,还有一个一个输出为 35.98 毫比,做为找零返回给 Emma 的地址。 这个新交易支付的是连续两秒的视频内容。Fabian的软件签署并返回第二个承诺交易,再加上视频的另外一秒内容。

利用上述的方法,Emma的软件继续向Fabian的服务器发送承诺交易,以换取流媒体视频。由于Emma观看了更多秒数的视频,通道中属于Fabian的钱逐渐累积变多。假设Emma观看600秒(10 分钟)的视频,建立和签署 600 笔承诺交易。 最后的承诺交易(#600)将有两个输出,将通道的余额分红两半,分别为6毫比属于Fabian和30毫比属于Emma。

最后,Emma 点击“中止”中止流媒体视频。 Fabian或Emma如今能够发送最终状态交易以进行结算。最后一笔交易即为结算交易,向 Fabian 支付全部 Emma 消费的视频,并向 Emma退还资金交易中剩余的资金。

图显示了Emma 和 Fabian 之间的通道以及更新通道余额的承诺交易。

最后,只有两个交易记录在块上:创建通道的资金交易和在两个参与者之间正确分配最终余额的结算交易。