文章目录
区块链技术是一种去中心化、去信任化的分布式数据库技术方案。该数据库由参与系统的所有节点集体维护,具有去中心化、不可篡改、透明、安全等特性。
区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的技术保证数据传输和访问控制的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
目前,区块链被很多大型机构称为彻底改变业务乃至机构运作模式的重大突破性技术。在金融、物联网、公益慈善、医疗健康、供应链等领域,越来越多的企业机构开始探索区块链在行业中的应用前景,规划基于区块链技术的数据流通路线图。
去中心化
现代软件系统主要采用两种架构:去中心化架构与中心化架构
中心化系统中一个中心化模块连接了其他所有的模块;而去中心化系统没有中心节点,每台计算机在无中心节点的情况下向其他计算机直接提供相关资源(如计算能力、存储空间、数据服务与网络带宽),任意一个节点既是资源提供者也是使用者。当能在系统中寻找到一个部分,这个部分可以直接关闭这个系统,则系统属于中心化系统;否则属于去中心化系统。
无需第三方介入,实现点对点的交易、协调和协作。在区块链系统中,没有任何一个机构或个人可以实现对全局数据的控制,而任一节点停止工作都不会影响系统整体运作,这种去中心化的网络将极大地提升数据安全性。
去中心化系统的优势
建立在多台计算机之上的去中心化系统主要具有如下优势:
计算能力更强
计算能力表现为系统中所有互联计算机的能力之和
成本更低
一台超级计算机的搭建、维护与运营成本会远远高于相同能力的去中心化系统
可靠性更好
一个计算机节点崩溃,整个系统依然可以工作,影响微乎其微,因为其他节点可以接替坏节点的工作
自增长
去中心化系统的计算机能力可以通过加入新的计算机来提升
密码学技术
密码学技术是区块链的核心技术之一,目前的区块链应用中采用了很多现代密码学的经典算法,主要包括:哈希算法、对称加密、非对称加密、数字签名等。
HASH摘要算法
HASH 算法的目的是针对不同输入,产生一个唯一的固定长度的输出。HASH 算法有 3 个特点:一是不同的输入数据产生的输出数据必定不同;二是输入数据的微小变动会导致输出的较大不同;三是给定已知输出数据,无法还原出原始的输入数据。常用的 SHA-256 算法就是针对任意长的数据数列输出 256 位数据,实际使用中 SHA256 用于对区块链的每个区块数据进行 HASH 摘要后防止篡改, 同时结合 Merkle Tree 数据结构实现部分区块数据的 HASH 值验证。
对称加密算法
对称加密算法利用加密密钥对原始数据进行加密处理,然后将加密后的密文发送给接收者,接收者利用同一密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原始数据。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
非对称加密算法
非对称加密算法需要两个密钥:公开密钥(Public Key)和私有密钥(Private Key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。其实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
数字签名算法
区块链技术中使用到的数字签名技术用于验证信息的完整性和真实性,基本流程如下:发送者将需要签名的原始数据进行 HASH 摘要,然后对摘要信息用私钥加密后与原始数据一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用同样 HASH 函数对收到的原文产生一个摘要信息,如果与解密的摘要信息对比相同则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整。此外,信息发送者拥有私钥且不公开,因此只有发送者本人才能构造基于其私钥的签名信息,可以确保签名真实性。
哈希算法
无论输入数据的大小及类型如何,哈希函数均可将输入数据转换成固定长度的输出。
哈希算法的特征
1、能为任意类型的数据快速创建哈希值。
2、确定性——相同输入必产生相同哈希值;反之,不同输入必产生不同输出。
3、伪随机——输入数据改变则返回的哈希值会产生变化,变得与之前不同,且这种变化是无法预测的。即无法由输入预测哈希值。
4、单向性——无法由得出的哈希值反推原始的数据。
5、防碰撞:不同输入产生相同的哈希值的概率很小
哈希难题
根据当前难度值,通过搜索求解一个合适的随机数(Nonce)使得区块头各元数据的双SHA256哈希值小于或者等于目标哈希值。比特币通过灵活调整随机数搜索的难度值,来控制区块的平均生成时间为10分钟左右。
分布式存储
区块链是一种点对点网络上的分布账本,每个参与的节点都将独立完整地存储写入区块数据信息。
分布式存储区别于传统中心化存储的优势主要体现在两个方面:
1、每个节点上备份数据信息,避免了由于单点故障导致的数据丢失。
2、 每个节点上的数据都独立存储,有效规避了恶意篡改历史数据。
智能合约
智能合约允许在没有第三方的情况下进行可信交易,只要一方达成了协议预先设定的目标,合约将会自动执行交易,这些交易可追踪且不可逆转。具有透明可信、自动执行、强制履约的优点。
智能合约是区块链的核心构成要素,是由时间驱动的、具有状态的、运行在可复制的共享区块链数据账本上的计算机程序,能够实现处理数据,接受、存储和发送价值,以及控制和管理各类链上智能资产等功能。智能合约作为一种嵌入式程序化合约,可以内置在任何区块链数据、交易和资产上,形成可编程控制的软件定义的系统、市场和资产。智能合约为传统金融的发行、交易、创造和管理提供了创新性的解决方法,而且在社会系统中的资产管理、合同管理、监管执法等事务中发挥重要作用。
智能合约经各方签署后,以程序代码的形式附着在区块链数据(如一笔 比特币交易)上,经过P2P网络传播和节点验证后记入区块链的特定区块中。
智能合约具有自治,自足和去中心化等特征。自治表示合约一旦开始就自动执行,不需要其他签署方干预。自足是合约能够通过提高服务或发行资金来获取资金,并且在需要时使用这些资金。去中心化是智能合约是由去中心化存储和验证的程序代码而非中心化实体来保障执行的合约,能保证合约的公平公正。
区块链和智能合约的主要发展趋势是由自动化向智能化方向演化。现在的各类智能合约的本质是根据预定义场景的“if-then”类型的条件响应规则,能够满足目前自动化交易和数据处理的需求。未来的智能合约应该根据未知场景的“what-if”推演,能自主决策,真正实现“智能”合约的飞跃。
挖矿
挖矿即为竞争区块的合法记账权,只有通过一定的工作量证明才可以得到区块的记账权。用计算机反复计算区块头,直到得到满足要求的解,即可得到这区块的记账权,也就是挖到了矿。
具体方法:用SHA256算法不断对区块头和一个随机数字Nonce进行计算,直到计算出一个哈希值比预设值Bits小或者与其相等。第一个找到Nonce解的矿工会获得此区块的记账权,并且将此区块广播到系统中让其他节点进行验证。
挖矿难度由比特币网络自动调整,实现每十分钟产生一个区块的平衡。
区块链的建立
1、新的交易向全网节点广播
2、每个节点将交易都写到一个区块中
3、每个节点都在新的区块上进行计算,寻找一个工作量证明解
4、某个节点找到工作量证明解时,将打包的区块向全网广播
5、其他节点收到广播的这个区块后对其进行验证,只有所有交易都被验证是有效的且未被使用的之后,该区块才能被认可
6、每个节点都将此区块的哈希值作为父哈希值来进行下一区块的计算,表示节点认可此区块有效
注意:一般一笔交易需经过至少6次确认(在此区块之后产生一个区块就是一次确认),才能在区块链上认为是合法交易。
区块链的类型
公有链
是指任何个体或者团体都公用一条区块链,只要接入此链都可以在上面发送交易,并且交易能够获得该区块链的有效确认,任何团体或者个人都可以参与其共识过程。是完全去中心化的,分布式系统中的各节点均可参与数据的读写、验证和共识过程。
联盟链
是指共识过程受到某些预选节点控制的区块链。由该行业集体内部首先指定多个预选节点为记账人,每个区块的生成是由所有的预选节点共同决定的(预选节点决定区块链共识),其他节点只能接入区块链负责交易,但是不参与共识过程。是部分去中心化的。
私有链
仅仅使用区块链技术记账,不对外开放。对象可以是一个公司也可以是个人,单独拥有此区块链的写入权限。既应用到了区块链的特性,又能保证安全。通常是在特定机构内用于内部数据管理与审计。
区块链的特性
-
可靠开放性
区块链的设计使得能够有效预防故障与攻击(51%攻击除外) -
信息透明性
任意节点都可以查看整个账本 -
不可更改性
采用完全冗余的策略,所有节点都有一份完整数据,由于不可能保证所有节点的数据均被修改,因此降低了欺诈的风险。区块链利用加密技术来验证与存储数据、利用分布式共识算法来新增和更新数据,区块链需要各节点参与验证交易和出块;修改任一数据需要变更所有后续记录,修改单节点数据难度极大。 -
不可逆转性
交易不可撤销 -
集体维护性
区块链去中心化的特征决定了它的集体维护性。传统中心化机构通常要身兼三职:数据存储者、数据管理者和数据分析者,区块链则以对等的方式由各参与方共同维护,各方权责明确,无需向第三方机构让渡权利,实现共同协作。
区块链的瓶颈
- 过大的完整账本的存储空间
- 信息分发采用全网广播
是一种洪泛式,要求网络性能好 - 交易效率低下
比特币交易效率受到区块产生时间和区块大小的影响,比特币交易效率为7笔/秒,不适合处理实时交易 - 算力浪费
只有成功得到区块合法记账权的节点得到奖励,其他节点都是无用功 - 节点升级成本高
区块链的应用
在金融应用的五大场景
- 数字货币:提高货币发行便利性
- 跨境支付与结算:实现点对点交易,减少向中介方支出的费用
- 票据与供应链金融服务:减少人为介入,降低成本及操作风险
- 证券发行与交易:实现实时资产转移,加速交易清算速度
- 客户征信与反欺诈:降低法律法规成本,防止金融犯罪
其他应用场景
- 存在性证明:由于区块链的不可篡改性,可以应用在存在性证明,把过去的某一状态存在区块链上,未来就可以证明在过去确实存在这一状态。
- 智能合约:把智能合约部署在区块链上,合约内容事先定好,达到合约中的某个条件时合约自动触发,执行合约中的内容可以免去现实生活中合约执行的一些苛刻条件,能在不信任的环境下执行合约。
- 身份验证:智能合约可以存储个人的身份信息,可以保存现有的身份状态,一旦身份信息被篡改就会触发一定的条款,身份所有者就会知晓。
- 预测市场:例如Augur,它是一个基于区块链技术的去中心化的预测市场的平台,任何人都可以随时访问Augur,可以消除中心化服务器的风险。
- 电子商务:把比特币无监管模式应用到电商,应用这一模式不仅能免去冗余的环节,还能达到市场和谐。
- 社交通讯:如去中心化通讯平台Gems,试图打破现有的社交媒体的模式,不仅社交公司可以赚钱,用户也能从中获利。
- 文件存储:基于区块链的存储技术将直接冲击甚至颠覆传统的云计算架构。区块链的高冗余存储、去中心化、高安全性和隐私保护等特点使其适合存储和保护重要的隐私,避免因为中心化机构遭受攻击或权限不当而造成的大规模数据丢失或泄露。
- 数据验证:区块链数据带有时间戳、由共识节点共同验证和记录、不可篡改和伪造,使得区块链可以广泛应用于各类数据公证和审计场景。
- 选举投票:投票是区块链在政治事物中的代表应用,基于区块链的分布式共识验证、不可篡改等特点,可以低成本高效地实现政治选举,股东投票等功能,也支持个人对特定议题的投票。
区块链未来发展趋势
(1) 产业渗透:虽然区块链的底层架构源于比特币,但作为一种通用技术,区块链正加速从数字货币向其他领域渗透,和各行各业创新融合。目前,金融服务、数字资产、慈善公益等行业纷纷投入到区块链应用的探索中,利用日志存证、信息追溯等特点,改变行业内原有的交易不公开透明等问题。。诸如医疗健康等涉及到大规模数据交互的行业,必将通过区块链技术实现数据的可信交易,破除现有的利益壁垒,打造一个全新的数据行业内外安全共享生态体系;
(2) 多中心化:区块链的核心并不是“为了去中心化而抛弃中心化管理”,而是构建多方信任机制。在未来,随着跨链技术的不断发展,区块链的架构将演变为多方共同参与的可信任体系。即在多方信息不对称、背景不清晰的情况下,构建多方赖以信任与合作的新生态。
(3) 技术融合:以云计算、大数据、物联网为代表的新一代信息技术正渗透进各行各业。未来区块链的发展必将以技术融合为切入点,共同解决单一技术的不足与难点,扩大应用场景,降低应用成本。以区块链与物联网结合为例,物联网是互联网在实体经济中的延伸,通过计算机技术实现物品与物品之间的信息交换与通信。区块链系统是典型的点对点网络,具有分布式异构特征,天然适合于在物联网中建立各主体的共识机制,制定交互规则,构建去中心化控制的交易网络。因此,如何通过区块链与其他技术的融合,实现产业创新,将成为区块链未来发展的重要课题。
(4) 标准规范:企业应用在未来将是区块链的主战场,联盟链将成为主流方向。与公有链不同,在企业级应用中,人们不仅关注通过软件和算法来构建信任基础,更重要的是如何从用户体验与业务需求出发,构建一套基于共识机制、权限管理、智能合约等多维度的生态规则。面对不断演进的区块链技术,同步考虑相应的技术标准和法律法规,增加区块链的可信程度,建立区块链的应用准则加强监管,防范风险。