终端数据防泄漏:区块链时代,概念深入讲解系列之一

区块链是一种在对等网络环境下,通过透明和可信规则,(按照时间戳顺序)构建不可伪造、不可篡改和可追溯的块链式数据结构,实现和管理事务(或称交易)处理的模式。实际上,它是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。作为一种创新的应用模式,区块链具有分布式对等、数据块链式、不可伪造和防篡改、透明可信、高可靠性等关键特征。用户可以对链上数据执行交叉验证以防止欺诈,虽然可以对本地数据进行删除和修改(恶意节点行为),但是不会影响全网共识后的数据一致性(只能防止一定比例的恶意节点)。同时,还出现了非链式的DAG、Hashgraph等区块链系统。

区块链有哪些分类?

根据不同的应用场景与设计体系,区块链可以采用对应的开放共享与节点权限方案,包括如下三种区块链部署类型:

  • 公有链:任意区块链服务客户都可以使用,任意节点均可接入,由所有节点共同参与共识和读写数据,具有较强的去中心化特征,如比特币和以太坊;

  • 联盟链:只有利益相关的特定区块链服务客户才能使用,节点只有经过授权许可后方可接入网络,接入节点按照规则参与共识和读写数据,具有较弱的去中心化的特征,如Hyperledger Fabric;

  • 私有链:仅由单个区块链服务客户使用,仅有授权的节点才能接入,并按照规则参与共识和读写数据。

区块链上记录的区块对象是打包了一段时间内发生的交易与状态的集合。交易是指每次改变状态变化的操作,并拥有唯一的交易标识(如哈希值)。同时,区块头部保存了上一个区块的哈希值、当前区块的哈希值等信息,通常以一种链式结构保存所有的区块结构。事实上,区块链是通过现代密码学与分布式共识机制等技术来确保交易可信,而不是通过大型中心化信用机构解决信任背书问题。

区块链的主要技术

目前,区块链系统包括共识机制、安全机制、存储机制、P2P通信机制、智能合约等核心技术。

共识机制

共识机制是一个经典的分布式计算领域问题。在区块链系统中,共识机制是指实现不同信任主体节点之间建立信任、获取权益的数学算法,提供给分布式网络参识节点以用于确认交易动作引起的账本中的状态数据变化,并且能够达成最终一致性。即使出现节点故障或不可信节点等情况,区块链系统上已经发生的交易也能够按照正确的预期方式执行,而不会出现全网节点数据与账本状态不一致的情况。目前,常见的共识机制包括PoW、PoS、DPoS、PBFT等,它们在合规监管、性能效率、资源消耗以及容错性等方面都有各自不同的特点。鉴于共识机制对区块链系统性能的影响至关重要,很多研究都对此进行了深入探讨,并针对区块链应用特点不断进行改进与完善。

安全机制

区块链中采用了现代密码学中的哈希算法、对称加密算法、非对称加密算法等来保证数据机密性、完整性、抗抵赖性等安全特性。

(a)哈希算法

哈希算法可以将任意长度的消息明文转换映射为固定长度的二进制串输出,称为哈希值或散列值,又称为该消息的指纹(fingerprint)或摘要(digest)。即使两个消息只差一个字符,在经过哈希函数计算之后,它们所产生的字符串也会十分杂乱随机且完全不存在任何关联性,被广泛应用于检测签名有效性与完整性的场景中。

(b)对称加密算法

对称加密算法中加密与解密的密钥是相同的,速度快且占用空间小,加密强度高,但缺点是密钥一旦泄露就无法继续保持当前系统的安全性,且必须解决如何安全地提前分发密钥问题。

(c)非对称加密算法

非对称加密算法为用户提供一组对应的公开密钥和私有密钥。任何人都可以使用公钥对数据进行加密,只有用户能使用自己的私钥解密,任何未授权的用户包括发送者都无法解密该信息。同时,用户可以使用私钥对信息进行签名,任何人都可以用该用户公开的公钥检验该信息签名的身份,即验证该信息是否由指定用户签名,其身份具有不可否认性,从而使得签名具有不可伪造是否由指定用户签名,其身份具有不可否认性,从而使得签名具有不可伪造性。由于加密和解密时使用的密钥是不同的,因此,这类公钥密码算法也称为非对称密码算法。

