赞
踩
文献名称:区块链技术与应用前瞻综述
作者:何蒲 于戈 张岩峰 鲍玉斌(东北大学计算机科学与工程学院 沈阳110819)
网址:http://www.cnki.com.cn/Article/CJFDTOTAL-JSJA201704002.htm
区块链技术是一种去中心化、去信任化的分布式数据库技术方案。该数据库由参与系统的所有节点集体维护,具有去中心化、不可篡改、透明、安全等特性。
作为比特币的底层技术支持
区块链技术是构建比特币系统的基础技术。区块链记录着所有元数据和加密交易信息,从而建立了一个完全通过P2P技术实现的电子现金系统,此系统使得在线支付的双方不用通过第三方金融机构而直接进行交易。
区块链技术不是一项创新的技术,是将许多已有的跨领域的学科整合到一起,涉及密码学,数学,计算机科学等领域。是最有潜力触发第五轮颠覆性革命浪潮的核心技术
哈希算法将任意长度的输入值映射为较短的固定长度的二进制的值。
数据的哈希值可以检验数据的完整性,一般用于快速查找和加密算法
默克尔树在验证、文件对比中应用比较多,特别是在分布式环境下,默克尔树会大大减少数据的传输量和计算的复杂度
默克尔树支持快速地归纳和校验区块中交易的完整性与存在性
系统给交易盖上准确的时间戳,以验证交易确实发生,交易中的资金所属权已经转移,再次使用这笔资金就会报错,解决了重复支付问题
具有耐攻击、高容错的优点
公钥加密,私钥解密
私钥签名,公钥验证
比特币系统中公钥由私钥通过椭圆曲线加密算法生成
交易中有正确的数字签名才能验证交易有效
1、区块链是一种分布式数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块包含一次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块
2、区块链由包含一系列加盖了时间戳的有效交易的区块组成。每一个区块都包含了前一个区块的哈希值,这样就把区块联系在一起。每一个随后的区块都是对之前区块的增强
3、区块链是由一串使用密码学方法产生的数据库组成的,每一个区块包含了上一个区块的哈希值。每一个区块都由时间顺序在上一个区块之后产生。
区块链具有去中心化、去信任化、开放、信息不可更改、匿名、自治的特性
区块链是一种电子记录形式的账簿,每一个区块算是账簿的一页。每个区块包含了当前一段时间内的所有交易信息和区块元数据
行业链结合了公有链的完全开放和私有链的高度集中,提供了一种混合折中的模式。私有链由于完全限制的写入权限和高度受限的读取权限,对于保护个人隐私非常合适。
将区块中所有交易记录都进行两次哈希运算,得到的结果作为默克尔树的叶子节点,然后递归两个相邻节点的哈希值,直到得到最后一个哈希结果,此哈希值即为默克尔树的根
挖矿就是寻找一个满足条件的Nonce值
每个区块有两个标识符:区块头哈希值和区块的高度。
区块的主标识符是它的区块头哈希值,通过对区块头6个字段进行两次SHA256哈希计算得到数字签名,产生的256位的值被称为区块头哈希值,简称为区块哈希值
第二个标识符是区块高度,创始区块的高度为0,通过识别该区块在区块链中的深度来确定一个区块。每一个之后产生的区块都比当前区块的高度高出一个位置。
区块链系统的运行原理
1、节点发送交易
2、输出
3、刷新节点:所有节点接收和验证交易:
4、创建区块:所有节点计算一个哈希值:
5、循环
if hash{block header} < Bits
转至步骤2
新的交易向全网节点广播
每个节点将交易都写到一个区块中
每个节点都在新的区块上进行计算,寻找一个工作量证明解
某个节点找到工作量证明解时,将所在区块向全网广播
其他节点收到广播的这个区块后对其进行验证,只有所有交易都被验证是有效的且未被使用的之后,该区块才能被认可
每个节点都将此区块的哈希值作为父哈希值来进行下一区块的计算,表示节点认可此区块有效
一般一笔交易需经过至少6次确认(在此区块之后产生一个区块就是一次确认),才能在区块链上认为是合法交易
挖矿即为竞争区块的合法记账权,只有工作量证明可以得到该记账权。用计算机反复计算区块头,直到得到满足要求的解,即可得到这区块的记账权,也就是挖到了矿
具体方法:用SHA256算法不断对区块头和一个随机数字Nonce进行计算,直到计算出一个哈希值比预设值Bits小或者与其相等。第一个直到解的矿工会获得此区块的记账权,并且将此区块广播到系统中让其他节点进行验证
挖矿难度由比特币网络自动调整,实现每十分钟产生一个区块的平衡。
区块分叉:当下一个区块产生的时候,各个节点选择难度最长的链作为正确链,放弃难度较短的链,此时分叉消失。
以太坊是一个平台和一种编程语言,使开发人员能够建立和发布下一代分布式应用
目的是为建立去中心化的应用创建一种可替代的协议,给一大类的去中心化的应用程序提供一组不同的平衡机制,这对需要快速开发、安全性要求低、很少使用的应用程序以及在不同的应用之间能有效互动很重要
在以太坊上创建应用的成本大大减少、速度大大提高
以太坊通过一种图灵完备的脚本语言(Ethereum Virtual Machine Code, EVM语言)来创建应用,类似于汇编语言,但是编写以太坊应用并不需要直接使用EVM,而是使用Solidity类编程语言,再通过编译器转换成EVM语言供以以太坊平台使用。
开发者可以通过以太坊这一平台创建自己的区块链应用
以太坊有三种应用:
Hyperledger是Linux基金会于2015年发起的旨在推进区块链技术发展的开源项目。它领导全球各行业,包括金融,银行,物联网,供应链,制造以及技术领域等,在区块链技术上进行合作,建立一个开放平台,以满足来自各行各业的不同需求,并且简化业务流程
Blockchain Explorer旨在为Hyperledger创建一个用户友好型的Web应用程序,用以查看/查询区块、事务和关联数据、网络信息(名称、状态、节点列表)、链码/事务族(查看/调用/部署/查询)以及存储在账本中的任何其他相关信息。
智能合约:一个智能合约是计算机协议,它促进、验证或者执行合约的协商或者履行,或使合约条款不必要。当满足一个预先编号的条件时,智能合约就被触发执行相应的条款
区块链重新定义了智能合约:智能合约是由事件驱动的、具有状态的、运行在一个可复制和可共享的账本上、且能够保管账本上资产的程序
Storj云存储,利用区块链搭建的去中心化云存储系统
区块链在金融应用的五大场景:
1. 数字货币:提高货币发行便利性
2. 跨境支付与结算:实现点对点交易,减少之间费用
3. 票据与供应链金融服务:减少人为介入,降低成本及操作风险
4. 证券发行与交易:实现实时资产转移,加速交易清算速度
5. 客户征信与反欺诈:降低法律合规成本,防止金融犯罪
区块链现有的其他应用场景:
1. 存在性证明:由于区块链的不可篡改性,可以应用在存在性证明,把过去的某一状态存在区块链上,未来就可以证明在过去确实存在
2. 智能合约:把智能合约部署在区块链上,合约内容实现定好,达到合约中的某个条件时合约自动触发,执行合约中的内容可以免去现实生活中合约执行的一些苛刻条件,能在不信任的环境下执行合约
3. 身份验证:智能合约可以存储个人的身份信息,可以保存现有的身份状态,一旦身份信息被篡改就会触发一定的条款,身份所有者就会知晓
4. 预测市场:例如Augur,它是一个基于区块链技术的去中心化的预测市场的平台,任何人都可以随时访问Augur,可以消除中心化服务器的风险
5. 电子商务:把比特币无监管模式应用到电商,应用这一模式不仅能免去之间冗余的环节,还能达到市场和谐。例如OpenBazaar直接利用比特币进行交易
6. 社交通讯:如去中心化通讯平台Gems,试图打破现有的社交媒体的模式,不仅社交公司可以赚钱,用户也能从中获利
7. 文件存储:基于区块链的存储技术将直接冲击甚至颠覆传统的云计算架构
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。