03 | 技术特性:用“铁锁连环”直观理解区块链特点

你好,我是自游。

可能很多人都觉得区块链是一个多么新颖的技术,其实不然。它不过是旧瓶装新酒,本身并没有创造新的技术,只是将几种已经成熟的技术进行组合,是融合性创新

而我们初步开始学习区块链的时候,最重要的就是把握其技术特点,并且了解它的技术基础。今天这一讲,我会通过一个现实中的例子带你探索区块链的技术基础,同时帮助你掌握区块链技术最重要的三个特性。

怎样理解区块链

经常有人问我什么是区块链,一般情况下,我的答案是不一样的。如果你是程序员,我大概率会说区块链是一种分布式KV数据库。而如果你是小白,我可能会用几个词回答你:三人成虎,人云亦云,少数服从多数等等。

我的回答不一定准确,但一定最能符合当时受众的心理预期。而当我面对你们,面对拥有各行各业背景的受众时,为区块链概念下一个定义,我的内心是拒绝的。因为每个人理解不同,过于纠结定义反而会忽略本质,所以我们更应该把目光放在理解区块链技术基础和特性上。

其实,区块链技术发展到现在,尤其在以太坊将智能合约的概念与区块链技术融合之后,区块链已经变成了现实与网络的媒介,可以说区块链是价值的载体,是一种新型的社会生产关系

怎么理解这句话呢?我个人的理解是基于区块链技术,我们可以打通现实世界与网络世界的屏障,将物质虚拟化,将价值实体化。未来的互联网流转的不是信息,而是活生生的价值。

未来可期,不过也要始于足下。我们不妨先回归现实世界,前段时间,网上有一张图引起了广泛传播,被网友戏称为“区块链技术实体化”。拿这个例子来说明区块链的技术特性,再适合不过了。

区块链技术实体化

这是辽宁沈阳一小区大门,业主用多把锁串联在一起,形成了一套简单的门禁系统。谁家有车谁就加锁,每把锁都有标识,小区车主只需拿钥匙打开对应锁头,就能打开大门。这样就防止了外来车辆占用小区车位,不得不说,高手在民间。

那这个例子是如何具象化表达区块链技术特性的呢?首先,我们需要明确区块链有哪些特性,一般我们认为有3点,分别是:

  • 去中心化
  • 可追溯性
  • 不可篡改

结合这个实例,我们来一一理解这几个概念。

去中心化

在这个小区门禁系统中,每把锁代表着一家小区业主,他们不需要物业公司统一管理,只需要管理维护自己的锁就能保证系统的正常运行。

每一把锁有大有小,有贵的有便宜的,业主也可能有多辆车,但在这个系统中他们没有地位上的差别。而且,当有新的业主加入或者有业主搬走,只需要增加或去掉相应的锁就好。

你有没有发现,这里面就蕴含了去中心化的概念,门禁不再由物业公司这个“第三方机构”统一管理,每把锁都是管理的一部分。

同样的道理,区块链存在的初衷就是去除中心化的第三方机构(可以回看第1讲),整个网络的数据及状态是由网络中所有的节点共同维护的,他们没有地位上的差别,有的只是可支配的资源的不同,且任一节点离线也不会影响系统的运作。

你可以自己试着先推演一下,想要实现去中心化,应该选取怎样的网络模型和存储模型呢?

没有中心节点的系统从某种角度来讲,可以说每一个节点都是中心,每一个节点都能对外提供服务,同样也能从其他节点请求服务,而这也正是点对点网络模型的特性,可以说,节点互为彼此的数据生产者及消费者。

另一方面,因为节点角色对等,因此每一个节点存储的数据应该是一致的,都独立地维持一条完整的区块链链式结构,即便一些节点数据丢失,但只要还有一个节点完好,历史数据就不会丢失。这有效地避免了单点故障带来的系统崩溃,相较于传统的数据灾备模式,其可靠性可以说是万无一失。

当然,去中心化只是一个理想化的状态。现阶段来说区块链去中心化本质上是相对去中心化,我们也可以叫做多中心化。我们在理解概念的时候,不仅需要理性思维,更要学会使用感性思维去接受中间过程的渐变。

可追溯性

在门禁系统中,每把锁记录了业主的相关信息,是跟业主一一绑定的,这就可以在异常情况下对破坏规则的业主进行追责,比如忘记锁门而导致外来车辆进入小区,这体现了该系统的可追溯性。

在实际区块链运转中,同样是完成信息追溯这件事儿,道理虽然相通,但是更为复杂,我来给你说一说。

对单个节点来说,区块链可以被认为是一个时序数据库。每一次对系统的操作,实质是在每个节点数据库中存储了相应的数据及日志。且每一份数据都不是离散的存储,而是按时间顺序前后关联在一起,新的数据一定是从某一组之前已存在的数据派生而来。

依照这种关联,如果想回溯数据的状态变更历史是很容易的,只需要依次往前查找,一定会找到数据的初始状态。

而这一切都依赖于区块链存储技术,存储主要关注数据结构以及数据关系,包括交易以及区块的数据结构,交易与区块的关联关系,区块状态的存储模式等等。

不可篡改

另一个技术特点是不可篡改,这是一个比较容易被初学者搞混的概念,所谓篡改,就是私自的不被认可的修改,而不是不能修改

我们回顾例子,可以发现业主手中的钥匙与锁是一一对应的,没有钥匙或者用错误的钥匙,车辆都是进不了小区的。

社会车辆要想进入小区,可能会采取盗用某一业主身份,多配一把钥匙或者添加一把锁,这就是篡改。而只要被业主委员会发现,就会及时纠正错误,将社会车辆清理出去,也就实现了不可篡改。

在区块链中,实现不可篡改需要两种技术来保障。前面例子里“锁”的功能由密码学技术实现,而“业主委员会”的角色则是由共识算法来扮演。

前面我们讲过,单个区块链节点中的数据是按时间的先后顺序串联存储的,而串联的关键就利用了密码学中的哈希算法。

哈希算法可以把一段数据变换成固定长度的数据指纹,而且只要数据有细微变化,得到的指纹也是大不一样的。通过这个方法,我们可以将前一时间段的数据指纹与后一时间段数据整合在一起。周而复始,后一时间段内的数据永远都会包含前一时间段的数据指纹,这样就形成了一条由数据指纹串联的信息链条。

如果有一个作恶者想要修改中间某一时间段的数据,那么依照哈希算法原理,其对应的数据指纹则会改变。因此他不得不依次修改后续的每一个时间段的数据,否则数据链条就会在他修改的这一刻断掉,不再具备可追溯性。

我们可以把困难进一步放大,想一想如果作恶者真的把本地节点的所有数据都篡改一遍,又要怎么应对呢?

这时候就要让共识算法出马了,它可以保证整个系统的数据不被篡改。所谓共识,就是在一个分布式系统中保持数据的一致性,而如果出现数据不一致,大多数共识算法都遵循少数服从多数的原则。

区块链网络中的每一个节点的数据都是一致的,作恶者只是篡改了自己维护的单个节点,从整个网络的维度来看,依旧是以大多数节点的数据为正确数据。

最后,我想提醒你,看问题不能只看一面,不可篡改其实是一个辩证的特性。少数服从多数的规则意味着如果作恶者能够控制大多数的节点资源,那么篡改区块链是可能的。

在一个健壮且足够分散的网络中,篡改所要付出的成本是巨大的,几乎不可能成功。而一旦成功,剩下的少数派才是妄图破坏区块链共识的作恶者,以太坊的硬分叉(不熟悉可以回看第1讲)就是一个典型。

总结

在这一讲中,我们用一个具象化的例子直观理解了区块链的技术特性,同时我们也在其中穿插着带入了区块链技术基础。

如果从纯技术的角度讲,区块链是新一代信息技术的重要推动力,它利用了存储、密码学、点对点网络及共识算法等基础技术的融合,提供去中心化、可追溯以及不可篡改等特性,可以用来解决互联网中的信任及安全问题,从而推动互联网从信息传递向价值传递的变革。

你可能觉得刚才的解读有点书面化,为了帮助你理解,我再给你分享一个通俗版本的:可以说存储是砖头,密码学是钢筋,点对点网络是混凝土,而共识算法是设计图纸,以他们为基础,揉和在一起,就构建了区块链这座精妙的上层建筑。

我想和你强调的是,区块链技术并不是教条主义地照本宣科。比特币是区块链,以太坊也是区块链,技术本身也并没有规定实现的唯一路径。

我更愿意将区块链技术理解为区块链协议,只要能满足其技术特性,人人都可以设计并实现属于自己的区块链。在后面的几讲中,我会着重为你剖析区块链技术基础,希望你知其然,更要知其所以然。

讨论

