主页 > imtoken安卓版 > 区块链详解——从本质到实现原理

区块链详解——从本质到实现原理

imtoken安卓版 2023-01-18 12:51:14

随着比特币、以太坊等数字货币的兴起,数字货币的底层技术——区块链技术,开始进入大众视野。姚劲波说:区块链可能和互联网一样伟大。区块链技术比传统互联网技术好在哪里?它的实现原理是什么?作者希望通过这篇文章,能够解答你心中的疑问。

信任问题

在互联网上复制和传播信息的成本接近于零,便于发布和获取信息。但资产和信息是不同的,资产不能随意复制。如果可以随意复制人民币,那么每个人都将成为亿万富翁:-)。

目前的互联网和金融技术通过搭建中心化服务器解决了资产传播问题,但成本仍然很高。原因是当今的金融市场建立在由不同服务提供商组成的庞大网络之上。在这个庞大的网络中,存在着相互隔离的各种数据系统和操作系统,极大地影响了金融市场效率的进一步提升。欧洲央行 2012 年的一份报告估计,除了每个人支付的直接成本外,间接成本高达 GDP 的 1%,大约每年 1300 亿欧元。在世界银行的报告中,跨境汇款的成本接近 8%。 [1]

金融机构不能无条件地相互信任,导致金融领域出现数据孤岛现象,进而导致数字资产在互联网上流通的成本高昂。如果金融机构能够相互信任,那么所有的资产数据都可以在互联网上自由流通,不存在数据孤岛,从而降低数字资产的流通成本。信用的道德号召难以落实。有没有什么技术手段可以解决信任问题?区块链技术的出现为解决信任问题带来了一丝曙光。现在区块链技术在金融领域之外的更多领域得到应用,解决了这些领域的信任问题。

相信机器

使用区块链技术,可以创建信任机器 [2]。比特币系统是基于区块链的记账机器;以太坊是基于区块链的智能合约机,等等。信任的秘密在于区块链的加密、公开和不可变特性:

加密

区块链技术基于密码学和数学,这是信任的基础。包括,椭圆曲线数字签名算法、非对称加密、哈希函数、默克尔树等。这些算法是密码学和数学所公认的穷宇宙的力量难以破解的算法。区块链上的数据是公开的,但这并不意味着任何人都可以知道你的秘密。使用这些加密算法可以保护您的数字权利,例如您的在线隐私、在线文章的所有权以及数字钱包中的 Token。

区块链比特币原理

宣传

宣传是获得信任的最佳方式。基于区块链技术的系统规则(程序)和数据对公众开放。任何参与者都可以通过运行区块链程序来验证数据加入。从程序可靠性的角度来看,信任既可以建立在黑盒程序上,也可以建立在开源程序上。从双方的角度来看区块链比特币原理,信任可以建立在受信任的第三方之上,也可以建立在个人验证的基础上。如果可以自己验证或者依赖第三方验证,自己验证比较靠谱;如果自己无法验证,只能选择受信任的第三方。区块链提供了更加开放、透明和可自我验证的机制,因此基于区块链技术的系统比黑匣子和第三方更容易获得所有人的信任。

不可变

区块链技术的不可变特性是数字资产不可变的基础。从技术上讲,我们可以添加、删除、修改和检查任何数据。但在基于区块链技术的系统上,删除和修改操作的可行性几乎为零。

核心原则

加密技术是区块链出现之前已有的技术,本文不再详细展开。区块链最大的创新在于它是开放的、不可变的。本文的其余部分将剖析区块链的核心原则,并帮助您了解为什么它是公开的和不可变的。

状态机

区块链比特币原理

我们从最简单的区块链记账机开始,比如以太坊系统(比特币系统的原理稍微圆润一点,但本质是一样的),实际上面是多个节点维护同一个账本记账机在账本上记录每笔交易的信息。通过各个账户的初始余额和记录的信息,可以随时推断出各个账户的余额。也就是说,区块链记账机完成记账功能的基本原理是:状态机[3]。例如:在state1,A和B都有100; A发起一笔交易,向B支付100,这笔交易将被区块链系统记录。我们可以通过 state1 的账户余额和区块链上的交易记录计算 A 和 B 在 state2 的账户余额:A 有 50,B 有 150。同样,只要我们知道初始化状态(Genesis)并使用区块链系统记录每一笔交易,我们可以随时计算任意账户的余额。

