Py学习  »  区块链

引介 | 区块链栈层

以太坊爱好者 • 5 年前 • 380 次点击  

从根本上来说,区块链是由多个独立的层级(Layer)组成的,就像其它的科技协议比如互联网范式(链接、网络、互联网、传输、应用)一样。在此,我们想提出组成区块链层级的框架。层级的定义中有这样一种含义:每一层都依赖于其下的一层。并且,我们讨论的是每一层级的 功能,而不是其实现方式。

下表列出的是基础层具备的具体参数(Parameter),这些参数也是隐私性、可扩展性、互操作性、激励、治理以及能源效率等属性的基础。

为更好地实现这些属性(隐私性、可扩展性、互操作性、激励、治理以及能源效率)、重要的是优化所有层级(硬件、网络、共识规则以及抗女巫攻击机制)。


          有用参数

优化参数所实现的属性

最小化数据揭露

隐私性

最小化网络延迟

可扩展性

最大化吞吐量

可扩展性

最小化单节点存储量

可扩展性

最大化多链间交互数量

互操作性

最大化诚实平台使用量

激励

最大化一致同意的协议升级的数量

治理

最小化单节点计算量

能源效率

区块链范式的层级

硬件/集群:硬件层用于挖矿/验证。硬件指的就是存储所有链上数据的设备。

网络:组成网络的不同节点间信息传递的层级。

共识协议:最终化层级。

抗女巫攻击机制:防止产生多个虚假身份的层级。

应用层:建立在区块链平台上的应用层级。

通过上述框架来理解比特币的结构

硬件/集群:在比特币网络中赚最多钱的矿工都用 ASIC 来挖矿。全节点储存所有比特币区块链上的数据。轻节点是在全节点上做了存储优化。节点间使用网络层来通信。

网络拓扑:比特币通信协议依赖于全球互联网在网络层的速度。比特币通信协议是这样运作的:每个节点都会提醒它的所有平级节点(Peer)自己接收到的任何客体(区块或交易)的哈希值。每一个同级节点都通过搜索哈希值来确定自己是否曾接受过同一客体。如果任一节点还没有接收过同一客体,即发现有别的节点给自己发送了本地没有发现的哈希值,该节点便会从后者处请求该客体。

共识协议:比特币通过最长链规则,即有最多区块加入的那条链,实现了最终性(Finality)。在比特币协议中,矿工被激励在最长链上创建区块,以在自己的区块被接受上链时获得区块奖励。

抗女巫攻击机制:比特币使用工作量证明作为女巫攻击控制机制,这会让创建多个身份在计算上变得很昂贵。在比特币协议中,人们被激励在挖矿过程中运行 PoW 算法,因为有几率可获得区块奖励。

进来,区块链基础设施还未能支持大规模应用,虽然潮流已经关注到了不同的栈层,除非我们能优化所有层级,区块链就仍未准备好(支持大规模应用)。

本文受到了 Emin Gun Sirer 的 tweets 的启发(编者按:中译本见文末超链接《对区块链的二三感想(五)》)。谢谢 Emin Gun Sirer、Soumya Basu 和 Zubin Koticha 对文章的反馈




原文链接: https://medium.com/mechanism-labs/the-blockchain-stack-ca953c088692 

作者: Aparna Krishnan

翻译&校对: 阿剑


你可能还会喜欢:

观点 | 关于区块链的二三感想
干货 | 运行在区块链上的交易所
观点 | Vlad:反对链上治理



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/FDlmeiMepC
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/21845
 
380 次点击