一个区块链Layer2黑科技开源框架-光子网络(photon network)

2018年12月24日 10:41

rectinajh@SmartMesh开发者社区 SMT 0 94 2

光子网络的诞生弥补以太坊区块链上基础设施层雷电网络的不完美

纵所周知,以太坊的雷电网络(i.e Lighting on Ethereum)使用了链下交易的方式来解决目前交易拥堵问题,并实现实时的交易确认。是一种链下规模交易的解决方案,基于以太坊智能合约实现。可支持所有符合以太坊ERC20标准代币的交易它类似于闪电网络,具有即时到账,低转账费用,可大规模扩展,隐私保护的特点。使用雷电网络的参与者在互相转账时,不需要通过以太坊主链交易确认,而是通过参与者之间创建支付通道在链下完成。


如上图所示,A和B在建立支付通道之前,需要先用主链上的资产做抵押,生成余额证明(Balance Proof),拥有余额证明即表明你能做出相应余额的转账。在A和B均持有余额证明的情况下,双方可通过支付通道在链下进行无限制次数的转账。

仅有在完成链下交易,需要将资产转回链上时,才会在以太坊主链上登记主链账户的余额变化信息,而这期间不管发生多少次交易在主链上是不会有记录的。这个特点也可以实现一定程度上的隐私保护。
关于雷电网络的另一重要特征,支付通道的建立,如下图:


如果A要转账给C,而当A和C之间没有支付通道时,雷电网络会自动匹配网络中的参与者,试图在A和C之间找到一个中介来完成支付通道的建立,显然,B就是A与C之间交易需要的中间点。
同样道理,当A需要转账给D时,B、E会作为中介来完成支付通道的建立。

到底解决了什么问题?

不难看出,雷电网络具有的优势不小。今后基于以太坊ERC20标准的代币会越来越多,而目前代币的转账都在主链上进行,需要消耗Gas,支付矿工费。

对于某些本身价值就不大的代币来讲,矿工费会显得过于高昂,但是通过把交易搬到链下,可以避免产生矿工费用,雷电网络就可以解决这个问题。

从雷电网络的结构上不难发现,使用者越多,存在的支付通道越多,转账确认的速度就会越快。相信如果真的能在全球范围内普及,会织成一张密密麻麻的P2P支付网络,届时,这个网络处理交易的速度和吞吐量都可以满足所有用户。

当然,并不是说雷电网络就是完美的。首先,在使用雷电网络时需要用主链上的资产作抵押;而这部分资产作为抵押物,在使用者完成链下交易之前是不能使用的。这也就决定了,雷电交易只适合小额交易。

但是,它有没有缺点呢?

1,raiden网络实现方式是用python写的,决定了他不能在移动端使用,你无法在移动端使用雷电网络,多么的遗憾,你不能使用手机进行区块链的小额支付。

2,雷电网络没有一个各种场景下崩溃场景及无网安全性解决方法。

解决方案:

由SmartMesh设计的layer2开源框架解决方案——光子网络-Photon network

优势:

黑科技1.0——惩罚机制,保证无法转账的交易尽快失败

为了提高路由效率及资金的利用率,新合约设计了approvedisposed方式(声明放弃)取代双方互锁的refundtransfer方式,中转节点声明放弃余额不足的转账,从通道双方的locksroot中移除这个转账,由前向节点重选路由转发。如果放弃锁的节点在结算前对已放弃的锁重新解锁,合约可以对不诚实的路由中间节点进行惩罚。

黑科技2.0——各种场景下的崩溃恢复

为了保证交易过程的正常进行,以及更好的适配移动设备,我们对使用photon进行交易中可能出现的意外场景进行了分析并针对性的设计了解决方案,实现交易节点状态数据的同步以保护交易安全。
主要原则:
1)在交易某些环节中,出现节点意外掉线或退出,重新启动后,交易不能继续完成,但是不会丢钱
2)在交易所有环节中,出现节点意外掉线或退出,重新启动后,通道可以继续使用
为了避免交易过程中出现意外造成移动设备存储太多信息,我们并没有采取所有情况都可以继续交易的情况(这样会存储大量数据,对移动设备的使用效率会有一定影响),但目前已能确保意外节点重启后不会丢失token,通道仍可以继续使用,整体上保护了交易的安全。

黑科技3.0——移动适配

Photon设计的应用场景之一便是目前应用广泛的移动端和智能设备,因此,photon采用go语言开发,可以适配Android和iOS等移动端系统,并可跨平台使用(如windows/linux)。
Photon为了提高移动设备的通信稳定性和更好的用户体验,使用matrix消息框架替换XMPP通讯框架,此集群管理方案在普通的硬件支持下可达每秒百万级别的吞吐量,其点对点通信在稳定可靠(均需签名和加密)的room内进行,可实时监控节点的状态并提供当前最优的路由及收费方案来提高转账成功率。

黑科技4.0——无网支持

Photon支持无网条件下(不连接互联网上的公链)进行链下支付交易。在Meshbox支持下,已经实现了两个节点间直接通道的无网支付,间接通道的无网支付目前正处于论证可能存在(某些步骤)风险阶段。

体验:

https://github.com/SmartMeshFoundation/Photon