精华内容
下载资源
问答
  • 区块链技术

    2018-12-19 08:55:26
    区块链技术指南完整版供大家学习使用
  • 区块链,区块链技术

    2018-02-10 10:39:24
    区块链是分布式数据存储、点对点传输、共识机制、加密算法等...区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。[3]
  • 区块链技术与应用

    2018-03-28 10:50:18
    从国家战略、技术发展等方面阐述了区块链技术的重要性和区块链技术的应用环境和面临的问题。  第二,比特币中的区块链技术原理是什么?作为比特币的底层技术,区块链是如何发挥作用的,其技术原理和细节是什么,这...
  • 深蓝解读区块链技术

    2021-01-06 01:14:43
    通过通俗易懂的讲解,从零入门区块链技术,解读了区块链技术的各方面,对想从事区块链行业,但是没有任何区块链相关基础的职场人士或者学生非常实用。受众最好有一定的计算机基础。
  • 区块链技术基本概念 区块链提供了一种去中心化的、无需信任积累的信用建立范式,目前已经引起金融行业、科研机构、政府部门和投资公司的高度重视与广泛关注。区块链技术通过建立一个共同维护且不可被篡改的数据库来...

    区块链技术基本概念

    区块链提供了一种去中心化的、无需信任积累的信用建立范式,目前已经引起金融行业、科研机构、政府部门和投资公司的高度重视与广泛关注。区块链技术通过建立一个共同维护且不可被篡改的数据库来记录过去的所有交易记录和历史数据,所有的数据都是分布式存储且公开透明的。在这种技术下,任何互不相识的网络用户都可以通过合约、点对点记账、数字加密等方式达成信用共识,而不需要任何的中央信任机构。在这种技术下,我们可以建立数字货币、数字资产、智能财产以及智能合约等。

    区块链本质上是一个对等网络的分布式账本数据库。比特币的底层就采用了区块链的技术架构。区块链本身其实是一串链接的数据区块,其链接指针是采用密码学哈希算法对区块头进行处理所产生的区块头哈希值。每一个数据块中记录了一组采用哈希算法组成的树状交易状态信息,这样保证了每个区块内的交易数据不可篡改,区块链里链接的区块也不可篡改。

    一个完整的区块链系统包含了很多技术,其中有存储数据的数据区块及其之上的数字签名、时间戳等技术,有作为支撑的P2P网络和维护系统的共识算法,有挖矿和工作量证明机制,有匿名交易机制和比特币钱包,还有链龄、UTXO、Merkle树、双花等相关技术概念。正是这些技术,使得区块链在无中心的网络上形成了运转不息的引擎,为区块链的交易、验证、链接等功能提供了源源不断的动力。

     

    1.数据区块

    比特币的交易记录会保存在数据区块中,比特币系统中大约每10分钟会产生一个区块,每个数据区块一般包含区块头和区块体两部分。

    区块头封装了当前的版本号、前一区块的地址、时间戳、随机数、当前区块的目标哈希值、Merkle树的根值等信息。

    区块体中则主要包含交易计数和交易详情。交易详情就是比特币系统中的记账本,每一笔交易都会被永久的记入数据区块中,而且任何人都可以查询。区块体中的Merkle树将会对每一笔交易进行数字签名,如此可以确保每一笔交易都不可伪造且没有重复交易。所有的交易将通过Merkle树的Hash过程产生一个唯一Merkle根值记入区块头。

     

    2.挖矿与分叉问题

    区块在挖矿过程中产生。所谓挖矿,实际上是穷举随机数算法,把上个区块的哈希值加上10分钟内的全部交易单打包,再加上一个随机数,算出一个256位的字符串哈希值,输入的随机数Nonce使哈希值满足一定条件就获得这个区块的交易记账权。新产生的区块需要快速广播出去,以便其他节点进行对其验证,以防造假。每个区块存着上一个区块的哈希值,可以溯源到源头,只有经过验证后才能最终获得区块的交易记账权。比特币系统会让挖矿的矿工竞争记账权(在主链上链接区块的权利),这个竞争机制就是工作量证明机制。挖矿需要付出大量的能源和时间,谁付出的工作量多就能以更大的概率获得一个区块的记账权。获取记账权的矿工将当前区块链接到前一区块,形成最新的区块主链,该矿工也会得到系统奖励的一定数量的比特币。所有的区块链接在一起形成了区块链的主链,从创世区块到当前区块,在区块链之上的所有数据历史都可以被追溯和查询。

    可能会出现不同地区的两个矿工同时”挖出”两个新区块加以链接的情况,这时主链会出现”分叉”。系统并不会马上确认哪个区块不合理,而是约定后续矿工总是选择累计工作量证明最大的区块。因此,当主链分叉以后,后续区块的矿工将通过计算和比较,将其区块链接到当前累计工作量证明最大化的备选链上,形成更长的新主链,并自动抛弃分叉处的短链,从而解决分叉问题。

     

    3.时间戳和不可篡改性

    时间戳是指从格林威治时间1970年1月1日00时00分00秒起至现在的总秒数,通常是一个字符序列,唯一地标识某一刻的时间。在比特币体统中,获得记账权的节点在链接区块时需要在区块头中加盖时间戳,用于记录当前区块数据的写入时间。每一个随后区块中的时间戳都会对前一个时间戳增强工作量证明,形成一个时间递增的链条。时间戳技术本身并没有多复杂,但在区块链技术中应用时间戳却是一个重大创新,时间戳为未来基于区块链的互联网和大数据增加了一个时间维度,使得数据更容易追溯,重现历史也成为可能。同时,时间戳可以作为存在性证明的重要参数,他能够证实特定时刻是的确存在的,这保证了区块链数据库是不可篡改和不可伪造的,这也为区块链技术应用于公证、知识产权注册时间等时间敏感领域提供了可能。

     

    4.分布式数据库

    比特币系统中的区块就像一个记账本一样,记录了所有比特币的交易信息,每一个比特币用户的比特币收支情况都被永久的嵌入了数据区块中以供别人查询。这些数据区块中的交易数据存放在一个比特币用户的客户端节点中,所有的这些节点则组成了比特币及其坚韧的分布式数据库系统。任何一个节点的数据被破坏都不会影响整个数据库的正常运转,因为其他健康节点中都保存了完整的数据库。

     

    5.UTXO交易模式

    UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易过程中的基本单位。除创世块以外,所有区块中的交易(Tx)会存在若干个输入(Tx_in,也称资金来源)和若干个输出(Tx_out,也称资金去向),创世区块和后来挖矿产生的区块中给矿工的交易没有输入,除此之外,在比特币系统中,某笔交易的输入必须是另一笔交易未被使用的输出,同时这笔输入也需要上一笔输出地址所对应的私钥进行签名。当前整个区块链网络中的UTXO会被存储在每个节点中,只有满足了来源于UTXO和数字签名条件的交易才是合法的。所以区块链系统中的新交易并不需要追溯整个交易历史,就可以确认当前交易是否合法。

     

    6.哈希函数

    哈希函数在比特币系统中也有着重要的应用,区块链中的数据并不只是原始数据或者交易记录,还包括它们的哈希函数值,即将原始数据编码为特定长度的、由数字和字母组成的字符串后,记入区块链。哈希函数有着很多适合存储区块链数据的优点。

    ①哈希函数处理过的数据时单向性的,通过处理过的输出值几乎不可能计算出原始的输入值。

    ②哈希函数,例如SHA256,将需要处理的数据分块,每块512字节,然后用Merkle-Damgard转换函数把初始向量和第一块做输入,生成256字节,再作为初始向量与下一数字块进行Merkle-Damgard转换,如此重复直到最后一个数据块。最后结果就是一个256字节的哈希值。因此,输入数据越长,哈希函数处理的时间就越长。

    ③哈希函数的输入值即使只相差一个字节,输出值的结果也是迥然不同。比特币系统中最常采用的哈希函数是双SHA256哈希函数,通俗来说就是将不同长度的原始数据用两次SHA256哈希函数进行处理,再输出长度为256的二进制数字来进行统一的识别和存储。

     

    7.Merkle树

    Merkle树是数据结构中的一种树,可以是二叉树,也可以是多叉树,它具有树结构的所有特点。比特币区块链系统中的采用的是Merkle二叉树,它的作用主要是快速归纳和校验区块数据的完整性,它会将区块链中的数据分组进行哈希运算,向上不断递归运算产生新的哈希节点,最终只剩下一个Merkle根存入区块头中,每个哈希节点总是包含两个相邻的数据块或其哈希值。在比特币系统中使用Merkle树有诸多优点:首先是极大的提高了区块链的运行效率和可扩展性,使得区块头只需包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高效的运算在智能手机甚至物联网设备上;其次是Merkle树可支持”简化支付验证协议”(SPV),即在不运行完整区块链网络节点的情况下,也能够对交易数据进行检验。所以,在区块链中使用Merkle树这种数据结构是非常具有意义的。

     

    8.双重支付

    双重支付问题又称为”双花”问题,即利用货币的数字特性用”同一笔钱”完成两次或多次支付。在传统的金融和货币体系中,由于金钱货币是物理实体,具有客观唯一存在的属性,所以可以避免双重支付的情况。但在其他的电子货币系统中,则需要可信的第三方管理机构提供保证。区块链技术则在去中心化的系统中不借助任何第三方机构而只通过分布式节点之间的相互验证和共识机制,有效地解决了双重支付的问题,在信息传输的同时完成了价值转移。区块链技术通过区块链接形成的时间戳技术加上验证比特币是否满足UTXO(未花费交易)和数字签名,有效避免了双重支付的问题。如果有人用同一笔UTXO构造了两笔赋给不同交易方的交易,则比特币客户端只会转发最先被侦听到的那个。矿工会选择将那笔交易包入未来区块,当其中一笔交易所在的区块后有5个链接的区块,这笔交易已经得到了6次确认。在比特币区块链上,通常的做法是6次确认后基本上该比特币被双花的概率很小。按照中本聪在比特币白皮书中的计算,6次确认后双花的概率大概在0.024%。

     

    9.P2P网络

    P2P网络是一种对等者之间分配任务和工作负载的分布式应用框架,是对等计算模型在应用层形成的一种组网或网络形式。因此,从字面上,P2P可以理解为对等计算或对等网络。迅雷软件采用的就是P2P技术。区块链系统是在建立在IP通信协议和分布式网络的基础上的,它不依靠传统的电路交换,而是建立在网络通信之上,完全通过互联网去交换信息。网络中所有的节点具有同等的地位,不存在任何特殊化的中心化节点和层级结构,每个节点均会承担网络路由、验证数据区块等功能。网络的节点根据存储数据量的不同可以分为全节点和轻量级节点,全节点存储了从创世块以来的所有区块链数据。全节点的优点是进行数据校验时不需要依靠别的节点,仅依靠自身就可以完成校验更新等操作,缺点是硬件成本较高。轻量级节点只需要存储部分数据信息,当需要别的数据时可以通过简易支付验证方式向邻近节点请求所需数据来完成验证更新。

     

    10.加密算法

    除了哈希算法外,比特币中还存在一种为交易加密的非对称加密算法(椭圆曲线加密算法)。非对称加密算法指的就是存在一对数学相关的密钥,使用其中一个密钥进行加密的数据信息,只有使用另一个密钥才能对该信息进行解密。这对密钥中,对外公开的密钥叫作公钥,不公开的密钥就叫作私钥。打个比方,公钥就像银行的账户,私钥就像是该账户的密码或账户所有者的签名。区块链之上的有效交易有一个用于交易发起方私钥签名有效的数字签名,而该交易的签名可以通过使用交易发起方的公钥进行验证。公钥可以通过算法从私钥中计算得出,但私钥却不能从公钥中推出。比特币系统使用的就是一种非常典型的非对称加密算法——椭圆曲线加密算法(ECC)。比特币系统一般从操作系统底层的一个密码学安全的随机源中取出一个256位随机数作为私钥,私钥的总数为2^256个,所以很难通过遍历所有可能的私钥得出与公钥对应的私钥。用户使用的私钥还会通过SHA256和Base58转换成易书写和识别的50位长度的私钥,公钥则首先由私钥和Secp256k1椭圆曲线算法生成65字节长度的随机数。一般情况下,比特币钱包的地址也由公钥所生成,其生成过程为首先将公钥进行SHA256和RIPEMD160双哈希运算,并生成20字节长度的摘要结果(即Hash160结果),这个将作为比特币地址的主体信息,再在前面加上版本前缀0x00,在后面添加4个字节的地址校验码。地址校验码通过对摘要结果进行两次SHA256运算,取哈希值得前4位产生。最后通过Base58处理把连在一起的版本前缀、主体信息和校验码转换成可以容易让人识别的比特币字符地址。

     

    11.数字签名

    数字签名就是在信息后见加上一段内容,作为发送者的证明并且证明信息没有被篡改。一般是发送者将信息用哈希算法处理得出一个哈希值,然后用私钥对该哈希值进行加密,得出一个签名。然后发送者再将信息和签名一起发送给接受者。接收者使用发送者的公钥对签名进行解密,还原出哈希值,再通过哈希算法来验证信息的哈希值和解密签名还原出来的哈希值是否一致,从而可以鉴定信息是否来自发送者或验证信息是否被篡改。

    展开全文
  • 区块链技术公司的价值观中,世界是个庞大的经济体,而每个需求都是财富交换的区块链节点。以网络为支撑,区块链技术公司发展快速!且不谈一些电商巨头的参入、就连中小企业、个体投资者、创业者都纷纷深入区块链...

     在区块链技术公司的价值观中,世界是个庞大的经济体,而每个需求都是财富交换的区块链节点。以网络为支撑,区块链技术公司发展快速!且不谈一些电商巨头的参入、就连中小企业、个体投资者、创业者都纷纷深入区块链技术中,因为大家都知道,在这样一个未被分割的领域,人人都可以利用区块链技术公司,实现步入财富之路的发展潜力!而犹豫者,就是在给别人“捷足先登”的机会!


      跟互联网发展史不同,区块链技术公司更像是最终会走向一个“去中心化”的“需求对接链网”,能与需求产生联系的东西,就必定能赚钱。举一个例子,我们知道以太坊是很成功的区块链项目,它提供了支撑近千种令牌的平台,这些令牌的市值已经达到数千亿美元,只是币币之间交易就产生了不少价值,结果就不用明说了。你想象一个区块链技术公司开发了一个平台,但他们一分钱都没赚?这成立吗?拿淘宝、京东来说,每年都卖出去几万亿的产品,而马云和刘强东还骑自行车上班,每月工资三千,说得通吗?显然是不太可能的!


      但在区块链技术领域,这种情况就发生了。以太坊项目启动募集了1800万美元资金,虽然当时没有注册公司,但是也弄了一个基金会。以太坊基金会募集了启动资金的同时,给自己留了1000万以太。但以太坊第一步把募集资金花掉了(给开发人员发工资),开发出了正式版本之后,以太升值,它接着花以太,花掉了900万个,剩100万个;到这一步,以太坊大获成功,剩下的100万个以太估值1亿美元。表面看它只花钱,没有任何收入,结果手上的钱增加了,接下来它还是继续花钱,一样没有收入。这就是区块链的一种赚钱的方法。


      还有一种例如:我创造一个区块链项目,创造出来后,它就不属于我了,我怎么从中盈利呢?一,要创造价值,二,我要跟其他用户一起去抢夺令牌。这个令牌流转起来之后,在不同的人手里面流动,如果持有令牌的绝大部分人都是捂币,等待躺着发财,那么可以预见这个令牌价值等于0,如果流转到的用户手上,大部分用户都能贡献出自己的价值附加到令牌上面,那么令牌就会很值钱,再将生活中的需求产品对接到区块链技术公司上,实现“货”、“令”交换,中间整合一个合理的方案,那么不仅“令”能升值,实体货物也可以通过区块链技术公司的方案来进行交易,这难道不能赚钱吗?


      所以说,想入主区块链技术领域,找到一个技术成熟的对接公司很重要,而武汉先达区块链技术公司作为一个专精区块链研发5年的公司,不仅能独立数字交易所开发,场内场外,落地APP建设,区块链项目白皮书,区块链浏览器,对接主流交易所,跨境支付,主链开发,基金会发起,海内外数字牌照等等,在区块链技术上有着一整套完善的解决方案,成功案例之多备受业内人士好评!


      区块链技术玩法也好,区块链技术公司发展思维也罢,具体的经济前景仍然在于其价值的发现,价值的发现从思想原型的建立,治理结构的设计、到产品的开发,使用的论证,用户的认可,经济价值的体现,完成一个完整的价值可视化闭环。今天我们能够切实体会到互联网的价值,是因为它已经完成了价值可视化的闭环,而在这次“区块链技术公司的闭环”中,你还想如当初“网购浪潮”一样错过这个赚钱机遇吗?

    展开全文
  • 区块链开发技术指南(区块链技术丛书).azw3 kindle电子书,仅供学习交流使用,请勿商用,侵删。
  • 区块链技术原理精讲

    千人学习 2019-12-16 10:49:04
    针对区块链技术原理做详细介绍. 按照比特币,以太坊,联盟链+Fabric的演进历程,依次详细介绍每一代区块链所使用的核心技术,对应的主要部分的结构原理分析,以及相应共识的工作原理.并针对常听到的一些区块链基本问题做...
  • java实现简单的区块链,主要包括初始化一个区块链,证明区块链的有效性,生成一个交易记录,计算区块的hash值
  • 区块链技术入门学习指引

    千次阅读 2021-03-30 17:04:44
    为了帮助小伙伴们系统学习区块链技术,我们建了这个索引贴,方便大家找到自己感兴趣的文章,从入门到精通一步步学习区块链开发。你也可以使用左侧的分类、标签及搜索功能。 为了帮助小伙伴们系统学习区块链技术,...

    为了帮助小伙伴们系统学习区块链技术,我们建了这个索引贴,方便大家找到自己感兴趣的文章,从入门到精通一步步学习区块链开发。你也可以使用左侧的分类标签搜索功能。

    为了帮助小伙伴们系统学习区块链技术,我们建了这个索引贴,方便大家找到自己感兴趣的文章,从入门到精通一步步学习区块链开发。你也可以使用左侧的分类标签搜索功能。

    有新文章时会更新本文,建议大家加入收藏夹中,如果你觉得本站不错,欢迎你转发给朋友。

    引言

    给迷失在如何学习区块链技术的同学一个指引,区块链技术是随比特币诞生,因此要搞明白区块链技术,应该先了解下比特币。
    但区块链技术不单应用于比特币,还有非常多的现实应用场景,想做区块链应用开发,可进一步阅读以太坊系列。

    比特币

    如果你是还不知比特币是什么,那就看看比特币是什么

    基础入门

    接下来可以通过下面这几篇文章了解比特币大概的运行原理:

    补充阅读

    进阶

    在基础入门之后,可以进一步阅读以下几篇,理解分布式网络,交易验证。

    看完上面这些,区块链应该理解差不多了,就可以尝试实现一个简单的区块链了。参考这篇用Python从零开始创建区块链

    以太坊

    一个技术要落地还得靠应用, 以太坊就这样一个建立在区块链技术之上,去中心化的应用平台。可以阅读几下几篇,这部分以开发为主,需要大家多发时间实践。

    智能合约及应用开发

    Solidity语言教程

    全面学习Solidity语言可以购买图书:精通以太坊智能合约

    区块链扩容

    钱包开发系列

    如可开发一款以太安卓钱包

    柚子EOS

    跨链研究

    IPFS

    Substrate

    Substrate 入门(1)- 环境配置与编译
    Substrate 入门(2)- 运行与调试
    Substrate 入门(3)- 具备状态的链
    Substrate 入门(4)- 项目结构
    Substrate 入门(5)- 区块头
    Substrate 入门(6)- 交易体
    Substrate 入门(7)- Substrate的模型设计
    Substrate 入门(8)- Runtime概要
    Substrate 入门(9)- Runtime的wasm与native
    认识 Substrate 及开发准备
    Substrate 总览(1) - 设计
    Substrate 总览(2) - 项目结构
    Substrate 总览(3) - 入门参考

    FileCoin

    go实现区块链(Bitcoin)

    golang 实现区块链(Bitcoin)系列 1 - 基本原型
    golang 实现区块链(Bitcoin)系列 2 - 工作量证明
    golang 实现区块链(Bitcoin)系列 3 - 持久化和命令行接口
    golang 实现区块链(Bitcoin)系列 4 - 交易(1)
    golang 实现区块链(Bitcoin)系列 5 - 地址
    golang 实现区块链(Bitcoin)系列 6 - 交易(2)
    golang实现区块链(Bitcoin)系列7 - 网络

    其他

    推荐

    登链社区只给大家推荐优质内容,也希望大家理解优质内容往往是需要付费的,这样作者才能持续输出优质内容。

    通过视频课程学习区块链技术,推荐大家进入讲堂,或者关注登链学院, 公众号: edupchain。

    如果你有开发钱包、DAPP、交易所、公链、人才招聘等需求,也欢迎勾搭Tiny熊(微信:xlbxiong)

    登链社区 - 区块链技术爱好者的家园,关注知乎微博 掌握区块链技术动态。

    .jpg

    展开全文
  • 区块链技术介绍

    2018-01-14 22:37:08
    区块链(Blockchain)是比特币的一个重要概念,货币联合清华大学...区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
  • 区块链技术综述

    万次阅读 2017-10-31 22:32:38
    一篇区块链的综述文章,将区块链的基本概念讲述清楚。

    本篇论文发表于2016年11月《网络与信息安全学报》,作者:沈鑫,裴庆祺,刘雪峰。为了保存随时查阅,将文章在博客上转载备份,望作者谅解。

    区块链技术综述

    沈鑫1,裴庆祺1,刘雪峰2

    (1. 西安电子科技大学通信工程学院,陕西 西安 710071; 2. 西安电子科技大学网络与信息安全学院,陕西 西安 710071)
    摘 要:区块链是一种广泛应用于新兴数字加密货币的去中心化基础架构,随着比特币的逐渐被接受而受到关注和研究。区块链技术具有去中心化,区块数据基本不可篡改、去信任化等特性,因此受到企业尤其是金融机构的追捧。阐述了区块链技术的核心技术原理,探讨了区块链技术的应用以及所存在的监管问题、安全问题,旨在对区块链技术的相关研究提供帮助。 关键词:区块链;数字货币;去中心化;分布式;共识机制 中图分类号:TP319 文献标识码:A doi: 10.11959/j.issn.2096-109x.2016.00107
    Survey of block chain
    SHEN Xin1, PEI Qing-qi1, LIU Xue-feng2
    (1. School of Telecommunications Engineering, Xidian University, Xi’an 710071, China; 2. School of Cyber Engeering, Xidian University, Xi’an 710071, China)
    Abstract: With the wide spread of Bitcoin, block chain serving as the building block of digital currency becomes a hot spot in industry and academia. Due to the decentration of network, the unforgeability of block data, etc., block chain has attracted more and more attentions from financial institutions. The essential theory and core technique of block chain were surveyed, and the issues of management and security problems of block chain based applications were discussed. To help improve the block chain techniques is the goal.
    Key words: block chain, digital currency, decentralization, distribution, consensus mechanism

    1 引言

          区块链是比特币的基础支撑技术,首次出现在中本聪(Satoshi Nakamoto)发表的《比特币:一种点对点式的电子现金系统》[1],文中详细描述了如何建立一套全新的、去中心化的、不需要信任基础的点到点交易体系的方法,其可实现性已经被自 2009 年运行至今的比特币所证明。区块链技术的突出优势在于去中心化设计,通过运用加密算法、时间戳、树形结构、共识机制和奖励机制,在节点无需信任的分布式网络中实现基于去中心化信用的点到点交易,解决了目前中心化模式存在的可靠性差、安全性低、高成本、低效率等问题。虽然近几年比特币快速发展,但其交易的匿名性和作为货币的发行权无法被掌握,多数国家机构不承认其货币属性,而区块链凭借其独特的优势,吸引众多目光,相关研究和应用一时之间呈现井喷的趋势。区块链技术更是被认为是继大型计算机、个人计算机、互联网、移动社交之后的第 5 次颠覆式计算范式,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第 4 个里程碑[2]。广义的区块链技术有望彻底重塑人类社会活动形态,为金融、科技、文化、政治等领域带来深刻的变革。       截至 2016 年 9 月,有关区块链的学术研究成果仍然寥寥无几[3~18],相关知识产权和专利也是一片空白,区块链领域更是呈现出技术和产业创新驱动的发展趋势[19~27]。本文系统地梳理了区块链技术的相关内容,包括区块链的起源、发展现状、基本原理、核心特点、相关应用及其存在的问题,为以后的研究提供启发和借鉴。

    2 区块链概述

          文献[1]中所描述的区块链是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,并以密码学方式保证不可篡改和不可伪造的分布式去中心化账本,能够安全存储简单的、有先后关系的、能在系统内进行验证的数据[5]。区块链的出现解决了数字货币的两大问题:双重支付问题以及拜占庭将军问题[28~33]。双重支付问题是同一笔钱被使用了超过一次,是在原有的以物理实体(纸币)为基础的传统金融体系中自然可避免的问题。在区块链出现之前的数字货币,都是通过可信任的中心化第三方机构来保证,以前是银行,现在是支付宝、微信支付等。区块链技术通过共识机制和分布式账本,不需要可信第三方就可以解决双重支付的问题是数字货币的一大突 破 。 拜 占 庭 将 军 问 题 ( Byzantine generals problem)[15]是现实世界问题的模型化,适用于分布式网络的简单抽象为“在缺少可信中心节点的情况下,分布式节点怎么达成共识建立互信的问题”。区块链使用“工作量证明”(PoW,proof of work)及“权益证明”(proof of stake)或其他的共识机制,再加上加密技术,使一个不可信网络变成可信的网络,所有参与者可以在某些方面达成一致,而无需信任单个节点。       区块链具有去中心化、网络健壮、灵活性、安全可信等特点。首先,区块链采用纯数学的方法建立分布式节点间的信任关系,形成去中心化的可信分布式系统,产生交易、验证交易、记录交易信息、进行同步等活动均是基于分布式网络完成的,是彻彻底底的去中心化。其次,区块链采用独特的经济激励机制来吸引节点完成工作(如挖矿),促使节点提供算力或其他资源,保证整个分布式网络的顺利运行。整个分布式网络所容纳的节点越多,其健壮性越强,除非一半以上的节点同时出现问题,否则分布式网络将会一直安全运行。再次,区块链提供用户可编程的脚本系统,大大增加了区块链应用的灵活性。在比特币中,脚本不是很成熟,多用于交易的用途;而在以太坊(Ethereum)中,更加完备、功能更加强大的脚本系统智能合约,使更为复杂更为高级的分布式应用得以实现[34]。最后,区块链的安全性是加密技术所保证的,整个分布式网络所提供的算力是非常惊人的,想要篡改区块链中的数据,不仅只是在理论上可行,而且所花费的电力、设备等成本也是得不偿失的。       下面通过描述比特币的工作过程来一窥区块链的全貌。比特币网络的全节点无时无刻不在进行数学运算(挖矿、工作量证明),每个节点贡献自己的算力来竞争解决一个动态可调整的数学问题(进行 SHA256 运算的结果小于某个值),成功解决该数学问题的节点将获得一定数量的比特币(初始 50 比特币,每挖出 210 000 个区块减少一半)以及该区块的记账权,该节点将当前时间段的所有交易打包计入一个新的区块,获得基于自愿原则的交易手续费,所有的交易都会经过算法处理(SHA256),并且经过验证,产生一定格式的区块(按一定格式计算出的包含前一区块信息的块头,由树形结构组织的交易数据构成块体),最后将该区块链接到主链上。整个比特币网络周而复始,比特币网络顺利运行。“挖矿”是所有节点通过数学运算达成共识的过程,由于非对称算法 SHA256 的性质,理论上保证记账权获得的随机性。一笔交易数据经全部节点验证通过后,进行 SHA256 运算,与其他交易两两匹配,再进行SHA256 运算,直到最后剩下一个“树根”,矿工将上一区块的散列值(SHA256 运算结果)、时间戳、本区块的计算难度值、一个随机数和本区块的“树根”(Merkle 树根)打包成块头,加上“交易树”(Merkle tree)作为块体,形成完整的区块添加到区块链上。由于每个区块都带有前一区块的特征,想要篡改一个区块的交易记录,必须要重新计算该块之后的所有区块,需要修改时间越久的区块,所花费的算力越大,一般来说,一个区块后面有 6 个区块,就无法被修改了(根据比特币网络算力以及现有计算设备综合考虑)。

    3 区块链架构与关键技术详解

          本节使用比特币和以太坊的区块链架构为实例,详细描述区块链技术的基础架构、基本原理以及核心技术。比特币和以太坊是 2 种具代表性的区块链技术应用,一个是区块链技术的起源,另一个是区块链 2.0 的代表应用,市面上其他使用区块链技术的数字货币大都与之雷同,所以,比特币和以太坊的基础架构是研究学习区块链技术的重要实例。       比特币和以太坊的基础架构如图 1 所示。图 1中虚线表示的是以太坊与比特币的不同之处。总体来说,数字货币的区块链系统包含底层的交易数据、狭义的分布式账本、重要的共识机制、完整可靠的分布式网络、网络之上的分布式应用这几个要素。底层的数据被组织成区块这一数据结构,各个区块按照时间顺序链接成区块链,全分布式网络的各个节点分别保存一份名为区块链的分布式账本,网络中使用 P2P 协议进行通信,通过共识机制达成一致,基于这些基础产生相对高级的各种应用。在该架构中,不可篡改的区块链数据结构、分布式网络的共识机制、工作量证明机制和愈发灵活的智能合约是具代表性的创新点。

    3.1 底层数据

          在区块链系统中,底层数据并不是存储在区块链中的数据,这些原始数据需要进一步加工才能被写入区块内。底层数据最根本的是交易记录,其他的数据只是为了对消息记录进行封装。       交易数据:交易数据是带有一定格式的交易信息,以比特币为例,一条比特币交易信息应包含以下字段:4 B 的版本信息,用来明确这笔交易参照的规则;1~9 B 的输入计数器,表示被包含的输入数量;变长字节的输入,表示一个或多个交易输入(地址);1~9 B 的输出计数器,表示被包含的输出数量;变长字节的输出,表示一个或多个输出(地址);4 B 的时钟时间,表示一个UNIX 时间戳或区块号[35]。       时间戳:时间戳被用来加盖在区块头中,确定了区块的写入时间,同时也使区块链具有时序的性质,时间戳可以作为区块数据的存在性证明,有助于形成不可篡改不可伪造的分布式账本。更为重要的是,时间戳为未来给予区块链技术的互联网和大数据增加了时间维度,使通过区块数据和时间戳来重现历史成为可能[5]。       SHA256 算法:区块链不会直接保存明文的原始交易记录,只是将原始交易记录经过散列运算,得到一定长度的散列值,将这串字母与数字组成的定长字符串记录进区块。比特币使用双SHA256 散列函数,将任意长度的原始交易记录经过 2 次 SHA256 散列运算,得到一串 256 bit 的散列值,便于存储和查找。散列函数具有单向性、定时性、定长性和随机性的优点。单项性指由散列值无法反推得到原来的输入数据(理论上可以,实际几乎不可能),定时性指不同长度的数据计算散列值所需要的时间基本一样,定长性指输出的散列值都是相同长度,随机性指 2 个相似的输入却有截然不同的输出。同时,SHA256 函数也是比特币所使用的算力证明,矿工们寻找一个随机数,使新区块头的双 SHA256 散列值小于或等于一个目标散列值,并且加入难度值,使这个数学问题的解决时间平均为 10 min,也就是平均每 10 min 产生一个新的区块。       Merkle 树:Merkle 树是区块链技术的重要组成部分,将已经运算为散列值的交易信息按照二叉树形结构组织起来,保存在区块的块体之中。Merkle 树的生成过程:将区块数据分组进行散列函数运算,将新的散列值放回,再重新拿出 2 个数据进行运算,一直递归下去,直到剩下唯一的“Merkle 根”。比特币采用经典的二叉 Merkle 树,而以太坊采用了改进的 Merkle Patricia 树。Merkle树的优点:良好的扩展性,不管交易数据怎么样,都可以生成一颗 Merkle 树;查找算法的时间复杂度很低,从底层溯源查找到 Merkle 根部来验证一笔交易是否存在或合法,时间复杂度为 lb N,极大降低运行时的资源占用;使轻节点成为可能,轻节点不用保存全部的区块链数据,仅需要保存包含 Merkle 根的块头,就可以验证交易的合法性。

    3.2 分布式记账本

          这里使用分布式记账本来代替区块链,是为了区别狭义的区块链和广义的区块链技术,前者是分布式记账本这一时序链式数据结构,后者是个完整的带有数学证明的系统框架。狭义的区块链结构如图 2 所示,每个区块分为块头和块体两部分,所有区块按照时序相链接,形成狭义上的区块链。
          区块头:区块头的内容有上一区块头的散列值、时间戳、当前 Po W 计算难度值、当前区块Po W 问题的解(满足要求的随机数),以及 Merkle根。以比特币为例,具体的数据格式为:4 B 的版本字段,用来描述软件版本号;32 B(256 bit)的父区块头散列值;32(256 bit)字节的 Merkle根;4 B 的时间戳;4 B 的难度目标;4 B 的 Nonce(随机数,问题的解)。区块头设计是整个区块链设计中极为重要的一环,区块头包含了整个区块的信息,可以唯一标识出一个区块在链中的位置,还可以参与交易合法性的验证,同时体积小(一般不到整个区块的千分之一),为轻量级客户端的实现提供依据。
          区块体:区块体包含了一个区块的完整交易信息,以 Merkle 树的形式组织在一起。如图 2 所示,Merkle 树的构建过程是一个递归计算散列值的过程,以图中为例,交易 1 经过 SHA256 计算得到 Hash 1,同样算得 Hash 2,将 2 个散列值串联起来,再做 SHA256 计算,得到 Hash12,这样一层一层地递归计算散列值,直到最后剩下一个根,就是 Merkle 根。可以看到,Merkle 树的可扩展性很好,不管交易记录有多少,最后都可以产生 Merkle 树以及定长的 Merkle 根。同时,Merkle树的结构保证了查找的高效性,N 个叶子节点的Merkle 树最长查找路径长度为 lb N,这种高效在大交易规模中异常明显。
          链式结构:除了创世区块以外,所有区块均通过包含上一区块头的散列值的方法构成一条区块链。同时,由于包含了时间戳,区块链还带有时序性。时间越久的区块后面所链接的区块越多,修改该区块所花费的代价也就越高,这里借用一个形象的比喻,区块链就好比地壳,越往下层,时间越久远,越稳定,不会轻易发生改变。区块链在增加新区块的时候,有很小的概率发生“分叉”现象,即同一时间挖出 2 个符合要求的区块。对于“分叉”的解决方法是延长时间,等待下一个区块生成,选择长度最长的支链添加到主链,“分叉”发生的概率很小,多次分叉的概率基本可以忽略不计,“分叉”只是短暂的状态,最终的区块链必然是唯一确定的最长链。
          创世区块:每一个区块链都有一个特殊的头区块,不管从哪个区块开始追溯,最终都会到达这个头区块,即创世区块。这里不得不提到比特币的创世区块,它在北京时间 2009 年 1 月 4 日02:15:05 被中本聪生成,是比特币诞生的里程碑,也是数字货币的新纪元。中本聪在比特币创世块中留下了一句话“The Times 03/Jan/2009 Chan-cellor on brink of second bailout for bank”,是当天的头版文章标题。中本聪的引用,既是对该区块产生时间的说明,也是对旧有银行系统面对金融危机脆弱表现的冷嘲[36,37]。

    3.3 组网方式和核心机制

          狭义的区块链,即分布式账本的内容上面已经介绍完毕,将这个账本用起来才是区块链技术的关键所在。基于分布式账本之上的区块链网络,采用对等式网络——P2P 网络(peer-to-peer net-work)将所有节点连接在一起,设计 Po W 或其他共识机制使无信任基础的双方在不需要第三方的情况下建立互信,使用广播的方式传播交易信息,加上激励机制来保证节点提供算力以维持整个网络的顺利运行。       P2P 网络:区块链网络的去中心化来自于采用 P2P 组网方式,网络中每个节点均地位对等且以扁平式拓扑结构相互连通和交互,不存在任何中心化的特殊节点和层级结构,每个节点均会承担网络路由、验证交易信息、传播交易信息、发现新节点等工作。       广播机制:区块链网络公布交易信息的方式是广播,生成交易信息的节点先将信息广播到相连接的节点,节点验证通过后就会再进行广播,信息会以极快的方式被全网中的节点接收。实际上,并不需要全部节点都保留这条交易信息,只要保证大多数(51%)节点接收到,就可以认为交易通过。如果这条交易信息有问题,如交易者的余额不足以支付,接收到错误消息的节点验证不通过,就会废弃该交易数据,不会对它再进行广播。新区块的生成也是通过广播来确认的,找到满足条件的随机数后进行广播,记过验证后确认新区块的记账权,生成新的区块,全网进行同步,将该块添加到主链上。       共识机制:分布式网络的核心难题是如何高效地达成共识,就好比现有的社会系统,中心化程度高的、决策权集中的社会更容易达成共识,像独裁和专制,但是社会的满意度很低;中心化程度低的、决策权分散的社会更难达成一致,像民主投票,但是整个社会的满意度更高。“任何基于网络的数据共享系统,都最多拥有以下 3 条中的 2 条:1) 数据一致性(C);2) 对数据更新具备高可用性(A);3) 能容忍的网络分区(P)”,即 CAP 理论[38],分布式网络已经带有了 P,那么C 或 A 只能在两者中选择一条。如何在一致性和可用性之间进行平衡,在不影响实际使用体验的前提下还能保证相对可靠的一致性,是研究共识机制的目标。早期的比特币采用高度依赖节点算力的 PoW 机制来保证比特币网络分布式记账的一致性,随着各种竞争币种的发行,更多相似的共识机制得以出现,PoS 就是一种基于 PoW 并且进行改进的共识机制。       PoW 共识机制:PoW 机制是由中本聪所设计的适用于比特币系统的共识机制,其核心思想是通过引入分布式节点的算力竞争来保证数据一致性和共识的安全性。在比特币中,所有参与“挖矿”的节点都在遍历寻找一个随机数,这个随机数使当前区块的区块头的双 SHA256 运算结果小于或等于某个值,找到符合要求的随机数的节点获得当前区块的记账权,获得一定数额的比特币作为奖励。另外,引入动态难度值,使求解该数学问题所花费的时间在 10 min 左右。Po W 共识机制具有十分重要的意义,将比特币的发行、交易和记录完美地联系起来,同时还保证了记账权的随机性,确保比特币系统的安全和去中心化。       GHOST(Greedy Heaviest Observed Subtree)协议:GHOST 协议是为了解决比特币使用 Po W算力竞争引起的高废块率带来的算力浪费问题。废区块指的是在新块广播确认的时间里“挖”出的符合要求的区块。GHOST 协议提出在计算最长链时把废区块也包含起来,即在比较哪一个区块具有更多的工作量证明时,不仅有父区块及其祖先区块,还添加其祖先区块的作废后代区块来计算哪个块拥有最大的工作量证明。在以太坊中,采用了简化版 GHOST 协议,废区块只在五代之间参与工作量证明,并且废区块的发现者也会收到一定数量的以太币作为奖励。       PoS 共识机制:PoW 共识机制有明显的缺点,算力资源被过多地浪费掉,PoS 共识机制是为了解决 PoW 的缺陷而提出的替代方案。PoS 本质上是采用权益证明来代替 PoW 的算力证明,记账权由最高权益的节点获得,而不是最高算力的节点。权益证明就是资源证明,拥有最多资源的节点挖矿的难度最小。以太坊目前采用的仍然是 PoW,但是正在开发的下一版本将会转为 PoS 共识机制。       激励机制:激励机制是区块链技术中的重要一环,以比特币为例,开采出新的区块的节点会得到一定数量的比特币和记账权,记账权使节点在处理交易数据的时候得到交易费用。比特币的交易费用基于自愿原则,提供交易费用的交易会被优先处理,而不含交易费用的交易会先放在交易池中,随时间的增加而增加其优先级,最终还是会被处理。激励机制保证了整个区块链网络的保持向外扩张,促使全节点提供资源,自发维护整个网络。以比特币为例,目前整个比特币网络的算力已经达到 800 000 000 Gh/s,超过了全球Top 500 超级计算机的算力总和,想要对整个比特币网络做出影响几乎不可能。

    3.4 区块链节点

          在最初的区块链网络设计中,不存在任何中心化的特殊节点和层级结构,每个节点完全对等,承担着网络路由、验证交易信息、传播交易信息、发现新节点等工作。但是实际上物理设备是存在明显性能差距的,以比特币网络为例,可作为节点的设备有个人计算机、服务器、专为比特币挖矿设计的矿机,以及移动端,它们提供的算力相差了几个数量级,并且存储空间也不同。目前市面上可见的移动端存储空间最大不过 100 GB 左右,而存有全部数据的区块链数据总量已经超过60 GB,想要将移动端作为全节点无疑是不现实的。于是有了全节点和轻型节点,全节点是传统意义上的区块链节点,包含有完整的区块链数据,支持全部区块链节点的功能。全节点通常是高性能的计算设备,比特币刚面世时依靠 CPU 来提供算力,后来使用 GPU,发展到现在是专门设计将SHA256 算法固化到硬件的矿机,算力成几何增长趋势。轻型节点是依靠全节点存在的节点,不用为区块链网络提供算力,只保存区块链的区块头,由于区块头包含了 Merkle 根,可以对交易进行验证。轻型节点多为移动端,如智能手机、平板电脑、移动计算机等。

    3.5 智能合约

          区块链技术的智能合约是一组情景——应对型的程序化规则和逻辑,是部署在区块链上的去中心化、可信息共享的程序代码。签署合约的各参与方就合约内容达成一致,以智能合约的形式部署在区块链上,即可不依赖任何中心机构自动化地代表各签署方执行合约[5]。智能合约具有自治、去中心化等特点,一旦启动就会自动运行,不需要任何合约签署方的干预。       智能合约的运行过程如下。智能合约封装预定义的若干状态、转换规则、触发条件以及对应操作等,经过各方签署后,以程序代码的形式附着在区块链数据上,经过区块链网络的传播和验证后被记入各个节点的分布式账本中,区块链可以实时监控整个智能合约的状态,在确认满足特定的触发条件后激活并执行合约。       智能合约对区块链有重要的意义,智能合约不仅赋予了区块链底层数据可编程性,为区块链2.0 和区块链 3.0 奠定了基础;还封装了区块链网络中各节点的复杂行为,为建立基于区块链技术的上层应用提供方便的接口,拥有了智能合约的区块链技术前景极为广阔。例如,对互联网金融的股权招募,智能合约可以记录每一笔融资,在成功达到特定融资额度后计算每个投资人的股权份额,或在一段时间后未达到融资额度时将资金退还给投资人。还有互联网租借的业务,将房屋或车辆等实体资产的信息加上访问权限控制的智能合约部署到区块链上,使用者符合特定的访问权限或执行类似付款的操作后就可以使用这些资产。甚至与物联网相结合,在智能家居领域实现智能自动化,如室内温度湿度亮度的自动控制、自动门允许特定的人进入等。       现有水平的智能合约及其应用本质逻辑上还是根据预定义场景的“IF-THEN”类型的条件响应规则,能够满足目前自动化交易和数据处理的需求。未来的智能合约应具备根据未知场景的“WHAT-IF”推演、计算实验和一定程度上的自主决策功能,从而实现由目前“自动化”合约向真正“智能”合约的飞跃[5]。

    3.6 上层应用

          前文系统地介绍了区块链技术,有了一个比较全面的系统性概念之后,可以更为深入地研究基于区块链技术的上层应用。目前的区块链应用都具有相似的架构,各家的重心在于研发不同的上层应用。比特币是经典区块链应用,所使用的区块链技术十分具有研究学习价值。然而,比特币本身作为一种数字货币来说存在局限性,虽然可以用很低的成本开发出其他的数字货币(实际市面上存在很多类似的竞争币),但是很难开发出除了数字货币之外的应用。以太坊是另一个使用区块链技术的产品,不仅在底层解决了区块链原有的一些问题,更是把区块链技术进行封装,降低区块链和具体上层应用的耦合性。以太坊提供功能强大的智能合约语言来进行上层应用的设计,开发者们通过部署智能合约可以方便快捷地开发区块链应用。以太坊的最终目标是将所有节点连接起来,成为一台拥有恐怖算力的虚拟机,虚拟机上运行着各种各样的分布式应用,彻底改变现有的网络架构。

    4 区块链技术存在的问题

          毋庸置疑任何技术都存在局限性,虽然区块链技术有自身的独特优势,但也不是解决所有问题的灵丹妙药。区块链技术还处在发展初期,存在诸多问题。本节从各个角度描述目前区块链技术有待解决的问题。

    4.1 效率问题

          效率是区块链技术可用性的保证,目前区块链的效率问题表现为以下几点。       分布式记账本数据量问题。分布式记账本记录了整个区块链网络从诞生到当前时间节点的一切交易记录,在保证区块链数据不可篡改的同时,带来了存储和同步的问题。上文提到过,目前比特币的数据量已经超过了 60 GB,数据量巨大,更令人头疼的是比特币从诞生到现在才不过短短7 年,按照比特币愈发活跃的走势来看,账本过大是一个急需解决的问题。       同步时间问题。截至目前为止,比特币网络已经有 43 万个区块被开采出来,新添加进网络的节点同步账本所花费的时间就长达几天。如果没有改进的方案,时间越往后增加,新节点的代价就越大,甚至会阻碍区块链网络的扩张。       交易效率问题。以比特币为例,一秒只能处理 7 笔交易,而确定交易则要等待下一个区块产生,平均为 10 min。这种交易效率远远无法满足需求,虽然现在有了些研究成果,如闪电网络(lightning-network)[39],但仍然缺少全面解决效率问题的方法。

    4.2 中心化问题

          算力证明导致节点的不对等。理论上,在区块链网络中每个节点被平等地对待,但是为了挖矿获得经济回报,开始进行硬件竞赛,导致节点之间的不对等(使用矿机的节点自然比使用 CPU的节点更容易挖到矿)。目前,使用 CPU 挖比特币,理论概率几乎等于 0。区块链记账权的随机性受到破坏,违背了设计初衷。       算力证明导致的产业化趋势。同样,也是为了挖矿获得经济收益,产生了矿池。矿池指的是产业化规模化挖矿,通常在地理位置上选择靠近水电站的地区,在硬件上选择专门用于挖矿的矿机,几千上万台机器集群,试图用较低的成本来挖矿获得收益。以比特币为例,据统计,有约 60%的算力来自中国的矿池,比较有名的三大矿池是F2Pool、BTCChina Pool 以及 Huobi Pool。算力的集中破坏了分布式设计,并且带来了著名的“51%攻击”威胁。       51%攻击问题。简单地说,就是在投票制中掌握了半数以上的选票,可以使任何提案得到通过,放在比特币环境下就成为实现双重支付的手段,一笔交易只要半数以上的节点通过,那么对整个网络来说就是合法有效的。虽然理论上掌握分布式网络的大多数算力是几乎不可能的事,但是矿池的出现使“51%攻击”具备了实施的可能,并且算力的集中破坏了去中心化,带来种种安全隐患,所以开发新的共识机制是目前区块链研究的一个主要方向。       中心化趋势。分布式网络的中心化趋势也是一大问题,前面所说矿池的出现不仅带来了“51%攻击”的威胁,也影响了整个分布式网络的稳定性,如果一个矿池发生问题(如停电、火灾等),整个网络都会受到影响,削弱了分布式网络的优势。

    4.3 隐私和安全问题

          虽然区块链技术采用密码学相关技术,具有很高的安全性,但是整个区块链网络在隐私和安全方面仍然存在薄弱环节。       数据隐私问题。以比特币为例,比特币使用地址进行交易,具有匿名性,但是交易记录却完全公开,一个地址的所有交易记录全部都可以被查到,一旦将地址与真实身份联系起来,后果十分严重。       使用安全问题。区块链技术本身的安全性很高,采用非对称密钥机制,保证了安全性和有效性。但是对私钥的使用和保存状况却令人堪忧,即使 256 bit 的私钥表现成 50 个字符长度形式,依然难以记忆,使用其他软件进行辅助交易是必然的选择,但这类软件的安全性就值得商榷,交易网站或者个人的比特币被盗的消息络绎不绝,使用安全问题需要引起人们的重视。

    4.4 公有链、联盟链和私有链的问题

          根据区块链网络中心化程度的不同,分化出3 种不同应用场景下的区块链。1) 允许任何节点都可以加入区块链网络,查看区块链上任意信息的区块链被称为公有链,最初的区块链都是公有链,如比特币。2) 允许授权的节点加入网络,可以根据权限查看信息,往往被用于几个公司或机构之间的区块链被称为联盟链或行业链。3) 所有网络中的节点都被掌握在一家公司或机构手中,被称为私有链、不管是公有链,联盟链还是私有链都是区块链技术在不同场景下的应用,还处于发展初期的区块链技术在发挥其独特优势的同时,也带来了诸多挑战。公有链的问题在上面已经简要描述过,在此不再赘述。       联盟链的问题。联盟链作为一种带有权限机制的区块链,需要考虑的问题有很多。首先,是准入权限问题,一个节点如何被通过允许加入区块链,是人工鉴别还是采用身份验证机制;其次,是区块链数据的查阅权限问题,很明显企业和机构的数据都是存在保密等级的,拥有不同等级权限的节点只能看到本层及本层以下的数据,如何进行查阅权限的分配和数据保密等级的划分是主要问题;再次,联盟链中是否应该存在一种机制,保证等级较低的节点无法直接与等级高的节点进行交易,就像在生活之中,普通人去银行办业务,只会去找柜员而不是去找行长一样,一旦出现这种跨等级的交易,应该有特别措施进行处理;最后,是匿名性和数据透明性以及审计便利性的综合问题,如果需要保留匿名性,各个公司的审计就无法开展。如果为了方便审计不保留匿名性,就需要降低数据的透明性(毕竟一个公司并不想其他公司知道自身的准确数据),如将交易数据进行加密,但这样就增加了审计的工作量,总之是一个需要综合考虑的问题。       私有链的问题。私有链多用于一个公司或机构的内部,也存在与联盟链类似的问题。首先,是细粒度的可视权限分配问题,即对数据的访问权限要细化到每一个账户,跟联盟链的查阅权限类似;其次,是效率问题,私有链的节点都是被掌握的可信节点,自然不需要 Po W 共识机制,不仅浪费算力,还不够高效,考虑使用其他高性能分布式一致性解决方法;最后,是私有链本身的安全问题,过于集中的私有链抵御攻击的能力跟前 2 种区块链相比差很多,尤其是如果攻击来自内部,修改“理论上不可篡改”的区块链也是可以做到的。

    5 结束语

          自 2009 年到 2016 年,区块链技术已经走过了 7 个春秋,经历了区块链 1.0 时代,目前处于区块链 2.0,正在向区块链 3.0 稳步迈进。区块链1.0 更适合被称作狭义区块链技术的时代,其代表为比特币;区块链 2.0 是功能强大的智能合约时代,可以实现更为高级更为复杂的功能,大大扩宽区块链技术的应用场景;至于区块链 3.0,是将区块链技术的去中心化和共识机制发展到新的高度、影响全人类意识形态的时代。       目前,受到较多关注的研究方向是去中心化自治社会(DAS, decentralized autonomous socie-ty),这是一个从去中心化应用(Dapp, decentra-lized application)逐渐发展到去中心化自治组织/公司(DAO/DAC, decentralized autonomous or-ganization/decentralized autonomous corporation),最后实现 DAS 的发展方向[40,41]。区块链技术天然契合分布式社会系统的概念,其中每个节点都将作为分布式系统中的一个自治的个体,随着区块链生态体系的逐步完善,自治节点通过更为复杂的智能合约参与各种 Dapp,形成特定组织形式的DAO 和 DAC,最终形成 DAS[42]。       区块链技术也许是实现人工智能的一个途径,智能合约被设计得越来越自动化,智能化和复杂化,考虑将现有的研究成果移植到区块链上来,使其得到进一步发展。       本文系统性地介绍了区块链技术的原理技术和应用,是对目前区块链技术研究成果的一个总结。目前,区块链技术的基础理论和技术研究还处于起步阶段,虽然出现了很多使用区块链技术的商业产品,但缺少理论研究,无法对产品进行支撑,不利于区块链技术的长远发展。希望本文能为未来的研究提供参考与启发。

    参考文献:

    [1] NAKAMOTO S. Bitcoin: a peer-to-peer electronic cash system [EB/OL]. https://bitcoin.org/bitcoin.pdf.
    [2] SWAN M. Blockchain: blueprint for a new economy[M]. USA: O’Reilly Media Inc, 2015.
    [3] 赵赫, 李晓风, 占礼葵, 等. 基于区块链技术的采样机器人数据保护方法[J]. 华中科技大学学报(自然科学版), 15, 43(Z1): 216-219. ZHAO H, LI X F, ZHAN L K, et al. Data integrity protection me-thod for icroorganism sampling robots based on blockchain tech-nology[J]. Journal of Huazhong University of Science and Tech-nology (Natural Science Edition), 2015,43(Z1):216-219.
    [4] 丁未. 基于区块链技术的仪器数据管理创新系统[J]. 中国仪器仪表, 2015 (10): 15-17. DING W. Block chain based instrument data managementsystem[J]. China Instrumentation, 2015, (10): 15-17.
    [5] 袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4): 481-494 YUAN Y, WANG F Y. Block chain: the state of the art and future trends[J]. Acta Automatica Sinica, 2016,42(4): 481-494.
    [6] SWAN M. Block chain thinking: the brain as a decentralized auto-nomous corporation[J]. IEEE Technology and Society Magazine, 2015, 34(4): 41-52.
    [7] DAVIDSON E. Hive mentality or blockchain bloat?[J]. New Scien-tist, 2015, 228(3043):52.
    [8] ANONYMOUS. New kid on the blockchain[J]. New Scientist, 2015, 225(3009): 7.
    [9] GODSIFF P. Bitcoin: bubble or blockchain[C]//The 9th KES Inter-national Conference on Agent and Multi-Agent Systems: Technolo-gies and Applications (KESAMSTA). 2015, 38: 191-203.
    [10] KRAFT D. Difficulty control for blockchain-based consensus systems[J]. Peer-to-Peer Networking and Applications, 2016, 9(2): 397−413.
    [11] WILSON D, ATENIESE G. From pretty good to great: enhancing PGP using Bitcoin and the blockchain[C]//The 9th International Conference on Network and System Security,New York. 2015,: 368−375.
    [12] ZYSKIND G, NATHAN O, PENTLAND A S. Decentralizing privacy: using blockchain to protect personal data[C]//The IEEE Security and Privacy Workshops (SPW 2015). 2015:180-184.
    [13] KYPRIOTAKI K N, ZAMANI E D, GIAGLIS G M. From Bitcoin to decentralized autonomous corporations: extending the applica-tion scope of decentralized peer-to-peer networks and block-chains[C]//The 17th International Conference on Enterprise Infor-mation Systems(ICEIS2015). 2015: 284-290.
    [14] ANDRYCHOWICZ M,DZIEMBOWSKI S. Po W-based distri-buted cryptography with no trusted setup[C]//Advances in cryptol-ogy—CRYPTO. 2015:379-399.
    [15] SWAN M. Blockchain thinking: the brain as a decentralized auto-nomous corporation [J].IEEE Technology and Society Magazine, 2015, 34(4):41-52.
    [16] ELDRED M. Blockchain thinking and euphoric hubris [J]. IEEE Technology and Society Magazine, 2016, 35(1):39-39
    [17] GOBEL J, KRZESINSKI A E, KEELER H P, et al. Bitcoin block-chain dynamics: the selfish-mine strategy in the presence of propa-gation delay[J]. Performance Evaluation, 2016.
    [18] YUE X, WANG H J, JIN D W, LI M Q, JIANG W. Healthcare data gateways: found healthcare intelligence on blockchain with novel privacy risk control[J]. Journal of Medical System, 2016, 40(10): 1-8.
    [19] Factom white paper 1.0. Business processes secured by immutable audit trails on the Blockchain[EB/OL]. https://www.factom.com/devs/docs/guide/factom-white-paper-1-0.
    [20] Colored coins introduction [EB/OL]. https://github.com/Colored-Coins/Colored-Coins-Protocol-Specification/wiki/Introduction.
    [21] Antshare white paper[EB/OL]. https://github.com/AntShares/Ant-Shares.wiki.git.
    [22] Nasdaq LINQ. Building on the Blockchain[EB/OL].http://business.nasdaq.com/Docs/Blockchain%20Report%20March%202016_tcm5044-26461.pdf .
    [23] R3CEV[EB/OL].https://r3cev.com/.
    [24] Maidsafe white paper. Maid Safe.net announces project SAFE to the community[EB/OL]. https://github.com/maidsafe/Whitepapers/blob/master/Project-Safe.md.
    [25] Hyperledger. Project Charter[EB/OL]. https://www.hyperledger.org/about/charter.
    [26] Microsoft azure baa S[EB/OL]. https://azure.microsoft.com/zh-cn/solutions/blockchain.
    [27] IBM blockchain[EB/OL]. http://www.ibm.com/blockchain/.
    [28] The Byzantine Generals problem[EB/OL].http://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf.
    [29] FAN J, YI L T, SHU J W. Research on the technologies of Byzan-tine system[J]. Journal of Software, 2013, 24(6):1346-1360
    [30] NELSON M. The Byzantine General’s problem:an agreement protocol for distributed system[EB/OL]. http://www.drdobbs.com/cpp/the-byzantine-generals-problem/206904396.
    [31] LAMPORT L. The weak byzantine generals problem[J]. Journal of the ACM (JACM), 1983, 30(3): 668-676.
    [32] FEDOTOVA N, VELTRI L. Byzantine generals problem in the light of P2P computing[C]// The International Conference on Mobile & Ubiquitous Systems: Networking & Services. 2006:1-5.
    [33] REISCHUK R. A new solution for the byzantine generals prob-lem[J]. Decision Support Systems, 1985, 1(2):182.
    [34] Ethereum white paper. A next-generation smart contract and decen-tralized application platform[EB/OL]. https://github.com/ethereum/wiki/wiki/WhitePaper.
    [35] ANTONOPOULOS A M. mastering bitcoin: unlocking digital cryptocurrencies[M]. USA:O ‘Reilly Media Inc., 2014.
    [36] Bitcoin Sourcecode[EB/OL]. https://github.com/bitcoin/bitcoin/.
    [37] Bitcoin Website [EB/OL]. https://bitcoin.org/.
    [38] NANCY L, SETH G. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services[J]. ACM SI-GACT News, 2002, 33(2): 51-59.
    [39] POON J. The Bitcoin lightning network[EB/OL]. https://lightning.network/lightning-network-paper-DRAFT-0.5.pdf.
    [40] VIGNA P, CASEY M J. The age of cryptocurrency: how Bitcoin and the blockchain are challenging the global economic order[M]. St. Martin's Press. 2015
    [41] HODSON H. Bitcoin moves beyond mere money[J]. New Scientist, 2013, 220(2945):24.
    [42] The Economist. The DAO of accrue: a new, automated investment fund has attracted stacks of digital money [N].2016.
    展开全文
  • 区块链技术开发指南,系统讲解区块链核心概念、架构、底层算法、应用开发、典型案例以及常见问题解答。(该文档只限个人学习分享使用,请勿用于商业用途,喜欢的话请购买正版书籍)
  • 区块链技术是基于比特币应用提出的一个概念,他是一个融合了多种技术的一个集成式创新。目前区块链的应用早已不仅仅局限在比特币上。人们在谈论或使用“区块链”这个词时,有时候是指技术的商业应用,有时是指技术...
  • 最近在整理区块链方面的东西,刚看完一份中国通信学会的报告《区块链技术前沿报告2020》,发现里面的东西写得还是挺全的,所以这里对这份报告的内容做一个梳理。至于原报告,需要的小伙伴儿可以去我的公众号私信我,...
  • 区块链技术原理

    万次阅读 多人点赞 2016-07-17 17:48:15
    区块链是什么?  “区块链技术最初是由一位化名中本聪的人为...现在,人们在使用区块链”这个词时,有的时候是指数据结构,有时是指数据库,有时则是指数据库技术,但无论是哪种含义,都和比特币没有必然的联系。
  • 新生代开源区块链技术

    千次阅读 2016-10-29 11:48:21
    区块链的技术发展一日千里,几乎每天都有区块链技术或应用的新消息和进展,每个月都有新的区块链相关技术出来,各类区块链技术体系层出不穷,除了Elwin在《区块链主流开源技术体系介绍》提到的目前几大主流的开源...
  • 技术1:区块+链 ...区块(block):在区块链技术中,数据以电子记录的形式被永久储存下来,存放这些电子记录的文件我们就称之为“区块(block)”。区块是按时间顺序一个一个先后生成的,每一个区...
  • 区块链技术分类

    2018-03-16 09:05:46
    区块链技术主要分为三大类,主要是公开区块链、协作区块链、私有区块链,它们各自有各自的亮点和痛点。 区块链技术是维护一个不断增长的数据记录的分布式数据库,这些数据通过密码学的技术和之前被写入的所有数据...
  • 区块链技术学习笔记

    千次阅读 2017-07-04 09:49:01
    上周末参加了一个区块链技术培训班,大致搞明白了以下问题:1、比特币为什么会衍生出挖矿、矿机这套产业链?为什么那么多人炒币?2、公有链、联盟莲、私有链的区别在此做个简单分享。1、比特币这种公有区块链的技术...
  • 想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答! 区块链是类似Excel电子表格一样的分类帐本,但他们能够接受来自许多不同方的...区块链技术使用密码学和数字签名来验证身份,真...
  • 区块链技术进阶

    千次阅读 2017-01-18 10:18:25
    本文不是区块链的扫盲贴,适合略懂区块链,或者比特币的同学在聚会时谈论区块链,如何显得比别人更懂一点区块链底层的技术和未来的发展趋势,主要用于装逼,马上年底了,大家年会时拿走不谢。   入门水平: 1、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,746
精华内容 29,098
关键字:

区块链技术还使用了