Home 闪电网络和分片
Post
Cancel

闪电网络和分片

这篇记录下我对闪电网络和以太坊分片技术的理解和一些看法。

网络上介绍技术实现的文章很多(详见参考),所以这里不详细讨论实现细节,只是多说下自己的想法。

欢迎留言探讨。

Lightning Network

闪电网络基于微支付通道演化而来,主要包含两个部分 RSMC(序列到期可撤销合约) 和 HTLC(哈希时间锁定合约)。

首先闪电网络是用于比特币的,因为要用到类似合约的用法,所以这里先简单说下,比特币的合约。

比特币其实是支持合约的,可以看 这篇官网 wiki 介绍。我看完这个介绍的感觉是这很初级,很实用。

大家知道比特币网络本身是不支持智能合约的,但是比特币的签名机制可以对输入和输出签名,应用这个,可以实现链下的合约。

一般的做法就是,首先构建一个交易体,某个投资人针对这个交易体的自己部分的输入和输出进行签名,然后交给其他人投资人,其他人再增加自己的输入和签名,以此类推,直到这个交易体满足大家的预期,然后就可以将这个交易体广播出去。这其中根据不同的场景有很多细节,这里就不一一说。

而 RSMC 就是应用了方式,在链下构建了交易通道,根据需要构建了很多的交易体,交易体对应着链下的交易,也就是一些微交易,最终的交易结果,只有到链下交易通道需要终止的时候,才会最终上到比特币网络,这之前的交易,都不用上链。

有个地方设计得很巧妙:

每个人手中的终止交易的交易体,如果广播的话,是先把钱给对方,然后自己等待一定区块确认后,才能拿到自己那部分。这个配合废弃旧交易的流程,如果某人作恶,广播旧交易的话,那么另一方可以知道,然后修改交易体,让作恶方一分钱都拿不到,防止欺诈。

而 HTLC 就是链下跨通道之间交易,不多说了。

闪电网络可能有哪些问题呢?我觉得,

首先,这些都是链下交易的,只有最终结果才上链,所以中间流程都是没有记录的,另外链下交易的安全性,也是需要考虑的。

其次,流程设计很巧妙,但是也很繁琐,比如互相交换交易体签名,在废弃旧交易体的时候提供私钥,为了防止欺诈还要关注比特币网络的状态。

最后,因为需要交换私钥,那么就要求私钥的派生,采用硬化派生,这个就有一定的技术要求,或者钱包支持。

sharding

其实分片思想来源于传统数据库的分片,从区块链角度来看的话,现在所有的交易,每个全节点都需要全部保存和验证,那么假设每个节点的计算力是 c,交易容量是 \(O(c)\),那么实际整个网络的交易容量也是 \(O(c)\),和单个节点的容量是一样的。

那么这样重复的验证,是必须的么?不一定,以 PoW 来说,只要分片后每个片区的节点数量足够多,安全性也是可以保证的,但是和以前相比肯定是降低了。

以太坊的分片方案 Casper Pos,这是一个全新的算法,引入了 collation 的概念,每个 collation 包含实际的交易数据,由定期随机选择的 collator 负责打包,每个分片产生一个 CollationHeader,在主网中只包含这些头部。

那么性能可以提升多少呢?官方的说法是达到\(O(c^2)\),这个可以这样理解,原来的容量是\(O(c)\),这里包含的是直接的交易数据,现在变成了 CollationHeader,而 CollationHeader 又包含 \(O(c)\)的实际交易数据,所以是\(O(c^2)\)。

这里面 collator 的选择是随机的,从所有在主网合约上注册的候选人里挑选,没有人提前知道自己会被选上,也没有人知道会被选择成为哪个分区的 collator,这可以杜绝一些作恶的场景。

这里的核心思想和 DPoS 类似,需要一定数量的保证金,随机委任为生成区块的负责人,有利益相关的人更不可能会作恶(不过真的是这样么?)。

分片看着挺不错的,那么会有哪些挑战呢?

首先,分片根据地址(或地域,可能会引入更多问题)来划分,且账本分离,那么就不可避免的需要跨分片通信的能力。另外就算跨分片实现可以,也会存在所谓的“火车旅馆问题”。

其次,像之前说的,分片导致了每个片区节点数量的降低,那么安全性就会降低,尤其是现在节点数量并不是很客观,进一步的拆分节点,被攻击的可能性就更高些。

最后,就是分片使区块链更复杂,越复杂的东西出问题的概率就越高,被攻击的可能性也就越高,就是第一阶段,现在也没落地,大概还需要一年的时间测试,何况第一阶段还不包括跨片交易。

感想

在看以太坊官方的分片文章的时候,除了分片原理的介绍,里面还有很多其他方面的讨论,比如安全模型、各种攻击形式、抽样随机性等,给我的感觉就是做一个区块链产品,尤其是公链还涉及到资金,架构方面,功能设计只是最基本的,安全和经济模型都是需要着重考虑的,真的是十年磨一剑。

参考

https://ethfans.org/posts/vitalik-sharding-on-ethereum

https://ethfans.org/posts/how-to-scale-ethereum-sharding-explained

https://ethfans.org/posts/Sharding-FAQ

https://ethfans.org/posts/ethereum-sharding-and-finality

https://ethfans.org/posts/making-sense-of-ethereums-layer-2-scaling-solutions

http://finance.sina.com.cn/blockchain/coin/2018-06-04/doc-ihcmurvh0978930.shtml

https://www.zhihu.com/question/46515457

This post is licensed under CC BY 4.0 by the author.
Contents