比特币闪电网络初体验

币圈有个说法,把比特币比作女儿红,买上一个藏起来,等嫁女儿的时候当嫁妆。这个比喻,包含了币圈韭菜们对比特币升值的殷切期望,同时,还很贴切地传递了比特币的两个特性:

1. 交易容量有限,每秒也就 7 笔

2. 支付确认的速度慢,需要 10 分钟方可确认

这两个特性就判了比特币在零售行业的死刑。零售场景中,不论是刷卡还是微信支付,都不可超过三秒,现在的 EVM 卡慢一点,要三秒时间,已经令众多商户和消费者不耐烦,更别说 10 分钟了。

链圈的钱都让币圈挣去了,可币圈的问题却需要链圈来解决。

要让比特币走进零售行业,有两种思路:

1. 加大区块,提高单区块的交易容量。这是 BSV 走的道路,BSV 社区的人是一群死忠,坚定认为自己才代表中本聪的智慧,BSV 就是 Bitcoin Satoshi Vison。

2. 离线交易,或者称为比特币的第二层协议。实质就是以闪电网络为代表的技术,其中用到了微支付通道(Micro Payment Channel)、可撤销顺序成熟合约 (Revocable Sequence Maturity Contract)、哈希时间锁定合约(hashed time lock contract) 三种技术。

我个人更喜欢闪电网络,因为它的技术更复杂,所谓的奇巧淫技。而加大区块的思路,听起来有一种 “大力出奇迹” 的粗糙感。但实际上,大区块代表了一种经济市场的思想,大区块的粉丝们看待双花欺诈是这样的: “双花问题?不存在的!”。他们认为小额诈骗费力不讨好,你愿意搞你搞去,大额的话收款方注意一下,稍微等待一下确认也就是了。

闪电网络则起源于 2016 年 Joseph Poon 与 Thaddeus Dryja 的论文 “比特币闪电网络:可扩展的链下快速支付”。所以,闪电网络是一种基于比特币区块链的协议,任何开发者都可以使用闪电网络协议开发软件。闪电网络的网站是: http://www.lightning.network/,在网站上可以下载白皮书。其 Github 地址是:https://github.com/lightningnetwork。现在有人称其为 Layer 2。有一次,一位投资人跟我说他投了 Layer 2,我倒吸一口冷气,没听懂 Layer 2 说的是什么。

在我的感觉中,闪电网络是比特币这个 P2P 支付网络上的 P2P。比特币本身就是 P2P 的,但其逻辑上还有一条中心化的链存在。而闪电网络的交易,大部分并不上链,而是在链下的 P2P 通道中就处理了。所以,可以说闪电网络是 P2P 网络上的 P2P 二次元。称其为 Layer 2,也行。

做闪电网络软件产品的有三家业内公司较为知名,他们是:

公司名:lighting labs;网址: https://lightning.engineering; Github:https://github.com/lightninglabs; 这是家美国公司,在加州。

公司名: ACINQ;网址:https://acinq.co/; Github:https://github.com/ACINQ;这是家法国公司。

公司名:Zap; 网址:https://zap.jackmallers.com/; Github:https://github.com/LN-Zap;实际上,Zap 并非公司,只是 Jack Mallers 的个人产品。

首先,ACINQ 需要比特币的 Full Node。我望了望那台装了比特币全节点已经尘封的笔记本,它 5 个月前曾经同步过所有区块,我感到一阵恐惧。实验室里还有台全节点矿机,但启动起来那声赛过拖拉机,算了,还是放弃吧! 

Lightning Labs 的名字让我心生好感,一开始,我以为这是 lightning network 的作品,后来才知并非一个团队。Lightning Labs 的产品就叫 LND,有 Linux、Mac、Windows 多种版本。界面是长这样的:

比特币闪电网络初体验_第1张图片

闪电网络应用的流程大概是这样的:

1. 安装软件,此处不提细节。

2. 在软件上创建钱包,这个与比特币钱包一样,都是助记词啦,密码啦,软件在本地上保存公私钥。创建完了钱包,软件要同步比特币区块信息。应该只同步区块头信息。

3. 为了用上闪电网络,你的钱包里要有比特币。为了给钱包转账比特币,就得用 on-chain 转账,也就是区块链上转账,要等很久。

4. 为了体验闪电网络,就不能用比特币主网的币,要用 testnet 测试币。而测试币,就需要到水龙头网站去乞求。最近 testnet 测试币非常稀缺,最大的水龙头 https://coinfaucet.eu/en/btc-testnet/,经常是枯竭的。我遍寻网络,找到这一家: https://bitcoinfaucet.uo1.net/send.php,但这一家很抠,每次只给 0.01,还要验证图片。

5. 闪电网络钱包有了比特币测试币之后,就可以创建闪电网络通道。所谓创建通道,就是让你的节点,与其它节点建立联系,并彼此都在比特币智能合约中抵押一定量的比特币。下面是 LND 创建通道的界面:

比特币闪电网络初体验_第2张图片

创建通道也是链上交易,所以耗时很长,要大约半个小时。我用 LND 搞了好久,也没能成功。莫名其妙成功了一次,但那通道总是 inactive,真是垂头丧气。

比特币闪电网络初体验_第3张图片

最终,放弃了 LND,转向 Zap,说实话,我并未抱有太大希望。因为这三个产品,都还在 Alpha 或 Beta 期,Bug 无数,比人生那领华丽袍子上的虱子还多。

Zap 的界面长这样:

比特币闪电网络初体验_第4张图片

一样的,要创建钱包,要从水龙头网站要饭,充入比特币测试币。

在冲币之前,Zap 和 LND 都要同步比特币区块,我猜测同步的只是区块头,绝对不是全节点。大约20分钟便可同步完成。但 Zap 这冤家在同步时就出毛病了,它同步到了 100% 时,卡死在那儿了,如同死狗一般,一动不动。

又一次陷入无计可施。我摸索着找到了 Zap 的 Slack 支持:zaphq.slack.com 和论坛:https://github.com/LN-Zap/zap-desktop/issues,搜索中发现,原来这是个 Bug。幸好,解决方案很简单,多重新启动几次试试看,也许就好了。

果然,胡乱重启几次,中间去喝两次咖啡,莫名其妙就好了。

Zap 创建节点的界面是这样的:

比特币闪电网络初体验_第5张图片

我选择了 Yalls,成功创建了一个 Channel:

比特币闪电网络初体验_第6张图片

创建 Channel 比较慢,耐心点。一旦 Channel 状态变为 open 绿色,恭喜,大功告成。

另外,创建 Channel 的时候,抵押的比特币金额也有要求:

比特币闪电网络初体验_第7张图片

在 amount 里,输入的金额,必须小于钱包余额。但问题是,钱包显示的余额,往往看上去够,但 Zap 总是提示说不够。这很可能是因为区块链对你钱包余额的确认数不足造成的。

若是输入 amount 过小,也可能不成功。因为你要连接某个 node 创建 channel,而那个 node 有最低金额要求。 

试过来,试过去,发现 Yalls 必须最少 0.01 个比特币,也就是一百万聪。

好了,我成功创建了与 Yalls 的通道 Channel。但郁闷的是,我在两台 PC, 一台 Mac,一台 Windows,都建立了于 Yalls 的通道,然而,两个节点之间进行支付,总是不成功。

然后,我发现了这个网站:https://testnet.yalls.org/groups/a1264e7f-401d-4c46-97a7-7b14e6b54193:926B20A0-5375-4E8A-BC75-D060BD930D7C

这是 Yalls 的讨论组,这个讨论组的每个帖子,都需要用闪电网络支付 testnet 比特币才可看全,这样的:

比特币闪电网络初体验_第8张图片

点击继续阅读后,界面如下:


比特币闪电网络初体验_第9张图片

可以用钱包扫二维码(需要手机钱包),或者复制支付字符串。注意,闪电网络的支付,流程是这样的:

1. 商家(收款方)生成 invoice,也就是上面显示的那 Int 打头的字符串。

2. 消费者(付款方)用钱包解析 invoice 字符串,并执行支付。

这与比特币链上交易的支付模式类似,都是付款方扫描收款方。不同的是,比特币链上交易的二维码,只是比特币地址,付款方要在钱包中输入金额,然后构造交易并广播。操作比较麻烦。而闪电网络收款方生成的 invoice 中已经包含金额与备注信息。

复制 invoice 支付字符串后,在 Zap 钱包中执行 pay,解析如下:

比特币闪电网络初体验_第10张图片

支付的时间在 1 秒之内,这个速度用于零售足够了。

支付完成后,Yalls 讨论组的页面,立刻打开:

比特币闪电网络初体验_第11张图片

体验非常好,速度一点问题都没有,用于零售肯定可以。

不过,闪电网络有两个弱点:

1. 要使用闪电网络,必须抵押比特币。这就占用了消费者资金。是否可以让那些并未成为闪电网络节点,也没有抵押资金的用户,也可以使用闪电网络?

2. 闪电网络天然容易导致大节点的集中,这样整体生态中效率最高。人人都连接到大节点,就省却了多层传递的手续费。然后大节点就意味着中心化,意味着弱点和瓶颈。

这是人们诟病抵制闪电网络之处,不知未来是否有望解决。

刚做完第一笔交易,朋友发来一则新闻:


比特币闪电网络初体验_第12张图片

这则新闻标题错了,“用电网络”!My God!

亚马逊用了闪电网络,对闪电网络是个巨大的推动。

你可能感兴趣的:(比特币闪电网络初体验)