写点什么

区块链上的交易真的是“点对点”吗?

  • 2019-11-18
  • 本文字数:2030 字

    阅读完需:约 7 分钟

区块链上的交易真的是“点对点”吗?

“区块链上的交易是点对点的,不需要中心实体来维护交易。”这是很多为区块链摇旗呐喊的文章常用的开篇语,斩钉截铁,毋庸置疑,让人有种“一入区块链,宛如面对面”的错觉。



字面上的点对点和面对面


其实这句话有一定的迷惑性,如果精确地将“中心实体”定义为类似当下的一些强中介(这里不讨论这种模式的好坏),貌似说得通,毕竟区块链上没有物理上隔断各参与方的中介存在。



星型结构和公共账本互连模式对比


但如果到此为止,很容易给人“区块链上的交易就是‘点对点’了”的误导,而模糊了下述事实:实际上任何区块链系统都需要共识节点,或者称为“记账者”或“矿工”来打包和确认交易。即使是 plasma、闪电/雷电网络等方案,也只是让参与者在特定通道上,直接或间接地交换账务信息流,最终结算或者纠纷处理,还是得回到主链上进行共识完成流程。


“矿工”这种存在,从理念上可以说是“去中心化”的,因为矿工不止一个,所以“没有中心实体”这句话看起来对,但矿工的“去中心化”事实上是一种不确定性,公链上的矿工已经出现了明显的集中趋势,或者类似“21 个长老”这种被去中心化信徒诟病的卡特尔组织已经萌芽,其去中心化程度和安全性,某种程度上取决于“社区”博弈或某个大神的运作。



围绕着“矿工”的网络生态


而在效率和体验上,“古典”去中心化记账的服务质量很难说是可靠的,一旦出现热点交易状况,那么长达几天的网络堵塞、交易延迟、交易手续费飞涨都是常见的事情,一笔几美金的价值转换,手续费可能要上百美金。


同时,做为普通小散韭菜用户,基本上没有机会去投诉或推动你期望的服务质量提升,连客服渠道都是找不到的,毕竟是“去中心化”嘛。


如果用户是使用区块链钱包或客户端交易,那么更别提“点对点”了,非轻客户端类型的钱包客户端,实际上是把交易发给了服务器,服务器来代理,将交易提交到区块链网络上。这还算是好的,只要钱包服务商不闹妖就问题不大。


如果是交易所的客户端,那很多情况就是在交易所的业务数据库里记一笔,连区块链网络都不碰。在缺乏监管、运营水平又参差不齐的“交易所”行业里,这种模式既“中心化”,又面临严峻的道德和安全风险,而“去中心化交易所”则是把中介角色交给了链上智能合约和矿工,理论上更加透明,但在效率、流程方面,依旧说不上是“点对点”。


如果用户干脆自己安装节点,直接加入到网络里,又是什么情况呢?


物理上,因为连接模型的约束(常见的 Gossip 模型只连接少数“邻居”节点),仅仅从网络层面看,你和交易对手大概率也是不会直连的,而是经过多次转发后,双方才能“碰头”,这是 P2P 网络的基本特性,并不是“字面上”的“点对点”。如果转发链路上有什么幺蛾子,那也是不确定性的。


一般来说,反复广播转发的网络模型里,在严谨地选择路由、验证连接邻居的前提下,信息到达率还是可以保障的。这里的“点对点”,事实上是广义的桥接型多跳连接(雷电/闪电网络也类似),这种模型不可避免的有一定的传输冗余和延迟率。事实上,被我们熟知的“P2P 下载网络”,如果要达到飞一般的速度体验,是依赖普通节点之外的中心化服务器来加速的。


话说回来,就算物理网络建立了点对点连接,交易事务层面上还是要等待记账者(矿工)收拢交易打包,共识确认和同步区块,一笔交易才算完成了,这个过程中“物理直连”并不涉及经济模型方面的意义。



综上所述,所谓的“点对点”更像一句口号,其真实含义需要穿透表象来理解。对普通用户来说,他们理解的最朴素的“点对点”,是面对面地把钱塞到对方手里,一次握手即完成交易。而用户把交易发出去,无论下一步是到银行、支付公司、还是“分布式账本”,对普通用户来说,从本质上讲都是一种委托交易



一手交钱一手交货



字面上的“点对点”交易



事实上的分布式账本


在这种格局下,“面对面”是不存在的,私密一定程度上也是不存在的。信息不给到记账者,怎么记账?零知识、环签名等重武器并不是每条链都配备的,追求全面隐私保护的链,计算和架构都会更加复杂,我们会另外分析。


