「抽象层」的概念显然在比特币之前就有。一般来说,从分「层」的角度思考有助于归类和理解那些由有序的子系统构成的复杂系统。
撰文:胖车库之喵比 ter
这篇文章是围绕以上问题的讨论,关于比特币「层」的叙事与互联网 TCP/IP 协议套件的相似之处,并继续追溯在互联网诞生之前人们在思考的问题,以及这之下所衍生出的经久不衰的主题:身份、去中心、安全等等。因为我们想要构建一个层层相扣的虚拟世界,有的人要 fix,有的人要 rebuild,但不管怎样,「更好的解释」总是一股驱动力,我们无法停止纠结需要付出信任的每一个环节(bushi。
但有关「为什么」的问题这里欠缺解释,比如我们现在只能以后视镜的视角看 TCP/IP(作为互联网协议的一个结果),能描述和总结历史事件但并不清楚促成它的细节和动机(或者说,还需要很多串联)。但无论如何,发出 LNP/BP(闪电网络 / 比特币协议套件)这个类比是一个有趣的开始,希望我们能借此串联起更多与比特币、与建立网络之初相关的叙事,而不只是只狂欢于技术的手段。
不同的是世界,而不是我们。——寻找时间的人
「抽象层」的概念显然在比特币之前就有。一般来说,从分「层」的角度思考有助于归类和理解那些由有序的子系统构成的复杂系统,每个子系统的建立都依赖于之前的子系统:想象一种垂直并置的结构,「上层」踩在「下层」的肩膀上,后者通常比前者更难移动、改变或全身而退(想象垒积木,越靠下面越难抽出)。
Layerization
这种类比在建筑语境里出现更早。Stewart Brand 在《How Buildings learn》中定义了 Shearing layers(剪切层)的概念,将建筑视为在不同时间尺度上演化的若干组件。
shearing layers
A building properly conceived is several layers of longevity of built components (quoted in (Brand, 1994)).
英国设计公司 DEGW 的联合创始人 Frank Duffy 说:「我们的基本论点是,根本就没有建筑这种东西。一座构思合理的建筑是由几层经久耐用的建筑构件组成的。」他区分了四个层次,他称之为外壳(Shell)、服务(Services)、风景(Scenery)和布景(Set)。
* 外壳(Shell)是一种结构,它的使用寿命相当于建筑物的使用寿命(英国为 50 年,北美接近 35 年)。服务(Services)包括电缆、管道、空调和电梯,大约每十五年更换一次。风景(Scenery)是隔墙、吊顶等的布局,每隔五到七年就会改变一次。布景(Set)是居住者移动家具,通常是几个月或几周。
在计算机科学中,我们以硬件 / 软件二元概念进行分层(有时还有额外的中间层,称为中间件、固件等)。其中底层电子组件复杂的物理配置也可以用一种简单抽象的方式描述,软件来承载硬件职能。
相较于 7 层的 OSI 模型,4 层的 TCP/IP 模型可能是最好的分层架构例子。在 OSI 模型中,第一层(物理层)传输实际的原始比特流,第二层(数据链路),定义数据的序列化格式;第 3 层(网络),决定数据将采用的路由路径;第 4 层(传输),管理传输协议;第 5 层(session),维护连接并控制端口和会话;第 6 层(presentation),管理数据格式和加密;第 7 层(应用程序),管理最终的人机交互。
对比 ISO 和 TCP/IP 模型的分层
TCP/IP suite
比特币中最早提到「层」也是在互联网语境下,与信息覆盖相关,以跨节点和矿工传达区块和交易。
bitcointalk
图为作者在 bitcointalk 中找到的最早包含「层」的讨论
随着 2013 年「Mastercoin」协议的发布,「比特币之上的层」这一表述开始出现新的含义(今天称为「Omni-layer」)。
Mastercoin 是一种协议,通过附加额外信息重新解释一些(有效的)比特币交易,这使得发行自定义数字资产(例如欠条、股票、期权、特许权使用费、投票权、收藏品 、证书等)和复杂合约的创建(例如支持原子 p2p 交换、赌博、金融衍生品、股息分配等)成为可能。它的主要开发者 J.R. Willett 这样解释:「我们是比特币之上的协议层,为比特币增加了额外的功能:Mastercoin 使用比特币就像电子邮件使用 TCP/IP 的底层一样。」
其他强化「比特币二层」滤镜的项目紧随其后:从 Counterparty(与 Mastercoin 非常相似,但没有隐晦的 ICO 模型)到许多染色币(Colored Coin)将上层抽象层上的已发行资产表示与合约动态分离, 委托回「下方」到比特币的本地脚本系统)。当时,这些实验的通用名称是「比特币 2.0 协议」。在一篇写得很好的博客文章中,年轻的记者将成为 ICO 发起人 Vitalik Buterin 将它们标记为「元协议」(用于定义其他协议的协议)。但是「二层协议」这个表达方式也很常见。
Bitcoin 2.0
我们可以将这种特定的概念化称为「重新解释层」或「基础设施重用」。第二层的每个「事件」都是第一层中实际有效且已确认的比特币交易,以高阶语义重新解释,意味着不仅仅是简单的比特币传输。
经济资产比特币(带有「b」)不一定被重复使用,而技术基础设施比特币(带有「B」)被利用以转移更多资产。也就是说,交易数据写到了其他 protocol 中,用到了区块链 B 但是没用到比特币 b。
关于比特币最初被认为是「全球共识」协议这一事实所造成的几个问题的辩论中出现了「比特币之上的第二层」这一表达方式的第二种完全不同的用法。比特币解决双重支出问题的去中心化解决方案「时间链」虽然非常出色,但本质上是无法扩展的。它假设网络中的每个节点都必须永远跟踪所有事情:每一个链上交易都必须由每个将使用该系统的参与者下载并验证其整个历史,甚至是未来的交易。这也意味着绝对的隐私性和可替代性限制,支持任何类型的取证分析和去匿名化尝试。
没有简单的解决方案:如果你严格限制时间链中区块的大小和频率,那么所有节点的验证负担可能仍然可以控制,但是「区块空间」供应将无法满足大量需求,导致交易费用和等待时间大幅增加。另一方面,如果你允许区块的大小和频率增长,那么「区块空间」的价格将会降低,但是运行节点的成本将导致整个系统的拓扑结构集中化。
有一种巧妙、重要的方法可以减轻全球共识系统的基本限制,同时又不牺牲其去中心化:将一些活动迁移到无需信任和无需许可的「第二层」。在绝对必要之前,大多数用户可以避免将每笔交易提交到一个区块,从而使大部分流量不用通过公共时间链,仅使用后者来解决冲突或定期结算。这种方法最著名的例子毫无疑问是闪电网络:一个有效的比特币交易可以点对点之间本地传输并连接在「路由路径」中的系统,不是广播并提交给时间链,而是使用边缘路径在付款人和收款人之间传递价值。
这里插一个知识点(我记得阿剑说过交易的实质是:状态的转换)比特币通过 utxo 模型实现状态转换,这里解释一下。
比特币的「状态」实质所有已经铸造但尚未使用的货币(技术上称为 UTXO-unspent transaction output 未使用的交易输出),每个 UTXO 都有面额和所有者(由一个 20 字节的地址定义,本质上是一个加密公钥。)
状态转换
举个例子,把 state 变为 state1,需要两个参数:当前状态,交易内容
APPLY(S,TX)->S1 or Error
当前状态 S,交易是 TX,通过 APPLY 函数变成新的状态 S1,状态不满时输出错误。
APPLY{Alice:50$,Bob:50$},'send 70$ from Alice to Bob'= Error
这个想法某种程度上类似于在普通法系中,法院和合同的各自运作方式:法院可以创造具有公开约束力的先例,达成某种「法律全球共识」,但它们相对缓慢、昂贵且不利于隐私保护,因此大多数贸易方通常只签署私人合同,仅在出现冲突或某些定期公共审计到期时才要求法院核实和执行合同。先进的比特币脚本可用于保持操作信任最小化:与实际的法律审判不同,Timechain 结算过程可以避免人为偏见和腐败,主要依赖密码学、激励和代码。
闪电网络并不是这种类型的唯一示例:准备高级合约(如 CoinJoin、PayJoin 或 CoinSwap)所需的对等点之间的带外交互也可以被视为正在发生,在第二层,只有一些部分实际指向时间链,具体取决于场景。
我们可以将这种层形容为「省略层」或「资产重用」。 第二层的每个「事件」都是实际的比特币传输,最终可以在第一层进行结算,即使用于实现此目标的大多数比特币交易实际上并未向全网广播,向时间链确认。
技术基础设施比特币(带有「B」)不一定被重复使用,但经济资产比特币(带有「b」)被利用以调解更多的价值转移。也就是说 Omission 中,在区块链 B 上开通闪电通道,交易支付直接用到 b 但是没有发送到区块链上。
首先,我们来解释一下 TCP/IP:她代表一组非常丰富的开放协议,统称为「Internet」(或「internet protocol」,简称 IP)。
「TCP」传输控制协议是直接建立在互联网协议(IP)上的少数最常用的二层协议。
TCP 的作用是什么:使数据流安全地在不同互联网应用之间转移。
TCP/IP
TCP 在两台主机之间提供可靠的数据流。将应用程序传递给它的数据分成适当大小的块以供下层的网络使用、确认收到的 [数据包] 以及设置超时以确保另一端确认发送接收的数据包。
在传统的 IP 协议中,我们发送接收数据包(data packets);在闪电网络中,发送接收比特币(bitcoin)。
Bitcoin itself cannot scale to have every single financial transaction in the world be broadcast to everyone and included in the blockchain. There needs to be a secondary level of payment systems which is lighter weight and more efficient.
-- Hal Finney, 2010-12-30 Early cypherpunk & the second person to run Bitcoin
计算机中的两种数据传输形式:旧时的 ethernet 以太网集线器严格支持广播(broadcast)传输数据:来自于一个接口或端口的数据会被复制到网络的其他接口或端口。(问题:而后来 IP 层的出现可以实现数据的 P2P 传输???
我们发现区块链的交易类似于广播通信,而闪电网络使得原本只支持广播的比特币得以实现 P2P 传输。比特币中的闪电节点等于 IP 主机,使得我们能够执行和发送点对点的交易至准确的接收方。
但是这种层级并不是明确隔离,所以使用/
套件 的说法。TCP 连接是互联网套件的组成部分一样,LNP 通道也是比特币套件的组成部分。
今儿最后一个问题是,为什么要类比这两个东西。我们的期待是什么?
哈,这篇文章拖了好久,本来想只翻译 giacomo 的文章(有一部分没有翻译),但理解 TCP/IP 的时候困难重重,去看了《TCP/IP illustrated:The protocol》by Kevin Fall, W. Stevens,画了几个图,但是感觉越读越写没完了😇。
第二,在理解 Omission layer 和 interprentation layer 区别的时候我很疑惑,阿剑老师给了个生动的例子:
假设你跟我达成一个约定,如果你在链上写一段数据(表示用一种什么东西给我支付),我就给你发货。在这种情形中,你并没有使用比特币来支付,但你用到了区块链;这就是用了 B,但没有用 b。
data in the block being reinterpretated by other protocols (not bitcoin protocol)。但是,如果我跟你开通了一条闪电通道,无论我们在闪电通道内相互支付了多少次,这些支付都是以有效但没有发送到区块链上去的比特币交易表现出来的。在这里,支付都是用的 b,但它们完全没有呈现在链上,所以它们被「省去」了。
第三,关于 RGB 协议的原理和细节也非常值得延伸,极力推荐 mempool 的一期关于 RGB 协议的播客:https://www.xiaoyuzhoufm.com/episode/64510149306513184ce2bade
问题还有很多很多...
那么,这片就当作一个抛砖引玉先发出来,在慢慢扩展吧。有兴趣的伙伴一起研究这个主题,有什么相关资源也可以推荐我呀~
References
1)LNP/BP: A gentle introduction:https://www.giacomozucco.com/lnp-bp-a-gentle-introduction/#layers-before-bitcoin
2)建筑中的 shearing layer:https://conanxin.medium.com/%E7%AC%AC%E4%BA%8C%E7%AB%A0-%E5%89%AA%E5%88%87%E5%B1%82-shearing-layers-how-buildings-learn-9c81aa05fcaf
3)闪电网络是比特币的 IP 层
4)协议战争
5)RGB explained: https://twitter.com/cryptoquick/status/1668331191190310912
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。