雷电网络

news/2024/11/30 9:38:42/

虽然在区块链技术蓬勃发展的今天,比特币日益显得臃肿和老旧,但比特币社区仍然为区块链技术贡献着重要的思想。基于闪电网络的思路,以太坊社区也提出了自己的链下微支付通道解决方案——雷电网络(RaidenNetwork)。

Raiden项目源码托管在https://github.com/raiden-network/raiden,开发语言为Python(目前尚未完成),其实施原理则是基于《UniversalPaymentChannels》一文。当我们将以太坊作为一个侧链导入其他加密货币之后,很容易依托以太坊智能合约为各类加密货币开发微支付通道。

Raiden项目的思路直接继承自比特币闪电网络,但也有所发展。因为以太坊智能合约对报文格式没有特别的字段限制,使得Raiden得以为通道余额快照引入一个单增序号,极为轻松、自然地解决了旧版本快照的识别和作废问题。首先要在以太坊上建有一个智能合约,由智能合约处理下文提到的OpenTransaction、UpdateTransaction等指令。下面是Raiden建立交易通道的主要形式。

blob.png

blob.png

和闪电网络一样,双方需要在以太坊区块链上开设通道并各自锁定以太币。这步动作可通过向Raiden智能合约发送一条双方签名认可的报文来实现。报文中的关键信息包括双方公钥、双方锁定资产数量、双方签名。

此后的任何支付动作都可以发生在以太坊区块链外,参与双方只需要私下传递一系列报文。其中最重要的报文是UpdateTransaction(更新交易通道),其形式如下。

blob.png

blob.png

此报文的内容几乎就是闪电网络的通道余额分配方案的翻版,只有如下几处细微的差别。

一是增加了Sequence Number字段和HoldPeriod字段以便识别作废的报文。A如果向区块链上合约提交一个双方签字的UpdateTransaction报文,合约将等待HoldPeriod时间。期间如果对方B能够提交一个Sequence Number更高的UpdateTransaction报文,合约将没收A质押在通道中的全部资产并转移给B。如果直至等待超时B也没有异议,合约将按照报文内容在区块链上完成转移支付并关闭通道。

二是通过Net Transfer Amount隐含余额分配的方式和闪电网络略有不同,这里是从建立通道时声明的Amount 1中扣减Net Transfer Amount,再将之加到Amount 2上。和直接声明余额比,只是形式上的差别。

三是雷电中引入了较HTLC更为通用的Smart Condition。Smart Condition表现为一个可在区块链上执行的函数Function(argument),可接受任何格式的报文为参数,执行后返回一个[0,1]之间的数。将其返回值乘以配套的Condition Transfer Amount,再加到Net Transfer Amount上去,就完成了条件支付引发的余额调整。闪电网络中的所谓Hash Lock,现在成了Smart Condition的一个特例。Smart Condition能够提供远较哈希校验丰富的功能,比如可以根据某类Oracle提供的道琼斯指数值完成衍生品合约的自动执行。

当发生争议时,只需向区块链上智能合约出示最新版本的UpdateTransaction报文,并请求智能合约对报文中的Smart Condition予以处理,就可以强制强制执行合约。如果没有争议,以上这一切都不会出现在以太坊区块链上。这样既增强了隐私,又提升了性能。

其他设计思路,如通过多跳打通微支付通道、接收方提交适当的Argument作为提款凭证等都和闪电网络类似。

Vitalik Buterin最近提及的State Channel技术,本质上也和这里介绍的一样,欲将区块链作为争议仲裁及强制执行的最后手段,平时则尽力避免信息在链上公开。


http://www.ppmy.cn/news/537144.html

相关文章

用计算机里可以加50度电,一台电脑一天用多少度电 节电节能的建议和措施

我们每天用电脑,你的电脑到底每天消耗你多少度电呢。很多人都想过,但是却没有计算过。我们每天用电脑,你的电脑到底每天消耗你多少度电呢。很多人都想过,但是却没有计算过。今天就为大家介绍一台电脑一天用多少度电以及一些节电节…

台式计算机消耗的电,计算机一天要消耗多少电量

一个是CRT显示器,它是传统的CRT显示器. 通常,17平面屏幕约为75-80W. 另一半的功率基本上消耗在主机的硬盘,主板,CPU,风扇和扬声器上. 以下是jy135的编辑每天收集的计算机用电量,欢迎阅读. 台式机一天要消耗…

微服务的文件配置

1 基于本地文件配置的痛点 ①修改本地配置文件 需要重启服务 ②viper能监听本地配置文件变动 修改内存中变量的值 貌似可以满足需求 痛点如果实例过多 手动改极有可能出错 很多服务都依赖一个配置 运维可以写脚本批量修改 出问题运维不想背锅 ③ 多语言开发的实例 使用…

无显示器玩转树莓派桌面版

title: 无显示器玩转树莓派桌面版 zhaoolee在Github开启了长篇连载《树莓派不吃灰》https://github.com/zhaoolee/pi 目前已经更新到18篇,主要是给树莓派刷Ubuntu当做家庭服务器用。 恰好手头还有一块闲置的树莓派4B ,我打算深度玩一下树莓派桌面版&…

图形学:纹理寻址模式与UVTiling

两者不一样,容易混淆: 1,贴图寻址模式是说:当UV坐标大于1或小于0时,硬件自动取小数部分。当给一个平面网络赋予大于1的UV时,贴图自动在上面重复铺开。重复铺开有多种方式:简单重复,…

IEEE UV 2022 “Vision Meets Algae” 目标检测竞赛正式启动!

VisAlgae 2022 简介 第一届国际“Vision Meets Algae”比赛和研讨会2022将与IEEE UV 2022新型智慧城市国际会议同时举行。该研讨会的重点是使用计算机视觉技术进行藻类研究。 海洋微藻可以利用太阳能和溶解二氧化碳生长,并通过光合作用产生氧气和碳水化合物。健康…

机械冲击测试标准和作用

电子设备在生产过程、运输环节、甚至应用中都会受到机械冲击。机械冲击测试使用设备模拟这种过程中产生的冲击,以测试产品承受冲击的能力。 机械冲击测试标准 电工电子产品环境试验 第 2 部分:试验方法 试验 Ea 和导则:冲击 GB/T 2423.5-2019/IEC 60068-2-27:2008 …

UE4 材质 UV膨胀技术

自动和改进的UV膨胀材质 在处理带有不透明遮罩的纹理时,将边缘像素放大或延伸到背景中可能很重要。对于蒙版材质,这可以防止在低等级的mipmap中的边缘渗出现象。 为什么会有出现这个情况呢? 主要是mipmap是根据DDX,和DDY进行判断的&#xf…