区块链入门理解(20180205)-阿里云开发者社区

开发者社区> 安全> 正文
登录阅读全文

区块链入门理解(20180205)

简介:

区块链(Blockchain)是与比特币相关的一个概念,《2014—2016全球比特币发展研究报告》提到区块链是比特币的底层技术和基础架构。本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

       首先简单介绍一下比特币。比特币可以简单理解为流通于互联网世界的、以P2P形式存在的数字货币,整个比特币系统是一个去中心化的支付系统。比特币是由分布在全世界的大量计算机按照一定规则计算,然后每隔10分钟左右随机选择一台计算机产生。比特币的产生速率是固定的,每隔4年左右会减半,直到2140年完全停止生产,总量为2100万个。

       然后简要介绍一下区块链。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

       区块链技术的核心有:1.分布式存储,通过多地备份,制造数据冗余;2.让所有人都有能力去维护同一份数据库;3.让所有人都有能力彼此监督维护数据库的行为。整个区块链系统的分级构造如下:

A48L96mFQjrWAAAAAElFTkSuQmCC

       (1)节点:来自全球各地的掘金者在当地部署了自己的服务器,并连接到区块链网络中,成为这个分布式数据库存储系统中的一个节点;

       (2)区块:区块可以理解为一个盒子,它里面装的是交易信息(一条可视为一张纸片)。区块在被创造出来之后就被埋在了地下,会由某一个计算节点(记为节点A)将某一个区块挖出,一旦被挖出,A节点将会获得:1.由系统提供的挖掘比特币奖励(若比特币未发行完);2.区块中交易信息的交易发起者所支付的交易费用(小费)。同时,只有A节点才有权利记录小纸条(交易信息)中的内容,其余节点只能使用其副本(复制品),即没有数字货币加持的版本。当A节点挖掘出某个区块时,基于陌生节点彼此不信任的原则,其余节点需要通过A节点所挖掘出区块的副本进行检验(节点对区块的检验),判断结果是否有效。

       (3)交易信息:可以抽象为发起交易时生成一张小纸条,小纸条上至少有“输入值”(记录数字货币的有效来源)和“输出值”(记录数字货币要发往的对象)这两个字段,如“盗盗转给张三40元”。

    P+oSqkPKlc8fAAAAAElFTkSuQmCC

       (可以就把输出值看作这条交易信息的名字)  

区块链世界里规定:每一条交易记录,必须有能力追溯到交易发起者 发起这笔交易、其中所涉及金额的上一笔全部交易信息;即这笔钱从何而来的问题。就好比可以在支付宝的数据库中查到每一笔交易的钱的来源和去向。

       接下来看一下区块链的世界中如何通过交易信息完成转账。大致分为以下三个步骤:

       (1)判断是否有足够的余额完成交易:若这笔交易的发起者为N,那就追溯所有 “输出值”中收款者是N的交易记录,把“输出值”中所有金额简单相加,若大于等于该笔交易金额,则将这些有效交易记录合并形成新的交易记录;

       (2)判断是否需要找零:若(1)中“输出值”所有金额相加后大于该笔交易金额,则需要将多出部分的金额重新支付给自己(相当于找零),这也会生成一条全新的交易记录;

       (3)发出去,让全球所有节点认同和备份小纸条。相当于交易发起节点N将装有小纸条的盒子(区块)埋到地下,并等待全球的其它节点来挖。一旦该区块被挖出来,并且该区块最终被连接到了区块链的主链上,那么该交易的收款者最终拥有这条交易记录。值得注意的一点是:拥有交易记录=拥有数字货币。

       记录着交易信息的小纸条借助着区块这个载体在分布式网络中传递,节点对区块的检验内容实际上有:(1)检验区块内的交易记录签名是否准确(是否被篡改);(2)检验区块内的交易记录输入值是否“有效”(是否使用过);(3)检验区块内的交易记录输入值的数字之和是否大于等于输出值的数字。检验流程如下: