Part-1:支付通道
Part-2:App 定制型状态通道
Part-3:多跳交易/中心辐射通道


在开始读本博文之前,我建议你先读中心辐射支付通道(译者注:即同系列 Part-3),因为我们要用到其中的知识。

-我真的不知道该把这张图放在哪儿...-

读了这篇博文后,你会理解如何在中心辐射拓扑的两个节点之间创建一个虚拟通道,然后两个节点就能独立于这个拓扑结构进行通信。下图红色虚线就是虚拟通道的例子。

-红线表示虚拟通道-

账本通道

虚拟通道的实现有赖于账本通道。账本通道是双向支付通道的另一种说法。在下面的例子中,我们有一个 Alice 和 Bob 之间的账本通道,通道中 Alice 持有 5ETH,Bob 持有 3ETH。

打开一个虚拟通道

要打开一个虚拟通道,两个节点必须都与同一个连接点(中心)开通账本通道。(下图中)Ingrid 就是这个共同连接/中心,他分别和 Alice、Bob j建立了账本通道 y 和 z。下面我们展示了 Alice 和 Bob 之间的虚拟通道 X 会有的样子—— Alice 将持有 5ETH,Bob 将持有 3ETH(校对注:注意:红色的虚线代表尚未建立的虚拟通道,灰色的实线表示已经建立的账本通道;另请注意 Ingrid 在两边的余额)。

为了打开这个通道,Alice 和 Bob 都会给 Ingrid 发一个签过名的请求。当 Ingrid 收到双方签署的请求后,Ingrid 会同意这种变更,并更新与双方的账本通道。这个更新过程会将虚拟通道两端所需余额在每一个账本通道的对应端扣减——如下图所示:

-在每一个账本通道中,我们都在左端扣减 5ETH,在右端扣减 3ETH-

为了支持虚拟通道的创建,每一个现有的通道都从左边扣减了 5ETH,右边扣减 3ETH。到这儿,我们就不再需要 Ingrid 了,更新虚拟通道和更新账本通道是一样的(双方签署交换序列化的信息)。

- Alice 同意发给 Bob 1ETH -

- Bob 同意发给 Alice 3ETH(基于起始序列信息的)-

现在我们已经开启了一个虚拟通道,并且基于通道做了交易,下一部分就是设置关闭通道。

关闭虚拟通道

理想情况

为了关闭上面的虚拟通道,Bob 和 Alice 就要向 Ingrid 提交最新双方签名的信息。Ingrid 根据提交的信息更新双方各自的账本通道。注意,在 Alice 和 Bob 利用虚拟通道交互时,Ingrid 和 Alice、Bob 的账本通道是开着的,这就意味着,所有消息交互都不是在链上完成的。

-根据更新,每一个账本通道中都有 2ETH 从右端移到了左端-

离线/恶意破坏

假设 Bob 决定作恶,尝试骗取 Alice 的 ETH,他发了之前他们双方都签过名的消息给 Ingrid。当收到 Bob 发来的消息时,Ingrid 将会验证为这确实是 Alice 最新确认的消息。在 Alice 离线的情况下,Ingrid 将会开启一个争论期,在争论期内,她会提供虚拟通道确实打开的证明(即 Alice 签署的请求),以及虚拟通道中 Bob 提供给她的最新消息,(消息是由 Alice 和 Bob 共同签署的)。如果 Alice 在争论期内仍然不能上线,她和 Ingrid 之间的账本通道将会根据 Bob 提供的较早消息而更新,然后关闭。

-由于 Alice 不能上线,Bob 成功敲诈了 Alice -

监控服务

假如 Alice 预料到了自己会离线,因此把最终和 Bob 签署的消息发给了她的朋友 Carl,Carl 代表 Alice 把这个最终状态发给了 Ingrid ——那么 Carl 实际上就成为了一个提供监控服务的节点。这样虽然不能阻止 Alice 的账本通道被关闭,但可以强制让 Bob 提供一个更新的消息,或者同意 Carl 提交的状态。

-由于 Carl 代表 Alice 提交了最新状态,Bob 骗钱失败-

这种提供收费监管服务(就像 Carl)的策略在社区里很常见。不过我个人并不太喜欢这种方式,因为没有第三方服务也能达到这种效果——下一篇将会介绍。说到这,如果你想了解更多这种第三方的解决方式,我在下一节列出了几个相关文档。

谁在做虚拟通道?

本篇博文是由 Perun Channels 启发而来——他们做的真的是太棒了,并且基于他们的工作,已经产生了很多版本的类似通道。我最熟悉的一个就是“中心支付通道”,SpankChain、Nathan Ginnever(Finality Labs)还有 Arjun Bhuptani(Connext)就在做这些。

延伸阅读

虚拟通道

  • Perun Channels Presentation
  • Set Payment Channels Whitepaper

监管服务

  • Pisa
  • Celer Network
  • Connext

Part-5:广义状态通道


链接: https://medium.com/blockchannel/state-channel-for-dummies-part-4-f3ba9d76c7c4