最后,想想当下移动支付各种顺畅体验,银行大额转账秒级短信通知,区块链字面上所谓的“点对点”,真是说得美好,而现实骨感呢。


所以,如果读文章时,看到以吹嘘区块链是“点对点”这个 slogan 为立论基准,建议读者先理清楚他这里的“点对点”究竟说的是什么语境下的“点对点”。我心目中的分布式账本,真正的意义并不在于“点对点”,而是“可靠可信可控”,通过博弈和协作,多方共同实现的价值网络,让每个参与角色在其中都有其存在感。



当区块链系统能达到或接近现有中心化交易系统的速度和交互体验,包括 7*24 高可用的多活多方记账、秒级延迟确认、快速达成最终一致性、并发处理能力又足够高、交易成本足够低、对公对私都有明确的 QoS 约定和兜底容灾容错方案,而且区块链先天的分布式架构体系上有群体规模效应,可防作恶、防篡改,可监管,那么才算是“多中心”信任背书、透明协作的靠谱分布式交易系统。不喊口号、实干为主的联盟链目标,更贴近这个方向。


本文转载自 FISCO BCOS 开源社区


2019-11-18 21:431768

评论

发布
暂无评论
发现更多内容

SpringCloud Gateway 服务网关的快速入门

Gateway SpringCould 9月月更

软件测试 | 测试开发 | 测试人生 | 入行3年,年薪36W+,从外包到知名互联网公司,疫情之下薪资不止翻倍~

测吧(北京)科技有限公司

测试

跟着卷卷龙一起学Camera--AF

卷卷龙

ISP 9月月更

渡过“寒冬”,看云原生数据库如何助力企业降本增效与持续创新

亚马逊云科技 (Amazon Web Services)

数据库 云原生

【C语言深度剖析】深入理解const的用法(趣味小故事解析)

Albert Edison

指针 C语言 const 9月月更

软件测试 | 测试开发 | 测试人生 | 40+的年龄50W+的年薪,2线城市入职名企,他曾想放弃测试?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 接口测试项目实战与经典面试题解析,挑战 BAT 大厂必会!

测吧(北京)科技有限公司

测试

从0到1开发微信小程序(3)—小程序框架配置

微信小程序专栏

2022-09-14:以下go语言代码输出什么?A:0 0;B:0 1;C:1 1;D:1 0。 package main func main() { println(f(1)) } func

福大大架构师每日一题

golang 福大大 选择题

图系列算法在转转推荐算法召回及粗排的实践

转转技术团队

深度学习 推荐系统 图算法 graph embedding

为什么Vue中的v-if和v-for不建议一起用

达摩

Vue

Elasticsearch聚合学习之三:范围限定

程序员欣宸

elasticsearch 9月月更

StarRocks 社区一周年:极速统一,感谢遇见!

StarRocks

数据库

软件测试 | 测试开发 | 测试开发基础|一文搞定计算机网络(一)

测吧(北京)科技有限公司

测试

从0到一开发微信小程序(1)——申请账号并安装开发环境

微信小程序专栏

从0到1开发微信小程序(2)——开发第一个小程序

微信小程序专栏

关于数据仓库的特点及组成的概述

阿泽🧸

数据仓库 9月月更

C++学习---cstdbool和cstddef源码学习分析

桑榆

c++ 源码阅读 9月月更

内核实战教程第五期 _ SQL 执行引擎的设计与实现

OceanBase 数据库

软件测试 | 测试开发 | 测试工程师如何突破职场瓶颈?

测吧(北京)科技有限公司

测试

2022年区块链金融场景化应用专题分析

易观分析

区块链 金融

面试突击83:什么情况会导致@Transactional事务失效?

王磊

Java 面试题

数据结构与算法 之线性表

喜羊羊

9月月更

Solo博客静态部署到码云gitee —— 全网最详细系列

海底烧烤店ai

部署 博客系统 博客搭建 9月月更

软件测试 | 测试开发 | 文未有福利 | BAT 名企大厂做接口自动化如何高效使用 Requests ?

测吧(北京)科技有限公司

测试

关于运维监控系统实践中的一些tips

穿过生命散发芬芳

监控系统 9月月更

Java知识点锦集1

喜羊羊

9月月更

Java知识点锦集2

喜羊羊

9月月更

软件测试 | 测试开发 | 测试面试真题|工作2年,从小厂到大厂,薪资翻倍是怎样的体验?

测吧(北京)科技有限公司

测试

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v5.0版已发布

JackJiang

Netty 即时通讯 im开发 开源im

区块链上的交易真的是“点对点”吗?_开源_张开翔_InfoQ精选文章