在此之前,你是如何理解区块链的呢,能否用一两句话简短地说明?这一讲以后,你对区块链概念的理解有何变化?

欢迎你在留言区跟我互动,主动思考、积极交流会让你更有收获。

扩展阅读

好,我是自游,我们下一讲见!

精选留言

  • qinsi

    2021-07-27 18:05:24

    git就是区块链

    去中心化:每个用户在本地都有自己的git仓库,并且相互之间可以pull和push
    可追溯性:每个git提交都依赖于上一个提交,可以追溯到最初的提交
    不可篡改:修改本地的某个历史提交后,其之后的提交的hash值都会变化,导致本地的历史与其他git仓库的历史不同
    作者回复

    哈哈,是的。这个例子也比较好,但只适合技术人,非技术人就看不懂了

    2021-07-27 21:15:35

  • 周灿新

    2021-07-26 11:12:41

    学习之前:区块链是一个分布式存储、篡改难度巨大的信息存储技术,目前主要的应用是比特币等数字货币。
    学习之后:区块链是一种去中心化、可追溯、不可篡改的信息存储技术,是多种技术结合的融合创新,主要解决的是互联网中的信任和安全问题。
    作者回复

    手动点赞

    2021-07-26 21:00:07

  • 闷骚王冠

    2021-07-26 16:07:12

    老师,区块链领域对普通人有什么经典书籍推荐嘛?
    作者回复

    闷骚王冠,你好。如果你懂一点技术,推荐你阅读《区块链革命:比特币底层技术如何改变货币、商业和世界》,如果不太了解技术,可以阅读《区块链:新经济蓝图及导读》

    2021-07-26 21:09:11

  • 大豆

    2021-07-26 10:58:15

    哈哈,如果有人/机构能够控制多数节点并进行修改。那就真正的颠倒黑白,假的成真的,真的变假的了。
    作者回复

    是的,我就想让大家明白这一点。当然,这个困难度还是比较高的,几乎没有可能。

    2021-07-26 21:01:13

  • skull

    2021-07-27 17:23:44

    我对区块链的理解是,联盟链可以改变生活方式的方方面面,就是20年前的互联网,10年前的移动互联网一样
    作者回复

    有这样的趋势,静侯佳音吧

    2021-07-27 21:16:18

  • @李上网来⚡

    2021-08-04 15:49:01

    这个门禁系统一处失守,全线崩溃🤪
    作者回复

    @李上网来⚡,可以追责啊,崩溃了再建立起来。肯定有不完善的地方

    2021-08-04 22:05:49

  • Kyle Liu

    2023-10-31 21:30:57

    其实区块链的特点都还做不到绝对 OR 牛逼吹的有点过,OR 没大家想的那么好【欢迎讨论、互喷】

    随便举点例子
    1.去中心化:其实很多围绕以太坊的链都掌握在 少数的人 OR 组织手中,某些人 OR 组织 的被黑可能让估值极高的项目方凉凉
    2.不可篡改:这个就更扯了,SeeDao 被黑就直接硬分叉?自己打自己脸,很多【知名】项目方吹牛逼说不能改,但是的智能合约里一堆后门,例如某巨贵猴子NFT
    3.可追溯:某些钱是可以很容易利用 Tornado.Cash 洗掉的,就像今天某个项目方的钱被黑后立即就被洗掉了,如果追溯?
    黑客操作 https://etherscan.io/txs?a=0x413e4fb75c300b92fec12d7c44e4c0b4faab4d04

    个人观点:成事在人,保持本心就好
    作者回复

    对的,要保持清醒的头脑💪

    2023-11-14 20:10:12

  • jackfan

    2022-05-14 22:37:13

    你好,我有一个问题,就是:我们可以将前一时间段的数据指纹与后一时间段数据整合在一起。周而复始,后一时间段内的数据永远都会包含前一时间段的数据指纹。这一段话表述的是,数据指纹其实就是数据加密之后的状态,现在是把前一时间段的数据指纹和后一时间段数据整合在一起,形成一个新的加密数据节点;而下一个加密数据节点,其实就是上一个节点的后一时间段数据加密之后形成数据指纹,加上当前的后一时间段数据。是这样理解的吗?
    作者回复

    你好。你说的这句:而下一个加密数据节点,其实就是上一个节点的后一时间段数据加密之后形成数据指纹,加上当前的后一时间段数据。

    感觉还是太饶了。简单的理解,后一个数据块有一个属性是由前一个数据块的值决定的。如果私自修改,会造成后数据块的那个属性的值跟修改后的值不一致。

    2022-05-15 01:08:29

  • 亚东

    2022-04-21 18:58:02

    从技术来说,区块链非常巧妙地利用hash函数,来给数据确权。并且通过链的形式,将带有时间序列属性的数据连接起来。一次来形成可追溯,不可篡改的特性。而去中心化更多是一种社会工程,即每个人都可以添加新的节点。节点由共识算法来进一步确定。
  • 沃德天·泥维森陌·拉莫帅

    2022-01-26 16:22:34

    60 - 80年代的是上机时代,90 年代开始是上网时代(互联网、移动互联网),而现在是上链时代,上网时代造就多少社会财富和价值。同样上链时代的来临,我们可要把握住了。
  • yungoo

    2021-08-21 07:27:56

    开发团队和社区变上帝了,感觉还是少部分人的集权系统。
    作者回复

    相比于传统的中心化,还是要好上不少

    2021-08-21 16:38:05

  • 二两

    2021-08-19 15:24:08

    区块链:
    分布式数据库,每个节点用于完整的数据,用于验证,利用hash算法,用于防篡改,用时间顺序型结构用于溯源。
  • 高鹏0409

    2021-07-29 17:35:34

    有个疑问,用户想要合法修改区块链,是怎么做的呢?
    作者回复

    合法修改其实就是提交交易,只要交易被认可,被网络接受,交易包含的状态变更就会影响区块链的世界状态

    2021-07-30 22:51:44

  • jc9090kkk

    2023-02-08 13:51:56

    你好作者,拜读完这篇文章后有几个疑问,不知道您能否解惑:
    1.数据块有序串联起来是不是可以理解为是一条数据链表?如果是链表的话,当其中一个数据块的数据发生变更,后续的数据块都需要随着变更,在极端情况下时间复杂度会很高,现实中会存在这种情况吗?
    2.数据指纹是由hash算法决定的,但是hash算法会存在hash冲突的情况,如果冲突了,内部的数据怎么解决呢?是采用hash冲突链?如果是hash冲突链的话,那不就相当于又出现了一个全新的链条?还是说不会出现冲突,有什么机制来保证不会产生冲突的呢?
    3.共识机制还是不太理解,既然已经是去中心化(渐进式的),那也就是说不存在额外的管理成本,那么一旦出现窜改,这个共识机制是如何起作用?还是说会有特性的协议会不定时的去监听链条上的数据变更?能否解释说明下呢?

    谢谢🙏
    作者回复

    第一个问题,区块链从名字就可以看出来他确实是一个链表结构,也确如你所说,中间一个节点变更,后续所有节点想要数据有效就必须跟着变化,困难度大大增加,而这也正是区块链赖以生存的基础特性。至于现实中是否存在这样的变更,我觉得比特币的最长链机制以及以太坊的分叉算是这样的示例。

    第二个问题,hash碰撞的关键在于选用一种健壮的hash算法去屏蔽这个问题。就当然使用的算法来说,它们经历了所有使用者的考验,现在来说担忧是多余的。而且即便有一天hash算法产生了大量的碰撞,也可以通过共识的方式从某个区块开始切换新的hash算法,所以不是一个不可解决的问题。同理也可以推理其他加密算法也是可以这样处理的。
    第三个问题建议你看完全部课程再回看是否自己能够解释清楚

    2023-02-14 09:55:01

  • 码小呆

    2022-07-22 11:34:05

    分布式算法就是区块链吧
    作者回复

    区块链基于分布式算法实现,但反过来说不准确

    2022-07-26 07:59:22

  • 秋天

    2022-06-13 16:25:16

    区块链就是多种技术的融合 用来实现去中心的话一个技术框架或者协议 从业者可以基于这种框架或者协议 来实现真正的技术应用到业务当中去 从而创造价值
  • 冯庆玲

    2022-03-01 14:17:54

    具有去中心化、可追溯、不可篡改的分布式存储系统
  • 黄矢

    2022-02-21 20:24:01

    区块链是不可篡改的数据库,学完后,区块链是满足分布式,可追溯,不可篡改的数据库技术
  • 戒酒的李白

    2022-02-10 22:29:13

    读后感:去中心化,可追溯,不可篡改,主要解决互联网的信任和安全问题
  • 支付组

    2021-10-28 19:50:26

    去中心化、可追溯行、不可篡改