当前位置:首页 > 资讯 > 区块链技术 > 正文

区块链从业者不可不看的底层技术和入门原理

发布:中币网   时间:2018-02-03 19:00:41   加入收藏 打赏

区块链底层技术原理入门只需要看懂这一篇文章就够了,文章详细描述了交易原理,区块生成,区块分叉的基本原理。

区块链从业者不可不看的底层技术和入门原理

区块链技术是什么?这是一个很难通俗解释的话题,它是一个几乎所有人都尚未看清其未来的技术,仍在快速发展之中。

互联网上的贸易,几乎都需要借助可资信赖的第三方信用机构来处理电子支付信息。这类系统仍然内生性地受制于“基于信用的模式”。

区块链从业者不可不看的底层技术和入门原理

区块链技术是构建比特币区块链网络与交易信息加密传输的基础技术。它基于密码学原理而不基于信用,使得任何达成一致的双方直接支付,从而不需要第三方中介的参与。

区块链从业者不可不看的底层技术和入门原理

区块链技术的特征

开放&共识

任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点间基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。

去中心&去信任

区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其它节点。

交易透明&双方匿名

区块链的运行规则是公开透明的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。

不可篡改&可追溯

单个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。

什么是节点网络?

任何机器都可以运行一个完整的比特币节点,一个完整的比特币节点包括如下功能:

  1. 钱包:允许用户在区块链网络上进行交易

  2. 完整区块链:记录了所有交易历史,通过特殊的结构保证历史交易的安全性,并且用来验证新交易的合法性

  3. 矿工:通过记录交易及解密数学题来生成新区块,如果成功可以赚取奖励

  4. 路由功能:把其它节点传送过来的交易数据等信息再传送给更多的节点

区块链从业者不可不看的底层技术和入门原理

交易过程

区块链从业者不可不看的底层技术和入门原理

  1. 新交易创建:所有者A利用他的私钥对前一次交易(比特货来源)和下一位所有者B签署一个数字签名,并将这个签名附加在这枚货币的末尾,制作成交易单

  2. P2P网路传播:A将交易单广播至全网,比特币就发送给了B,每个节点都将收到的交易信息纳入一个区块中

  3. 交易验证:每个节点通过解一道数学难题,从而去获得创建新区块权利,并争取得到比特币的奖励(新比特币会在此过程中产生)

  4. 验证结果传播:当一个节点找到解时,它就向全网广播该区块记录的所有盖时间戳交易,并由全网其他节点核对

  5. 交易写入账本:全网其他节点核对该区块记账的正确性,没有错误后他们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账的区块链。

每个区块的创建时间大约在10分钟。随着全网算力的不断变化,每个区块的产生时间会随算力增强而缩短、随算力减弱而延长。其原理是根据最近产生的2016年区块的时间差(约两周时间),自动调整每个区块的生成难度(比如减少或增加目标值中0的个数),使得每个区块的生成时间是10分钟。

区块链&区块

区块链以区块为单位组织数据。全网所有的交易记录都以交易单的形式存储在全网唯一的区块链中。

区块是一种记录交易的数据结构。每个区块由区块头和区块主体组成,区块主体只负责记录前一段时间内的所有交易信息,区块链的大部分功能都由区块头实现。

区块链从业者不可不看的底层技术和入门原理

区块头

区块链从业者不可不看的底层技术和入门原理

  • 版本号,标示软件及协议的相关版本信息

  • 父区块哈希值,引用的区块链中父区块头的哈希值,通过这个值每个区块才首尾相连组成了区块链,并且这个值对区块链的安全性起到了至关重要的作用

  • Merkle 根,这个值是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值,主要用于检验一笔交易是否在这个区块中存在

  • 时间戳,记录该区块产生的时间,精确到秒

  • 难度值,该区块相关数学题的难度目标

  • 随机数(Nonce),记录解密该区块相关数学题的答案的值

区块形成过程

在当前区块加入区块链后,所有矿工就立即开始下一个区块的生成工作。

  1. 记录:把在本地内存中的交易信息记录到区块主体中

  2. 生成:在区块主体中生成此区块中所有交易信息的 Merkle 树,把 Merkle 树根的值保存在区块头中

  3. 填入父哈希值:把上一个刚刚生成的区块的区块头的数据通过 SHA256 算法生成一个哈希值填入到当前区块的父哈希值中

  4. 时间保存:把当前时间保存在时间戳字段中

  5. 难度系数:难度值字段会根据之前一段时间区块的平均生成时间进行调整以应对整个网络不断变化的整体计算总量,如果计算总量增长了,则系统会调高数学题的难度值,使得预期完成下一个区块的时间依然在一定时间内

区块链从业者不可不看的底层技术和入门原理

为了将产出速率恒定在十分钟,中本聪还设计了难度系数的动态调节机制。他规定,难度系数每两周(2016个区块)调整一次。如果这两周里面,区块的平均生成速度是9分钟,就意味着比法定速度快了10%,因此难度系数就要调高10%;如果平均生成速度是11分钟,就意味着比法定速度慢了10%,因此难度系数就要调低10%。

难度系数越调越高(目标值越来越小),导致了采矿越来越难。

区块链的分叉

同一时间段内全网不止一个节点能计算出随机数,即会有多个节点在网络中广播它们各自打包好的临时区块(都是合法的)。

区块链从业者不可不看的底层技术和入门原理

某一节点若收到多个针对同一前续区块的后续临时区块,则该节点会在本地区块链上建立分支,多个临时区块对应多个分支。该僵局的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。其他分支将会被网络彻底抛弃。

名词解释

数字签名

数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定消息的完整性。

SHA256

一种求Hash值的加密算法。

将任何一串数据输入到SHA256将得到一个256位的Hash值(散列值)。其特点:相同的数据输入将得到相同的结果。输入数据只要稍有变化(比如一个1变成了0)则将得到一个千差万别的结果,且结果无法事先预知。正向计算(由数据计算其对应的Hash值)十分容易。逆向计算(俗称“破解”,即由Hash值计算出其对应的数据)极其困难,在当前科技条件下被视作不可能。

Merkle Tree

一种哈希二叉树,使用它可以快速校验大规模数据的完整性。在比特币网络中,Merkle 树被用来归纳一个区块中的所有交易信息,最终生成这个区块所有交易信息的一个统一的哈希值,区块中任何一笔交易信息的改变都会使得使得 Merkle 树改变。

时间戳服务器

大多用来进行比对以及验证处理,时间戳服务器是一款基于PKI(公钥密码基础设施)技术的时间戳权威系统,对外提供精确可信的时间戳服务。它采用精确的时间源、高强度高标准的安全机制,以确认系统处理数据在某一时间的存在性和相关操作的相对时间顺序,为信息系统中的时间防抵赖提供基础服务。

来源:




来源:中币网  https://www.zhongbi.net/news/jishu/2088.html
声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。