存储机

区块链数据通常存储在包括KV键值型数据库、关系型数据库、普通文件等中。其中,KV键值型数据库中数据结构与接口都比较简单,具有很高的读写性能与良好的可扩展性,能支持大规模并发键值对数据的读写请求,支持基本增删改查功能,通常不支持复杂SQL功能与强事务性,无法快速执行范围查询等统计功能。为了获得高性能、低延迟与高吞吐量,目前还出现了分布式内存型的KV键值型数据库,如Redis等,它们通过在内存中维护大量的哈希表来存储关键字及指向键值对的指针,利用并发与索引优化,支持内存数据的高效查询、插入与更新操作。同时,还涌现出了TiDB等新型分布式KV键值型数据库,其支持SQL语句的高效复杂查询,包括范围查询、Join查询支持等,提供接近线性的系统扩展能力与实时并发写入能力。区块链平台常用的KV键值型数据库包括LevelDB、CouchDB、BerkeleyDB等,用于保存区块链中的区块索引信息、状态数据等键值对类型的数据。Hyperledger Fabric还使用普通文件存储原始的账本区块数据,将共识后的区块数据按protocol buffer编码格式序列化为二进制字节数组后,写入文件进行持久化保存。

P2P通信机制

 区块链网络通常采用P2P(Peer to Peer)协议,节点之间直接通过交换方式共享信息,又被称为对等计算。P2P网络中的每个节点地位平等,不需要中心服务器节点来分配任务,每个节点可同时作为服务提供者与服务请求者。这种分布式架构避免了集中式架构中心节点的性能瓶颈,可以有效利用网络节点的性能与网络带宽,从而提升系统的整体效率。同时,还可以根据需求扩展节点规模,具有良好的可扩展性与负载均衡能力。例如,BitTorrent是基于P2P技术共享大文件并进行内容分发的典型平台,每个用户节点在下载文件的同时又不断为其他用户节点提供上传已经下载的数据。

智能合约

1994年密码学家Nick Szabo提出了“智能合约”的概念,即一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议,它是一种用计算机语言取代法律语言去记录条款的合约。Nick Szabo希望能够在互联网上结合现实社会中已有的合约法律法规以及商业实践,将线下商业活动“搬迁”到互联网上进行。可以说,智能合约就是部署在区块链系统虚拟机上能够自动运行与验证的协议程序,不需要人为干预触发操作,具有一定的自治性、强制性与自我验证功能。


在区块链技术领域,智能合约是指基于预定事件触发、不可篡改、自动执行的计算机程序。虚拟机是区块链系统中运行智能合约的执行环境,如EVM(以太坊虚拟机)提供了图灵完备的虚拟机,通常将用户编写的Solidity语言程序编译成EVM字节代码后再调用运行,而比特币交易系统只是设计了一个不具备图灵完备性的堆栈式脚本引擎,支持锁定脚本与解锁脚本。Hyperledger Fabric采用Docker容器等作为智能合约执行的虚拟机,所有智能合约(Hyperledger Fabric称之为chaincode,即链上代码或链码)都必须实现Init()与Invoke()方法。

区块链技术通过去中心化方式建立起点对点的信任关系,可能会影响甚至改变决定人类社会组织形式与现象的基本作用力,包括生产力水平、生产资料和生产成果的分配总量与速率、权力的中心化程度等,尤其是弱化了权力集中与运作方式,直接改变了生产资料和生产成果的分配方式,进一步提高了生产力水平。因此,人们普遍认为区块链技术具备改变当前很多领域的潜力,可以与电力、互联网等技术革命相提并论,甚至被《华尔街日报》誉为五百年来最具影响力的金融创新之一。与此同时,区块链已经成为社会与科研人员关注的热点,在金融服务、供应链管理、文化娱乐、智能制造、社会公益、教育就业、医疗健康等垂直领域都引起了人们的广泛关注和强烈兴趣。


2021年9月22日 10:05