- 区块链技术
区块链本质上是一个P2P的分布式账本数据库。区块链本身是一串连接的数据区块,每一个数据块中记录了一宗采用哈希算法组成的树状交易信息。
- 基本概念
1,数据区块
区块链系统中的所有交易都会保存在数据区块中,在比特币的系统中,大约每10分钟产生一个数据区块,每个数据区块都包含区块头和区块体:
每一个数据区块中,都包含一个时间戳Timestamp,一个随机数Nonce,前一个区块的哈希值Prev-block,和当前区块保存的交易数据。
区块体中记录了交易的数目以及交易的详情,其中的Merkle会对每一次交易进行签名,保证每一笔交易都不可伪造,重复。
2. 挖矿与分叉
挖矿实际上就是穷举随机数算法,把上一个区块的哈希值,加上10分钟内产生的所有交易打包,再加上一个随机数,算出一个256位的哈希值,输入的随机数Nonce满足一定条件就可以获取记账权。新产生的区块会迅速的广播出去,接受其他节点的验证,验证通过后就可将区块加到链尾。
比特币系统会让矿工竞争记账权(在主链上链接区块),这个竞争机制就是POW工作量证明。这种机制会消耗大量的资源和时间,付出工作量多,获得几张券的概率就越大。在创建好新的区块后,矿工也会获得系统的奖励。
分叉是在不同的两个矿工几乎同时挖出两个新的区块的情况下,在主链上就会出现分叉,系统不会立马确认哪个区块不合理,而总是选择后续的矿工累积工作量证明最大的区块,并自动抛弃分叉的短链,以更长的链最为主链。
一般都是选择最先达到6个区块的链最为主链。
3. 时间戳和不可篡改性
时间戳是在获取记账权的节点在链接区块时,向区块中写入的时间戳, 用于记录当前区块的写入时间。每一个后续区块的时间戳总比前一个时间戳大,形成时间递增的链条,使得数据更加容易追溯,同时能够证明特定的数据在特定的时刻的确存在,保证了数据不可篡改和不可伪造。
4. 分布式数据库
每一个数据区块就是一个账本,记录了每一个用户每一次的交易信息。因此,所有的这些区块组成了区块链贱人的分布式数据库系统,任何一个节点的数据被破坏,都不会影响整个系统数据的正常运转,因为有更多的健康节点保存了完整的数据信息。
5. UTXO交易模式
UTXO是未花费的交易输出,在区块链中,除了创世区块之外,每个区块都会有若干个输入(资金来源)和若干个输出(资金去向),创世区块,和后来的挖矿奖励交易没有输入,除此之外,在比特币系统中,每一笔交易的输入,必须来自另一笔交易未被使用的输出。同时这笔交易会用上一笔输出地址对应的的私钥签名。
当前整个区块链网络中的UTXO多会被保存在背个节点中,只有满足了UTXO和数字签名的交易才被认为是合法的。
6. 哈希函数
区块链中的数据不仅包括了原始数据和交易记录,还包括了他们的哈希值,这样做有以下一些好处:
1) 哈希值是单向数据,处理过的输出值,不可能还原出原始数据
2)哈希函数处理不同长度的数据所耗费的时间是一定的,输出的数据长度也是一定的
3)哈希函数的输入值即使只有微小的差距,输出的结果也会有很大的差异
7. Merkle树
是数据结构中的一种树,可以是二叉树,也可以是多差树。比特币中运用到Merkle树是二叉树,主要作用是快速归纳和校验区块中的数据完整性,会将区块中的数据分组进行哈希计算,想上不断递归产生新的哈希节点,最终只剩下一个Merkle节点。主要有两个优点:
1)区块头中可以只包含根哈希值,提高了区块链的运行效率和扩展性,使得哈希运算可以运行在智能手机或者物联网设备上
2)在不运行完整区块链节点的情况下,也能完成数据的校验。
8. 双重支付
“双花”,利用货币的数字特性,使得同一笔钱完成了两次甚至多次支付。
在区块链系统中,利用UTXO(未花费输出)和数字签名,有效的解决了这一问题。比特币客户端只会转发最先被监听到的交易,而矿工也会选择将这笔交易记录在未来区块中,当其中一笔交易得到6次确认后,就已经保证了比特币不会出现双花。
9. P2P网络
对等网络,是一种在对等着之间分配任务和工作负载的分布式应用框架。区块链是建立在IP通信协议和分布式网络的技术上,完全通过互联网来交换信息,网络中的所有节点都具有同等的地位,不存在特殊化的中心节点和层级,每个节点都承担数据路由,验证区块等功能。
根据存储数量的不同,这些网络节点又分为全节点,轻量级节点。全节点储存了从创世区块以来的所有区块链数据。轻节点只需要存储部分数据信息,当需要对别的数据时,可以想临近节点请求所需数据完成验证更新。
10. 加密算法
公钥-私钥
比特币系统中使用的是椭圆曲线加密算法(ECC)
11,数字签名
数据的发送者,将发送的信息哈希算法处理得到一个哈希值,再将这个哈希值用私钥加密得出一个签名。发送数据时,将内容和签名一同发送给接收者,接收者通过公钥对签名进行解密得到哈希值,在将信息内容通过哈希算法计算,看两个哈希值是否一致来验证信息是否被篡改。
12 比特币的隐私模型
在比特币系统中,不需要讲个人信息交付给第三方机构,只需要提供比特币的地址就能完成一次准匿名交易,在一定程度上,不可能通过交易追溯到交易者本身,因此比特币在一定程度上可以摆脱监管。
比特币不是纯粹的匿名交易制度,因为通过交易地址和交易额串联分析,是可以获得一些交易者的身份信息,因此是准匿名交易机制。