不正经科普一文读懂“区块链”

Posted 鹦鹉先生hhq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不正经科普一文读懂“区块链”相关的知识,希望对你有一定的参考价值。

朋友,你知道区块链吗?

相信大家现在开始翻书查资料,没过多久就懵圈了,什么“分布式存储”、“点对点传输”,一堆看不懂的名词,体验了一把“从入门到放弃”的滋味。

但现在区块链这么火,好像不加上“区块链”三个字都觉得对不起自己高大上的科技产品。那么今天,鹦鹉先生就带大家搞定啥是“区块链”。

其实,“区块链”并不是一种技术,而是很多技术的集合。在看这个新名词时,我们不妨先来将这个词分开理解:

没错,这家伙由两项重要技术组成:区块和链。区块,大白话就是超牛的数据库;链,就是将很多数据库连起来。也就是说,将网络上的很多数据库互联起来,实现数据共享。

举个栗子,假如鹦鹉先生肚子饿了,想要去超市买些鸟粮。

来到第一家商店,老板说:“鸟粮卖完了”,于是鹦鹉先生又来到第二家商店,结果老板又说卖完了。就这样,鹦鹉先生要来来回回在整个树林里找鸟粮,还没买到估计就先饿晕了。

店老板如何知道自己的商店里是否有鸟粮可卖?每一个商店,都有一个自己的仓库数据库,记录着自己商店里还有多少商品库存。店老板只需将“鸟粮”二字输进数据库,就知道自己的店里还有没有鸟粮。

那如果将所有商店的仓库数据库互联起来,是不是既省时又高效呢?鹦鹉先生只需在一家商店问老板有没有鸟粮,店老板就可以告诉我现在自己的店还有没有,以及其他店是否有库存。

于是,将商店的数据库互连起来,一个区块链就诞生了!所有的店老板都可以上传自己店里的库存信息,并且可以随时查阅其他店的库存信息。更厉害的是,还可以知道谁上传了这些信息。

但如果有些店老板动了歪念,想要篡改其他商店的库存信息怎么办?那基本上是不可能的。因为店老板每上传一条记录,都包含了前面所有记录的一个摘要。这个摘要是对前面已上传数据的确认,将摘要附在自己的新记录中再上传,就形成了“环环相扣”的关系。

如果店老板想要篡改记录,就要修改此记录以后的所有记录,这显然是不可能的,代价太大,还不如老老实实卖鸟粮。

(好比环环相扣的拼图)

从上面的例子,我们可以看出,区块链具有“不可伪造”、“全程留痕”、“可溯源”、“公开透明”等特点,在现实生活中,还是相当实用的。

下面,鹦鹉先生举一些最近比较火的“区块链”应用实例,带大家更深入的理解这些新名词的含义。

“挖矿”

不是真的下矿井挖矿,而是用电脑“挖矿”,“挖矿”指的是“抢着去记账”。因为在虚拟货币的交易当中,每一位用户都可以记录虚拟货币的交易情况,且每成功记账一次,都有一定数额的虚拟货币奖励。

当有一条新的交易记录产生了,在网的所有节点都可以知道有新记录产生了,于是为了奖励,大家都抢着去给新记录“上链”。但为了保证全网的上链速度稳定,每一位上链者都需要解出一个很复杂的难题,答对了才可以上链。

这个难题,不是用人脑可以算出来的,就连电脑也要算半天。于是,最简单暴力的方式就是猜答案:将所有结果一一列举出来,直到猜对为止。所以,为了加大算力,上链者就要加大自己电脑的算力,来争取有更大的机会上链。于是,大家纷纷提高自己的算力,全网算力也水涨船高,只有将自己的算力提得更高,才更有可能抢到上链权。

(可以看到全网算力井喷式增长,后来因国家管控,算力有所下降)

现在“挖矿”用的是显卡,得益于显卡高频多核心的优势,显卡可以在短时间内猜更多的次数。所以,“显卡荒”就出现了——人人抢着去“挖矿”,真正需要用显卡工作玩游戏的用户,有钱都买不到。

于是,“空气显卡”因此而得名——发布了新显卡和没发布一样,反正都买不到。

区块链电子发票

2018年8月10日,深圳市税务局联合多家科技公司,顺利开出了全国首张区块链电子发票。

同样的,区块链电子发票也具有区块链的特性:可溯源、不可篡改等。将区块链与电子发票有机结合,实现了可追溯发票来源、真伪和入账等信息,解决了发票流转过程中一票多报、虚报虚抵、真假难验等难题。此外,还可降低成本、简化流程、保障数据安全和隐私。

一文读懂Layer 2:Layer 2指基于底层区块链...

Layer 2指基于底层区块链(注:通常也称为“Layer 1网络”)的链下网络、系统或技术,目的是为了扩展底层区块链网络。Layer 2网络可以提升任何底层区块链的吞吐量以及其他性能。

Layer 2网络、系统或技术的核心价值是能够利用底层区块链的安全性。其交易数据必须以某种形式被底层区块链网络验证并确认。按照这个标准来看,侧链就不属于Layer 2,因为侧链通常会部署自己的共识机制和验证节点,因此拥有独立于底层区块链的安全机制。

一些区块链为了保障去中心化水平和安全性而牺牲了可扩展性,这类区块链可以利用Layer 2来提高交易吞吐量,并降低交易成本。Layer 2是解决可扩展性问题的方案之一,无需牺牲去中心化水平或安全性就能快速执行交易并实现可扩展性。

对Layer 2的需求

区块链技术诞生于2008年。自那以来,上千名研究者和开发者一直致力于解决区块链可扩展性的瓶颈,以满足不断增长的应用需求。这些瓶颈导致交易成本居高不下,执行速度慢,并成为了区块链技术主流化的绊脚石。

以太坊联合创始人Vitalik Buterin首次提出了“区块链不可能三角”的概念,认为区块链无法同时兼顾可扩展性、安全性和去中心化三个维度。开发者不得不在这三者之间进行取舍。如今的区块链网络最多只能同时满足其中两个维度。

Layer 2是一种新兴技术,其主张区块链之所以会在可扩展性方面存在限制,是因为区块链需要完成的任务过多。当前区块链有三个核心功能,即:执行交易、数据可用性以及达成共识。

  • 执行交易——处理并完成交易。衡量指标是区块链每秒可以完成的计算次数(其中包含交易数量)。

  • 数据可用性——网络中的节点和验证者需要储存交易、状态以及其他数据。衡量指标是标准存储单位,比如MB和GB等。

  • 达成共识——节点和验证者需要针对网络状态和交易排序达成共识。衡量指标是去中心化水平和终局速度,或所有节点针对某一状态变更达成一致意见所需的时间。

注:本文将聚焦交易执行层。若想全面了解区块链的扩容方案,请阅读这篇关于区块链可扩展性的博客文章。

L2解决方案的运行机制

注:大多数Layer 2解决方案仍处于早期阶段,其中许多要素还有待验证。

Layer 2解决方案大致可以分为两个部分:一个是负责处理交易的网络;另一个是部署在底层区块链上的智能合约,负责解决任何分歧,并将Layer 2网络达成的共识传输到底层区块链进行验证。

Layer 2网络上可以快速执行交易并开展计算。不同网络会通过完全不同的方式提升交易吞吐量。但这些Layer 2网络有一个共同点,那就是在结算时都会向底层区块链提交某种可验证的加密证明,以证明状态变更的真实性。有些Layer 2会提前创建证明并提交至底层区块链,而另一些则是之后再创建追溯性的证明。

另外,不同Layer 2网络在底层区块链上的智能合约实现方式也有所不同,但智能合约的核心功能是一样的,即:

  1. 保存并释放资金,转账至Layer 2;

  2. 收到Layer 2提交的证明,进行验证,解决分歧,并最终确认交易。

为了更好地理解这两种机制,我们可以探讨目前的两种Layer 2实现方案,即:支付通道和rollups。

支付通道

两个或以上用户可以预先向通道中充值资金,然后在链下进行通证转账。

Alice和Bob分别在智能合约中锁定一笔资金,创建支付通道,并通过加密签名技术约定双方可以使用多少资金。比如,双方各锁定50美元,因此支付通道里的资金总额为100美元。那么他们很可能会协议每一方可以使用50美元。

一旦建立了支付通道,Alice和Bob都可以通过签名消息在链下进行交易,无需向底层区块链提交交易。Alice可以向Bob付款,Bob也可以向Alice付款,无需任何成本也不存在延时。在这个双向支付通道中,Alice和Bob的交易不会发送到底层区块链。只有当双方都决定关闭通道时,最终交易结果才会被发送至链上进行结算。

因此,最终Bob和Alice只需要在创建和关闭支付通道时支付两笔链上交易费即可。当支付通道开通时,几百万美元的转账可以在不到一秒的时间内完成,而且无需任何成本。这就是解决区块链扩容问题的经典案例。

支付通道可以实现零成本的高速交易。

Rollups

Optimistic rollups和zk-rollups可以在链下执行智能合约状态变更,并在链上进行验证,以此提升区块链的吞吐量并降低成本。Rollups可以通过以下三种方式实现扩容:

1.Rollups在链下执行交易,底层区块链只需计算轻量化的交易证明,验证网络活动并储存原始交易数据。

2.Rollups将交易数据打包,并提交至区块链,链上gas费可以分摊到各个交易中。

3.Rollups最少只需要一个诚实的验证节点,就可以向底层区块链证明交易的有效性,因此对验证节点的数量要求较低,而对节点硬件要求较高,同时不会对安全性有很大影响。

链下执行

rollups的一个关键特质就是在链下执行交易。这意味着Layer 2网络可以代替底层区块链处理与其他用户或智能合约的交易。由于验证节点数量较少且硬件更强大,这将大幅提升Layer 2网络相较于底层区块链的交易吞吐量。

底层区块链只需要计算提交至智能合约的证明,就可以验证Layer 2网络中的活动(注:如果是optimistic rollups的话,只有当分歧出现时才需要验证),并将未执行的原始交易数据作为calldata储存起来。简而言之,区块链不再需要执行那么多计算任务,也不需要储存那么多Layer 2上的交易数据,因此可以降低每笔交易的成本。

打包交易

另外一种降低成本的方式就是将交易打包。你可以把这想象成是送礼物。在区块链上,每笔交易都是一个单独的礼物,被放在不同的盒子里。这样一来运费就会非常高,因为每寄出一个礼物就需要支付一笔运费。而rollups则是将许多礼物放到一个大盒子里,只需付一次运费即可,每个礼物可以分摊运费。

如果要用更技术性的语言来解释,那就是rollups将原始交易数据打包成calldata。Rollup交易的验证方式与链上交易不同,交易数据被打包只是为了将数据储存在底层区块链上,验证节点或rollup参与者如果有需要的话随时可以重建Layer 2网络的状态。然而,核心逻辑仍然没有改变,即:主链上的一个打包交易中储存了多笔rollup交易。

这样可以有效降低交易成本,并为区块链扩容扫清障碍。而将数据压缩还可以进一步降低交易执行成本。

Zk-rollups和optimistic rollups使用同样的方式打包交易。

减少验证节点数量

正如上文所述,Layer 2可以利用底层区块链的安全保障和去中心化水平,我们下文中会详细阐述。但这里的核心概念是,Layer 2必须向底层区块链提交某种证明,以证明其发起的状态变更是有效的。

因此,rollups就可以减少Layer 2网络中负责执行交易的验证节点数量。验证节点可以是获得许可的实体,这些节点通常拥有更强大的硬件,以更快的速度和更低的成本来计算交易。之所以能做到这一点,是因为验证节点不负责达成共识,共识是由底层区块链达成的,底层区块链上的智能合约需要验证Layer 2提交的证明。

证明对于Layer 2的安全性至关重要

“证明”对于Layer 2来说至关重要,因为Layer 2需要通过提交证明来利用底层区块链的安全保障。在现实世界中,证明可以是多种形式的,比如武器上的指纹或者监控录像都可以是证明。

加密证明也差不多,只是内容比法庭上的证据更客观。利用加密技术来证明某事,可以保障其客观性、可验证性以及防篡改性。如果证明有效,那就可以百分之百保证真实性。比如上文提到的支付通道,对交易附上加密签名就可以为智能合约提供确定性的权威事实,解决任何分歧。

每个Layer 2网络都需要提供某种加密证明,以解决底层区块链上的分歧。如今最主流的两种证明方式是错误性证明(fault proof)以及有效性证明(validity proof,也称“零知识证明”)。这两种证明方式是optimistic rollups和zk-rollups的底层技术。

支付通道签名消息

假设在关闭支付通道时,Bob或Alice发起恶意攻击,并试图取走不属于自己的资金。他们中任何一个人都可以向智能合约发送一个之前版本的支付通道“账本”。

支付通道的关键是每笔交易都必须附上加密签名。这可以为底层区块链上的智能合约提供证明,以解决分歧。比如,如果Alice提交了过期的账本副本,拿走了不属于她的那部分钱,那么Bob就可以对结算交易发起挑战,并提交最新的账本副本。然后,智能合约就可以判定正确的金额。而且Alice还会因为不诚实的行为被罚款。

由于底层区块链智能合约会进行裁决,因此支付通道也是一种Layer 2方案。一个简单的评判方法就是看有没有“证明”。支付通道创建后,Bob和Alice都必须对他们发起的每一笔交易附上签名,并储存一份对方的签名。

这就是支付通道中交易的证明。但光有证明还不够,还需要执行事实,这很像法官在得到证据和陪审团审议结果后做出裁决的过程。同样地,智能合约也会执行判决结果,将正确的金额打到各方在底层区块链上的钱包中,以进行结算。

这就是上文中提到的“利用底层区块链的去中心化水平和安全保障”。支付通道将大部分计算和执行都放到链下处理,但在最后结算时,还是会利用底层区块链强大的共识层来作出最终裁决。

Optimistic Rollups的错误性证明

错误性证明其实很简单。采用这种证明方式的Layer 2网络会默认所有交易都是有效的。然而,网络会设置一个挑战期,任何参与者都可以发起挑战,并向智能合约提交证明,表明交易数据或状态变更是错误的。当错误性证明发布后,rollup交易会部分或全部在链上重新计算一遍,最终的状态变更会跟原来的结果进行比较。如果重新计算的结果不一样,原来的结果将被认为是无效的,并被撤回。

这就是目前optimistic rollups采用的机制。“optimistic”中文意思是“乐观的”,其代表了一种乐观的哲学视角,即:智能合约“乐观地”默认所有交易都是有效的,除非有人提出异议(疑罪从无)。回到刚刚说的那个不诚实验证节点的例子。任何网络参与者只需要在挑战期内向智能合约提交有效的错误性证明即可,一旦证明无误,验证节点的行为就会作废。

Optimistic rollups采用了错误性证明来保证终局的交易可以正确地反应Layer 2网络中的交易活动。

zk-rollup的有效性证明

有效性证明则是另一种截然不同的哲学视角,默认所有计算结果都是存疑的,必须先被证明才能接受。

简而言之,有效性证明的作用是证明某件事是正确的。对于zk-rollup来说,证明的就是Layer 2网络中的交易和计算。因此,底层区块链上的智能合约可以验证Layer 2网络提交的有效性证明,以批准状态变更。对于验证节点来说,功能完备的zk-rollup将不允许任何错误的交易在底层区块链上结算,因为每一批交易都必须附上相应的有效性证明。

有效性证明可以主动证明Layer 2网络交易的有效性

区块链扩容方案

支付通道、rollups和Layer 2都属于区块链扩容方案,都具有长远潜力,可以为Web3应用发展提供助力,并提升用户体验。

Layer 1和Layer 2等大多数Web3技术栈都才刚刚起步,还需要不断发展。这些技术目前还没有达到爆发点,仍需要经历一系列实战检验来证明自己。然而,无数开发者和研究者都在通过不懈努力扩展区块链生态并开发DAG和Layer 2方案,以推动Web3实现主流应用。

以上是关于不正经科普一文读懂“区块链”的主要内容,如果未能解决你的问题,请参考以下文章

一文读懂Layer 2:Layer 2指基于底层区块链...

区块链产业生态存在问题及政策建议|一文读懂新趋势

MEXC Global分享:一文读懂腾讯区块链

一文读懂区块链产业链结构

一文读懂区块链技术如何改变非洲贸易(下)

一文读懂区块链技术如何改变非洲贸易(上)