Tokenpocket官方网站:什么是区块链?以及优缺点)

147小编

什么是区块链?

区块链是一种特殊的数据库类型。你可能曾对分布式账本技术(即 DLT)这个专业术语有所耳闻,在许多情况下,区块链就是一个分布式账本。

区块链具有一些特性,如链上制定了一套关于如何添加数据的规则,以及数据一旦进入储存系统,则几乎无法通过虚拟手段进行修改或删除。

随着时间推移,数据不断添加至称为区块的结构当中。每个区块都建立在上一个区块的基础上,而且每个区块中均包含一条信息,将其与前一区块相连。我们只需查看最新区块,即可了解其是否为最后一个被创建的区块。因此,如果我们继续沿着“链”找下去,就能找到第一个区块,即大众所熟知的创世区块

举例来说,假设你有一个电子表格,共有两列。在第一行的第一个单元格中,你可以随意输入要保存的数据。

随后,第一个单元格中的数据将被转换为一个双字母标识符,继续作为部分内容被输入至下一个单元格。在此示例中,双字母标识符 KP 必须输入至第二行的单元格中 (defKP)。这意味着,如果你更改第一次输入的数据 (abcAA),则下一个单元格中的字母组合就会发生变化。

现在让我们看到第 4 行,最新的标识符是 TH。还记得前文提到的吗?我们无法进行逆向操作,也无法移动或删除条目。由于区块链具有这种特性,每名用户都能直观地看到操作完成,他们会直接忽视你所尝试的更改。

假设你更改了第一个单元格中的数据,你获得的标识符会发生变化,这就意味着第二个区块中的数据将改变,导致第 2 行的标识符也随之变动,以此类推。本质上来看,TH 是在它产生之前的所有信息的产物。

区块之间如何连接?

我们上述讨论的内容,即双字母标识符,简单地模拟了区块链对哈希函数的运用。哈希是确保区块之间相互关联的凝合剂。哈希能够选取任何大小的数据,并通过一个数学函数生成一串长度始终相等的输出(哈希值)。

区块链中应用哈希算法自有其道理,因为用户找到两条数据片段生成相同输出的几率微乎其微。如上方的标识符所示,一旦输入的数据发生轻微变动,导出的输出将截然不同。

SHA256 是广泛应用于比特币领域的函数,让我们通过这个函数来展开讲述。如你所见,即使只是更改字母的大小写也足以完全改变输出。

目前,尚未出现过 SHA256 冲突(即两个不同的输入导出同一个输出),在区块链背景之下,这一点尤为重要。这意味着每个包含哈希值的区块都能追溯至上一区块,而且所有试图编辑旧区块的操作都将暴露于众目睽睽之下。

每个区块都包含上一区块的指纹。

区块链和去中心化

我们已详细介绍区块链的基础结构。假如你听到其他人正在谈论区块链技术,你会发现他们讨论的主题可能并非数据库本身,而是围绕区块链构建的生态系统。

区块链具有独立的数据结构,因此仅能在利基应用程序中发挥用处。如果我们为陌生人提供这些工具,促进彼此之间的协调合作,事情的发展走向将变得耐人寻味。与此同时,如果结合其他技术和部分博弈论知识,区块链可以成为不受任何人控制的分布式账本。

这意味着,所有用户均无法违反系统规则编辑条目(稍后将详细介绍规则)。从这个意义上说,你可以认为账本为大家共有:参与者每时每刻都需对区块链中的更改达成一致。

拜占庭将军问题

实际上,阻碍上述系统发展的真正障碍是拜占庭将军问题。该问题于 20 世纪 80 年代得到首次关注,它描述了一个困境,即彼此孤立的参与者在此环境下必须相互交流才能协调行动。在这种特殊的困境下,一组将军分别率军包围了某一座城市后,需要决定是否出击。但将军只能通过信差传达决策。

每名将军都需要下令决定攻击或撤退。无论最终是攻击或是撤退,只要众位将军达成一致即可。如果他们决定进攻,那么必须全军出击才能取得胜利。那么,我们如何才能确保万无一失呢?

诚然,他们有信差作为交流媒介。但如果信差遭到拦截,敌军将“黎明进攻”的传信更换为“今晚进攻”,情况会如何发展?如果其中某位将军叛变,故意误导其他将军,导致他们战败呢?

所有将军共同发起进攻是取得成功的必要条件(左)。如若不然,他们将溃不成军(右)。

因此,我们需要建立一种可使众人达成共识的策略,即使参与者发生变节或消息遭到拦截也没有妨碍。军队在孤立无援的情况下进攻城市,局面将多么惨烈,而无法维护数据库也同样会导致糟糕的后果,尽管不存在生死攸关的问题,但道理相通。如果区块链处于无人监管的状态,而且可能无法为用户提供“正确”信息,那么用户必须能够彼此交流。

为了解决一位(或多位)用户面对的潜在故障,区块链机制必须经过妥善设计,以应对这些障碍。随后,拜占庭容错系统应运而生。我们接下来即将了解到,共识算法可用于执行坚如铜墙铁壁般的规则。

区块链为何需要推行去中心化?

当然,你也可以自己经营区块链。但最终,你会发现,数据量信息过载的情况惨不忍睹,压根无法匹敌精心运营的其他区块链。因为只有在所有用户皆平等的去中心化环境之中,区块链的真正潜力才能得到完全开发。通过这种方式,区块链才不会遭到删除或恶意接管。由于只存在单一数据来源,每位用户均可了解其中所有信息。

什么是点对点网络?

点对点 (P2P) 网络由我们的用户层(或先前所述示例中的那群将军)构成。此网络下不设管理员一职,因此,如果用户需要交换信息,无需致电中央服务器,直接向对方发送信息即可。

请看下图。左图中的 A 需要通过服务器才能将其消息路由至 F。但从右图可以得知,他们可以直接相连,无需中介。

中心化网络(左)与去中心化网络(右)。

正常情况下,服务器会保管用户所需的所有信息。比如你在访问币安学院时,实际上是在要求其服务器提供站内所有文章。如果网站处于离线状态,你将无法继续查看。然而,如果你已经下载所有内容,并将其加载至计算机上,则无需再向币安学院发送申请。

实际上,这正是每个对等点在区块链上进行操作的形象写照:整个数据库已经储存至他们的计算机之中。无论谁离开网络,都不会影响其他用户访问区块链以及彼此分享信息。如在区块链中添加了新区块,其中的数据将传播给网络上的所有用户,因此,每位用户都能及时更新自己的账本副本。

什么是区块链节点?

节点,简而言之就是我们用于连接网络的机器,这些机器负责储存区块链副本,并与其他机器共享信息。用户无需手动处理这些流程。通常情况下,他们只需要下载并运行区块链的相关软件,系统可自动接手剩余的其他操作。

以上关于节点的描述十分精简,其定义还包括以任意方式与网络进行交互的其他用户。例如,在加密货币领域中,你手机上一款简单的钱包应用程序即所谓的轻节点。

公有链与私有链

你可能了解,区块链行业发展至今,得益于比特币为其奠定了深厚的基础。自从比特币确立其合法的金融资产地位,创新者开始不断思考将基础技术应用于其他领域的潜力。因此,衍生出对金融以外无数用例的区块链探索。

比特币,亦称为公共区块链。这代表每名用户都可以查看链上的交易,只需接入互联网并使用必备软件即可加入区块链。参与区块链不设任何其他要求,因此,我们可以称之为无许可型环境。

与之对应的是私有区块链,这是另一种类型的区块链。这些系统创建了一系列规则,限制了访问区块链和在区块链上进行交互的权限。因此,我们称之为许可型环境。尽管乍看之下,私有区块链似乎有些鸡肋,但人们确实借此开发出了一些重要的应用程序,不过主要是应用于企业环境之中。

交易如何运行?

如果 Alice 想通过银行转账系统向 Bob 付款,那么她会先通知银行。简单起见,我们假设双方使用同一个银行。银行在更新其数据库之前会检查 Alice 是否拥有执行交易的充足资金(如 Alice 账户扣款 50 美元,Bob 账户入账 50 美元)。

区块链工作原理与此类似。毕竟,两者本质上都是数据库。但关键区别就在于,区块链省略了第三方的检查和更新余额环节。所有节点会自动完成这些操作。

如果 Alice 想支付 5 个比特币给 Bob,她只需将此消息广播至网络上即可。区块链不会立即添加这笔交易,但各个节点会接收到该信息,因为在确认交易之前还需先完成其他操作。

一旦交易添加至区块链中,所有节点都会接收到交易已完成的信息。这些节点会更新区块链副本以体现新的交易。现在,Alice 不能再将这五个单位发送给 Carol 了(因此避免重复发送),因为网络知道她已经在先前的交易中将这些单位支付出去了。

区块链中不存在用户名和密码的概念,公开密钥密码学可用于证明资金的所有权。接收资金的第一步,Bob 需要生成一个私钥。私钥就是一串随机生成的长数字,它复杂到任何人花上数百年的时间都无法将其破解。但自己将私钥告诉别人,那么别人就能证明对他资金的所有权(因此也有权将其花掉)。因此,保密至关重要。

但是 Bob 还可以采取以下操作,即从私钥中衍生出一个公钥。他可以将自己的公钥告诉任何人,因为对公钥进行逆向工程操作以获取私钥的可能性微乎其微。在多数情况下,他会执行另一项公钥操作(如运行哈希算法)以获得一个公共地址

他会给 Alice 提供公共地址,以便她知晓发送资金的地址。她构建了一场交易,以将资金支付至此公共地址。然后,她需要使用自己的私钥生成一个数字签名,向网络证明她使用的是自己的资金。所有用户都均可获取 Alice 的签名消息并将其与她的公钥进行比较,确定她有权将这些资金发送给 Bob。

谁发明了区块链技术?

比特币(即第一个也是最热门的区块链)于 2009 年开始发行,区块链技术实现了正规化。然而,其匿名创造者中本聪是从早前的技术和提议中获得的灵感。

区块链大量运用的哈希函数和密码学概念,而这些概念先于比特币发布几十年。有趣的是,区块链的结构可以追溯到 20 世纪 90 年代初期,但是当时这种技术仅用于为文档添加无法被篡改的时间戳。

区块链技术的利弊

区块链经过精心设计,解决了困扰各行利益相关者的无数难题,从金融到农业领域,区块链均能有效发挥效用。相较于传统的客户端服务器模型,分布式网络具有许多优势,但也并非十全十美。

优点

比特币白皮书中提到,区块链的直接好处之一是用户可以绕过中介直接转账。此后的区块链深化了此功能,允许用户发送各种类型的信息。取消交易对手制度意味着用户遭受风险的可能性更小,而且由于没有中介收取手续费,费用也相应较低。

前文提及,公共区块链网络属于无许可型环境,由于没有负责人,也就不存在进入壁垒。潜在用户只要能连接网络,即可与网络上的其他人进行交互。

许多人认为区块链最为人称道的就是其高度规避审查的特性。如果恶意行为者图谋攻击中心化服务,那么他们只需要瞄准服务器便能一劳永逸。但是在点对点网络之中,每个节点都能充当自己的服务器。

比特币这样的系统就有 10,000 多个可见节点,这些节点遍布于世界各地,即使攻击者资源丰富,也几乎无法破坏网络。值得注意的是,系统中还存在许多隐藏节点,它们隐匿于广泛的网络之中。

缺点

区块链并非所有问题的通用解决方案。上一节提到,尽管优势得到强化,但也存在其他弱势方面。区块链存在的最大障碍是由于扩展性不佳而无法大规模使用,

这也是分布式网络的通病。由于所有参与者都必须保持同步,因此必须控制添加新信息的速度,否则节点将无法跟上进度。因此,为确保系统去中心化,开发人员倾向于有意识地限制区块链的更新速度。

对于网络上的用户来说,如果尝试交易的人数过多,会导致等待期无限延长。区块容纳数据的能力有限,而且数据往往无法立即添加至区块之中。如果交易数量超出区块的容纳限度,那么超出的交易则需排队等待进入下一个区块。

去中心化区块链系统还存在另一个潜在劣势,即无法随意升级。如果你研发出一款软件,自然能够随意添加新的功能。无需寻求他人的合作,亦不必征得他人的同意,即可确保成功实施修改。

然而,数百万潜在用户置身于同一个环境,更改的困难程度可想而知。也许你可以更改节点软件的部分参数,但最终会导致你脱离原有的网络。软件经过改进后如果无法与其他节点兼容,其他节点会迅速发现区别并拒绝与你的节点交互。

假设你想更改关于区块的规模(例如从 1MB 升级至 2MB)。你可以尝试将该区块发送至你所连接的节点,但这些节点遵循一条规则——不接受超过 1MB 的区块。如果他们接收更大的区块,他们就不会将其纳入区块链的副本之中。

唯一推行更改的途径,只有让生态系统内的绝大多数用户接受这些更改。对于大多数区块链来说,要想协调更改,用户需要在论坛中展开大量讨论,这可能要花上数月甚至数年的漫长时间。