clipboard.png

双重付款

在区块链技术出现之前,去中心化记账流程并没有很好的解决方案。遇到双花问题。集中记账是指一个节点(如计算机)维护一个账本;去中心化记账是指多个节点维护同一套账簿。

顾名思义,双花是指同一笔钱可用于两次付款。具体来说,在同一时间,A 将向 B 和 C 双方支付 100 元。如果发生这种情况,A 相当于将 100 元作为 200 元花费。但B、C和记账机构中的一个将损失100元。在一个集中的会计系统中,双重支出显然是不可能的。因为无论两笔交易是否同时进行,集中记账系统都必须按顺序处理两笔交易。集中记账系统会先处理第一笔交易,从A的账户中扣除100元,再处理第二笔交易。如果此时A的账户里没有余额,第二笔交易就会失败。

在去中心化的记账系统中,会有多个节点记录交易信息。在上面的例子中,去中心化记账系统中的一些节点会首先收到B的交易信息;其他节点会先收到C的交易信息。在去中心化记账系统中,所有节点都是平等的。没有协调节点来决定是先处理 B 的交易还是先处理 C 的交易。这会在分散的会计系统中产生双重支出问题。

解决去中心化记账系统的双重支付问题,可以分两步来讨论:第一步是确定交易信息的顺序;第二步,需要一个共识机制,保证所有节点都同意这个顺序。

区块链比特币原理

第一步,确认订单的原理很简单,就是对交易进行排序。决定交易顺序的数据结构是区块链。 “区块链”中的“区块”是指同一时间段内交易信息及相关数据的集合。 “链”是块按照生成顺序的连接。

clipboard.png

共识机制

共识机制是区块链系统上的独立节点自愿就区块的顺序达成共识。这组规则可以简单描述为以下 3 个步骤 [4]。

所有节点质押成本(如算力)争夺记账权,获胜者生成并广播区块(记账信息),获得收益(如比特币)奖励。

每个节点独立验证新区块并将其组装到区块链中。

每个节点独立选择区块链,选择最长的区块链。

区块链比特币原理

这个规则如何允许独立节点自发参与区块链系统的记账?又如何避免节点扰动的问题?

第一步确保每个节点都会出于“自私”的目的“诚实地”参与区块链系统。 “自私”是指节点都是为了利润(收益-成本)。 “诚实”是指遵循区块链的共识机制。但是,如果有利润,就会有欺骗。如何防止作弊?这取决于接下来的两个步骤。

第二步确保每个节点都能验证赢得比赛的节点的记账信息。即使一个“破坏”节点抢占了记账权并记录了一个假账户,其他节点区块链比特币原理,包括你的,也可以验证它们是否是假的。区块(账本)无法伪造,那么链(序列)是否可以伪造?即通过颠倒交易顺序来执行双花。

第 3 步确保颠倒交易顺序在经济上不可行。既然每个诚实的节点都选择最长的链,那么麻烦的节点能不能创造出最长的链呢?当破坏链的长度超过诚实链的长度时,整个交易的顺序就颠倒过来。在区块链上,父节点只能有一个,但可以有多个子节点,多个子节点会有分叉,称为分叉。麻烦节点可以在某个节点将原链分叉,然后用比诚实节点更快的速度创建最长的麻烦链。这可能吗?答案是技术上可行,但经济上不可行。

clipboard.png

总结

区块链技术的本质是通过公开、加密、不可篡改的技术手段解决多方信任问题。问题提供了解决方案。目前,区块链技术要大规模应用还有很长的路要走。最重要的原因是每秒确认交易的数量太少,确认交易的时间太长[5]。但是,换个角度想,问题就是机遇。现在的区块链就像1998年的互联网,未来充满挑战和希望。

区块链比特币原理

本文首发于58无线科技公众号

本文由【区块链研究院】优质内容计划支持。区块链研究俱乐部】简书专栏:

参考文章:

中国区块链技术与应用发展白皮书

经济学人“信任机器”

无论如何,以太坊是如何运作的?

@preethika...

《精通比特币(第二版)》乔彦宏译

公共区块链的基本挑战

@preethika...