学习状态通道,Part-4:账本通道和虚拟通道相关推荐

  1. RDP协议之USB重定向虚拟通道

    在RDP远程桌面协议中,USB设备虚拟通道扩展协议用于将USB数据包从终端服务器传输到终端客户端.终端客户端将USB数据包转发到物理USB设备.然后客户端在物理设备重新组装数据包后返回结果. 一般来说 ...

  2. 学习状态通道,Part-1:支付通道

    在我的上一篇博文中,我简单地讨论了状态通道,以及为什么我认为它对于开启以太坊的大规模可用性来说,是至关重要的.在此,我打算通过几篇博文来推进一步,这些博文对 L4 团队用 Countfactual 做 ...

  3. 学习状态通道,Part-2:App 定制型状态通道

    Part-1:支付通道 注:我决定改变这个系列的名称,把重点放在状态通道,而不是 Counterfactual 上,以便我们能够涵盖状态通道中所有的工作,而且不会将这两个概念混为一谈. 在我们开始之前 ...

  4. 学习状态通道,Part-3:多跳交易/中心辐射通道

    Part-1:支付通道 Part-2:App 定制型状态通道 在我们开始之前,如果你还没有读过我的第一篇博文--菜鸟学习状态通道,Part-1,你一定得看一下,因为本博文是基于第一篇的.对此感兴趣的人 ...

  5. Go 学习笔记(24)— 并发(03)[通道特点、通道声明、通道发送/接收/关闭、单向通道]

    1. 通道概念 chan 是 Go 语言里面的一个关键宇,是 channel 的简写,翻译为中文就是通道. goroutine 是 Go 语言里面的并发执行体,通道是 goroutine 之间通信和同 ...

  6. GMSL虚拟通道ID简介

    Maxim千兆多媒体串行链路(GMSL) SERDES技术 通过一根电缆在两个端点之间提供高带宽和丰富的点对点互连,其长度可达15米. SERDES(序列化器/反序列化器)技术广泛应用于传感器和网络通 ...

  7. PCI-1906 基于PCI总线的32通道250Ksps 16位ADC和4通道16位DA数据采集卡

    板卡介绍 PCI-1906是PCI 总线的多功能模入模出接口卡,可方便地应用于装有PCI 总线插槽的微机,具有即插即用(PnP)功能.其模拟模入模出信号均由卡上的37芯D 型插座与外部信号源及设备连接 ...

  8. 图像通道、Scalar、分离、合成通道

    http://lib.csdn.net/article/opencv/33264 http://blog.csdn.net/laohu_tiger/article/details/17359777 h ...

  9. cmd 找不到java power 可以_高三总是找不到学习状态?这几个方法一定可以帮到你!...

    众所周知,高中生学习压力大,因为学科增加,知识量大,难度加深,常常让很多学生找不到学习状态. 尤其进入高三阶段,随着高考的一步步临近,同学们进入到紧张的复习备考状态,你追我赶,于是有些同学感到竞争激烈 ...

最新文章

  1. 通过属性值从对象数组中获取JavaScript对象[重复]
  2. 百度相关搜索软件_Python与seo,百度关键词相关搜索关键词采集源码
  3. 什么是xmlschema
  4. 科大讯飞和百度语音平台语音识别Java调用记录
  5. win32 实现死锁的小例子
  6. oracle 兰贝斯_【咨询/顾问150-500人招聘_最新咨询/顾问150-500人招聘信息】-前程无忧...
  7. Matrix工作室第六届纳新AI组考核题(A卷)
  8. ios 构建版本一直在处理中_iOS -打包上传成功,在构建版本一直刷不出来
  9. mysql jpa总分数_JPA 查询COUNT示例
  10. Caffe之DataTransformer
  11. python字符串常用方法、分割字符串等
  12. c++ class 类名 和 include 的区别
  13. android idle模式
  14. 【NLP】NLP数据标注工具汇总
  15. 【Chatbot】2:中文聊天机器人的实现
  16. EyouCms前台GetShell漏洞复现
  17. springboot redis: xxx as a subtype of [simple type, class java.lang.Object]: no such class found
  18. 魔术命令python_魔术命令_利用Python进行数据分析_红黑联盟读书频道
  19. 自增ID有什么坏处?什么样的场景下不使用自增ID? 1
  20. 第一个被赋予公明身份的机器人_曾经的女性机器人,被赋予机器人公民身份之后,如今过得怎么样?...

热门文章

  1. 荣耀V30pro和荣耀30的区别 哪个好
  2. Apple pencil值得购买吗?ipad手写电容笔推荐
  3. 【深入理解JVM-Java内存区域】
  4. 盘点Spring/Boot的那些常用扩展点
  5. git 新建分支、合并分支和撤回push操作
  6. 工业物联网关-modbus数据采集程序(1-程序设计)
  7. 联想微型计算机c340加内存,联想C340 C345一体机内存硬盘CPU拆卸与升级方法
  8. 升级鸿蒙系统内存,网友实测从安卓升级到鸿蒙 2.0:可用内存和存储容量增加...
  9. MX1508 手册及说明
  10. gcat广告电商发车,要不要上?