V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qweasdezxc36
V2EX  ›  问与答

从四个技术层面理解区块链

  •  
  •   qweasdezxc36 · 2018-12-04 17:50:20 +08:00 · 934 次点击
    这是一个创建于 2200 天前的主题,其中的信息可能已经有所发展或是发生改变。

    区块链到底是什么?很多对区块链不太熟悉的朋友问的关于区块链的第一个问题都是这个,下面本文就将从 4 个技术层面给大家做个简单介绍。

    区块链( Blockchain )本质上是一个去中介化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。下面我们一起从:数据结构、备份,POW (工作量证明)、时间戳( timestamp )理解一下吧 !

    1、数据结构

    区块链是由包含交易信息的区块从后向前有序链接起来的数据结构。区块被从后向前有序地链接在这个链条,每个区块都指向前一个区块。其实它就是链表(文档)。就像是一份 PDF 电子文档,其每一页都有「页码编号」,以保持字句及章节的有序性。只是区块链中的“页码”比较特殊,当前页的页码是上一页「内容的指纹」,因此修改任何一页的内容,都会导致后一页的页码不能与之对应。因此链式结构的有序数据集具备了一定的「自校验功能」,或者一定程度上的「防篡改功能( tamper-proof )」,但链式结构并不能防止最新的若干个区块被删除。

    区块链的设计中还引入了树状结构(比如 Merkle Tree )与图状结构(DAG),其本质都是让数据自身含有严谨的结构,可以被工具软件识别处理。这一点很像我们听到一段声音,我们能分辨出是音乐,或是噪音,我们近距离观察一个物体,我们能分辨出是人造物,或者是自然物。

    2、数据备份

    区块链是由连接其中的所有电脑共同维护的,对于已经产生的区块,所有连接进来的电脑都有一份完整的区块链备份记录。仅仅让账本数据自身具备特殊的结构,做的还不够。若将同一份账本数据复制给跨越地域及文化界线的多个人存储起来,并且这些人之间不需要预先建立任何信任关系,则在最大程度上保障了账本数据的安全,也就是所谓的「去中心化存储」。

    账本数据分布的越广泛,备份节点越多,则越安全,反之则容易被摧毁。除了账本数据之外,人们还在积极探索通用数据的去中心化存储及访问取回,IPFS 就是一个示范项目。

    3、POW (工作量证明)

    工作量证明系统主要特征是客户端需要做一定难度的工作得出一个结果,验证方却很容易通过结果来检查出客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中的,对于验证方则是易于验证的。它与验证码不同,验证码的设计出发点是易于被人类解决而不易被计算机解决。

    POW (工作证明) 简单理解就是一份证明,用来确认你做过一定量的工作。

    对于 pow (工作量证明)这个词汇,人们比较熟悉了,而从自然语言的使用角度来看,对于特别熟悉的词汇,人们往往不会做深入的思考。人们看到、听到、说到 pow 这个词时,可能会立即想到“挖矿”、“算力”、“耗电”、“共识”等诸多概念,但也许很难想到,pow 铸造出的账本,其实表达了一段难以磨灭的工作历史。pow 就像一个带有喷漆功能的车轮,被其碾压过的路面,必将留下车辙印记。账本中的每一个区块都需要付出制造代价,这些代价见证了真实的历史痕迹,若想伪造出另一份有竞争力的不同账本,就得付出同量级的制造代价。理解了这一点,就不难明白 BCH-ABC、BCH-SV、BTC 三套账本之间的本质区别:铸造难度相差悬殊,所以 BTC 仍然是 BTC。耗费巨量算力创造的历史最难被伪造或篡改,这是 PoW 和 PoC ( Capacity,存储容量证明)、PoS、DPoS 等共识算法的本质区别。

    4、时间戳( timestamp )

    时间戳( timestamp ),百度百科这样解释:一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。

    区块链在 P2P 网络上通过节点间的共识算法实现了一个分布式的时间戳服务。

    区块链是在时间上有序的、由记录块(区块)组成的一根链条。一个区块包含两个部分:区块头(Block Header)和记录部分;区块中的所有记录通过默克尔树(Merkle Tree)组织起来,默克尔树根(Root)的哈希值做为本区块里所有记录的数字指纹被放入区块头。

    时间戳的设计,使得更改一条记录的困难程度按时间的指数倍增加,越老的记录越难更改。这是因为,如果改动某个区块里的一条记录,意味着该区块原来的默克尔树根失效了,需要改动区块头,该区块的数字指纹随之失效。又由于下一个区块的区块头包含这个哈希指针,这就意味着下一个区块也需要改动。如此直到最新的那个区块。

    每条数据都带有一个真实可信的时间戳(这条数据产生的真实时间点),这样造假行为就比较难奏效,因为假数据的时间戳一般都是最近的 。

    基于以上四点,我们可以思考思考人类文明发展演化的过程中,有哪些是富含结构的、冗余备份的、难以被篡改的?语言、神话、诗歌、族谱...,和区块链账本有很多类似的地方,区块链内含的世界时钟系统(时间戳),协调着大量的人工智能系统,会构筑出怎么的未来呢?

    作者:枫林庭晚

    千氪链接: https://www.kg.com/article/519539118368231424

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   883 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:42 · PVG 04:42 · LAX 12:42 · JFK 15:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.