代码改变世界

区块链学习之一:区块链技术与基本原理

2019-09-17 20:09  fighter324  阅读(3205)  评论(0编辑  收藏  举报

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

基本含义

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

区块链系统与结构:

基础架构模型:

一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 

  • 数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;
  • 网络层则包括分布式组网机制、数据传播机制和数据验证机制等;
  • 共识层主要封装网络节点的各类共识算法;
  • 激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;
  • 合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;
  • 应用层则封装了区块链的各种应用场景和案例。

该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点

区块结构:

大小                           字段                描述 

4字节                       区块大小    用字节表示的该字段之后的区块大小 

80字节                     区块头       组成区块头的几个字段 

1-9 (可变整数)   交易计数器  交易的数量 

可变的                    交易            记录在区块里的交易信息

 

区块链体系结构的核心优势:

  1. 任何节点都可以创建交易,在经过一段时间的确认之后,就可以合理地确认该交易是否为有效,区块链可有效地防止双方问题的发生。 
  2. 对于试图重写或者修改交易记录而言,它的成本是非常高的。 
  3. 区块链实现了两种记录:交易(transactions)以及区块(blocks)。交易是被存储在区块链上的实际数据,而区块则是记录确认某些交易是在何时,以及以何种顺序成为区块链数据库的一部分。交易是由参与者在正常过程中使用系统所创建的(在加密数字货币的例子中,一笔交易是由bob将代币发送给alice所创建的),而区块则是由我们称之为矿工(miners)的单位负责创建。

区块链的基本特征:

  1. 去中心化:由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。
  2. 开放性:系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
  3. 自治性:区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。
  4. 信息不可篡改:一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
  5. 匿名性:由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自己产生信任,对信用的累积非常有帮助。

区块链分类:公有区块链、私有区块链、行业区块链

公有区块链((PublicBlockChains))是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。

行业区块链((ConsortiumBlockChains)):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。

私有区块链((privateBlockChains)):仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。

区块链的应用行业——物联网

应用场景分析:

1.通过 Transaction 产生对应的行为,为每一个设备分配地址 Address,给该地址注入一定的费用,可以执行相关动作,从而达到物联网的应用。类似于:PM2.5监测点数据获取,服务器 租赁,网络摄像头 数据调用,DNS服务器 等。

2. 随着物联网设备的增多,Edge 计算需求的增强,大量设备之间需要通过分布式自组织的管理模式,并且对容错性要求很高。区块链自身分布式和抗攻击的特点可以很好地试用到这一场景中。

物流供应链:

供应链行业往往涉及到诸多实体,包括物流、资金流、信息流等,这些实体之间存在大量复杂的协作和沟通。传统模式下,不同实体各自保存各自的供应链信息,严重缺乏透明度,造成了较高的时间成本和金钱成本,而且一旦出现问题(冒领、货物假冒等)难以追查和处理。

——通过区块链各方可以获得一个透明可靠的统一信息平台,可以实时查看状态,降低物流成本,追溯物品的生产和运送整个过程,从而提高供应链管理的效率。当发生纠纷时,举证和追查也变得更加清晰和容易。

公共网络服务:

现有的互联网能正常运行,离不开很多近乎免费的网络服务,例如域名服务(DNS)。任何人都可以免费查询到域名,没有 DNS,现在的各种网站基本就无法访问了。因此,对于网络系统来说,类似的基础服务必须要能做到安全可靠,并且低成本。

区块链技术恰好具备这些特点,基于区块链打造的 DNS 系统,将不再会出现各种错误的查询结果,并且可以稳定可靠的提供服务。

区块链核心技术:

区块链主要解决的交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:

  • 第一个叫分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。不同于传统的中心化记账方案,没有任何一个节点可以单独记录账目,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。另一方面,由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
  • 第二个叫做对称加密和授权技术存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
  • 第三个叫做共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能。
  • 最后一个技术特点叫智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔。