区块链入门点

链客,专为开发者而生,有问必答!

此文章来自链客区块链技术问答社区,未经允许拒绝转载。
在这里插入图片描述

区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种的技术,它提供了一种去中心化,无需信任积累的信用建立范式。区块链本质上是一种对等网络(P2P)的分布式账本数据库,比特币的底层就是区块链技术架构,区块链本身其实是一串链接的数据区块,类似C里面的链表结构,块中有内容,指针指向下一个区块,其链接指针是采用密码学hash算法对区块头进行处理所产生的区块头哈希值,每一个数据块中记录了一组采用哈希算法组成的树状交易状态信息,这样保证每个区块内的交易数据不可篡改,区块链里链接的区块也不可篡改。

基本概念:

一个完整的区块链系统包含了很多技术,其中有储存数据的数据区块以及之上的数字签名,时间戳等技术,有作为支撑的P2P网络和维护系统的共识算法,有挖矿和工作量证明机制,有匿名交易机制和比特币钱包,链龄,UTXO,Merkle树,双花等相关技术。

1,数据区块:

比特币的交易记录会保存在数据区块之中,比特币系统中大约每10分钟会产生一个区块,每个数据区块一半会包含去块头(Header)和区块体(Body)两个部分。

区块链中则主要包含交易计数和交易详情。交易详情就是比特币系统中的记账本,每一笔交易都会被永远记入数据区块中,而且任何人都可以查询。区块体中的Merkle树将会对每一笔交易进行数字签名,,如此可以确保每一笔交易都不可伪造且没有重复交易。所有的交易将通过Merkle树的hash过程产生一个唯一Merkle根植记入去块头。

2,挖矿与分叉问题

区块在挖矿过程中产生。所谓挖矿,实际上是穷举随机数算法,把上个区块的哈希值加上10分钟内的全部交易单打包,再加上一i个随机数,算出一个256位的字符串哈希值,输入的随机数Nonce使哈希值满足一定条件就获得这个区块的交易记账权,信产生的区块需要快速的广播出去,以便其他节点进行验证,以防造假,每个区块存着上一个区块的哈希值,可以溯源到源头,只有经过验证后才最终获得区块的交易记账权,比特币系统会让挖矿的矿工竞争记账权(在主链上链接区块的权利),这个竞争机制就是工作量证明。

3,时间戳和不可篡改性

在比特币系统中,获得记账权的节点在链接区块时需要在区块头加盖时间戳,用于记录当前区块数据的写入时间。每一个随后区块中的时间戳都会对前一个时间进行增强,形成一个时间递增的链条。时间戳本身并没有多复杂,但在区块链技术中确实一个重大创新,时间戳为未来基于区块链的互联网和大数据增加一个时间维度,使得数据更容易追溯,重现历史也成为可能。

4,分布式数据库

比特币系统中的区块就像一个记账本一样,记录所有比特币的交易信息,每一个比特币用户的比特币收支情况都被永久地嵌入了数据区块中以供别人查询。这些数据区块中的交易数据存放在每一个比特币用户的客户端节点中,所有的这些节点则组成了比特币及其坚韧的分布式数据库系统。任何一个节点的数据库被破坏都不会影响整个数据库的正常运转,因为其他的健康节点都保存了完整的数据库。

5,UTXO交易模式

UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易过程中的基本单位。除创世区块以外,所有区块中的交易(Tx)会存在若干个输入(Tx_in,也称资金来源)和若干个输出(Tx_out,也称为资金去向),创世区块和后来挖矿产生的区块中给矿工奖励的交易没有输入,除此之外,在比特币系统中,某笔交易的输入必须是另一笔交易没使用的输出,同时这笔输入也需要上一笔输出地址所对应的私钥进行签名。

6,哈希函数

哈希函数在比特币系统中也有着重要的应用,区块链中的数据并不是只是原始数据或者交易记录,还包括它们的哈希数值,即将原始数据编码为特定长度的,由数字和字母组成的字符串后,记入区块链。哈希函数有着很多适合存储区块链数据的优点:

a,哈希函数处理过的数据是单向性的,通过处理过的输出值几乎不可能计算出原始的输入值;

b,哈希函数处理不同长度的数据所耗费的时间是一致的,输出值的结果也是定常的;

c,哈希函数的输入值即使只差一个字节,输出值的结果也会迥然不同,比特币系统中最常采用的哈希函数SHA256哈希函数,通俗来说就是将不同长度的原始数据用两次SHA256哈希函数进行处理,再输出长度256的二进制数字进行统一的识别和存储。

7,Merkle树

比特币区块链系统中采用的是Merkle二叉树,他的主要作用是快速归纳和校验区块数据的完整性,它将会区块链中的数据分组进行哈希运算,向上不断递归运算产生新的哈希节点,最终只剩下一个Merkle根存入区块头中,每个哈希或其哈希值。在比特币系统中使用Merkle树有诸多优点:首先是极大地提高了区块链的运作效率和可扩展性,使得区块头只需要包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高效地运行在智能手机甚至物联网设备上;

8,双重支付

双重支付问题又称为“双花”问题,即利用货币的数字特性用“同一笔钱”完成两次或者多次支付。在传统的金融和货币体系中,由于金钱货币是物理实体,具有客观唯一存在的属性,所以可以避免双重支付的情况。但在其他电子货币系统中,则需要可信第三方管理机构提供保证,比如Q币有腾讯承认,区块链技术则不需要第三方机构而只通过分布式节点之间的相互验证和共识机制,有效避免了双重支付的问题,在信息传输的同时完成了价值转移。

9,P2P网络

P2P网络是一种在对等者(peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式,因此,从字面上,P2P可以理解为对等计算或对等网络,迅雷就是采用P2P技术,而区块链系统是建立在IP通信协议和分布式网络的基础上的,它不依靠传统的电路交换,而是建立网络通信之上,完全通过互联网去交换信息,网络中所有节点具有同等的地位,不存在任何特殊化的中心节点和层级结构,每个节点均会承担网络路由,验证数据区块等功能,比特币网络现在大约有几十G,还在不断增长中。

10,加密算法

除了哈希算法外,比特币中还存在一种交易加密的非对称加密算法(椭圆曲线加密算法)。非对称加密算法指的就是存在一对数学相关的密钥,使用其中一个密钥进行加密的数据信息,只有使用另一个密钥才能对该信息进行加密,这对密钥中,对外公布的的密钥叫公钥,不公开的密钥叫私钥。打个比方,公钥就像银行账户,私钥就是密码。

猜你喜欢

转载自blog.csdn.net/weixin_44172023/article/details/92806157
今日推荐