比特币底层区块链技术到底是什么?

  发布时间:2023-09-10 19:34:01   作者:手工客  
一、区块链技术1 什么是区块链?去中心化的、分布式的、区块化存储的数据库存储全部账户余额及交易流水的总账本每个节点有完整的账本数据账本数据记录了全部的历史交易数据

一、区块链技术

1.什么是区块链?

去中心化的、分布式的、区块化存储的数据库

存储全部账户余额及交易流水的总账本

每个节点有完整的账本数据

账本数据记录了全部的历史交易数据

交易数据存储在区块上

每个区块包含前一区块ID及HASH,形成链

2.区块链基本原理

如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。

交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录

区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识

链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。

3.区块链要解决的问题

如何去中心化地共享数据?

如何确保账户不被冒用?

如何确保账户余额足够?

如何确保交易记录不被篡改?

谁负责记账?

怎么保障记账者的可信?

怎么保障记账者的积极性?

4.区块链特性

去中心化

开放性(没有限制,开源,数据公开)

去信任(仅信任机器)

自治性,集体维护

可靠的数据库(不可更改,永远可访问)

匿名性,隐私保护

5.核心技术

P2P网络、数字签名、区块化数据库,竞争记账权、共识算法、交易回溯。

比特币底层区块链技术到底是什么?

二、P2P网络及通信技术(分布式计算网络)

1.自动发现

通过种子文件,获取初始节点(地址及端口)

连接初始节点,获取初始节点知道的Peer

把自己的地址及端口广播给各个Peer

接收各个Peer广播的地址信息,构建出网络的全貌或片段

2. 技术领域

分布式存储、分布式计算、分布式协同

组播

流媒体

搜索引擎

3.通信协议

napster 、Gnutella、eDonkey、 Bittorrent(文件分发协议)

XMPP、Jabber(即时通信协议)

Paxos 、Gossip(分布式系统状态同步协议)

JXTA

4.使用HASH算法及非对称加密及签名技术

每个节点、每个人有唯一的一对公钥及私钥

公钥同时也是每个节点、个人的地址和账号

私钥是证明”我就是我“的唯一手段

HASH算法对数据进行规整

5.算法

RSA、Elgamal、D-H、ECC

SHA256、 RIMPED160

6.通常使用椭圆曲线算法生成密钥对

比特币密钥长度:256位

公钥哈希值=RIMPED160(SHA256(公钥))

比特币地址=1+Base58(0+公钥哈希值+校验码)

校验码=前四字节(SHA256(SHA256(0+公钥哈希值)))

7. 加密

发送方使用接收方的公钥加密数据

接收方使用本方的私钥解密数据

通常使用本方面交换对称加密的Key

8.签名

发送方使用HASH算法计算数据的HASH值

发送方使用本方的私钥加密HASH值,得到签名

接收方使用HASH算法计算数据的HASH值

接收方使用发送方的公钥解密签名得到发送的HASH值

比较两个HASH值的一致性

9.参考

ElGamal算法,是一种较为常见的加密算法,它是基于1984年提出的公钥密码体制和椭圆曲线加密体系。既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。在加密过程中,生成的密文长度是明文的两倍,且每次加密后都会在密文中生成一个随机数K,在密码中主要应用离散对数问题的几个性质:求解离散对数(可能)是困难的,而其逆运算指数运算可以应用平方-乘的方法有效地计算。也就是说,在适当的群G中,指数函数是单向函数。

椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。

当n=234. 约为2117.需要1.6*1023 MIPS 年的时间。而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。

也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。

DH Diffie-Hellman算法(D-H算法),密钥一致协议,是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成”一致”的、可以共享的密钥。

换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对(公钥、私钥)。以此为基线,作为数据传输保密基础,同时双方使用同一种对称加密算法构建本地密钥(SecretKey)对数据加密。

这样,在互通了本地密钥(SecretKey)算法后,甲乙双方公开自己的公钥,使用对方的公钥和刚才产生的私钥加密数据,同时可以使用对方的公钥和自己的私钥对数据解密。不单单是甲乙双方两方,可以扩展为多方共享数据通讯,这样就完成了网络交互数据的安全通讯!该算法源于中国的同余定理——中国馀数定理。

三、区块链化数据库

1.典型特征

去中心化的、分布式的、区块化存储的数据库

区块(Header + Body)

随机数

时间戳

包含父区块创建之后、本区块创建之前的全部交易;

满足某个条件的区块HASH;

a) SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET

b) Target值由动态的难度系数确定,Target越小,难度越高;

2. 参考

默克尔树是一种二叉树,由一组叶节点、一组中间节点和一个根节点构成。最下面的大量的叶节点包含基础数据,每个中间节点是它的两个子节点的哈希,根节点也是由它的两个子节点的哈希,代表了默克尔树的顶部。默克尔树的目的是允许区块的数据可以零散地传送:节点可以从一个源下载区块头,从另外的源下载与其有关的树的其它部分,而依然能够确认所有的数据都是正确的。

默克尔树协议对比特币的长期持续性可以说是至关重要的。在2014年4月,比特币网络中的一个全节点-存储和处理所有区块的全部数据的节点-需要占用15GB的内存空间,而且还以每个月超过1GB的速度增长。简化支付确认(SPV)协议允许另一种节点存在,这样的节点被成为“轻节点”,它下载区块头,使用区块头确认工作量证明,然后只下载与其交易相关的默克尔树“分支”。这使得轻节点只要下载整个区块链的一小部分,就可以安全地确定任何一笔比特币交易的状态和账户的当前余额。

四、记账权竞争及奖励制度(挖矿)

1.概述

为防止可预期的记账节点被控制或攻击,导致错误记账行为,区块链技术采用竞争记账权的做法:

任何一个节点均可以参与记账,因而记账节点无法预期,也就不容易被控

竞争的过程就是看谁最先计算出满足条件的HASH值

每次计算必须以最后1个有效的区块为起点,必须消耗大量的计算机CPU,增加伪造记账数据的成本

计算的结果必须得到大部分节点的认可(共识算法),才会成为新的区块。实际算法中,如果该区块位于最长的区块链上,则为正式被认可的区块,也即大部分节点认可计算结果,并愿意在该结果下继续计算

这个过程被称为挖矿,或工作量证明(POW)。参与挖矿的节点称为矿工,协同挖矿的矿工联合体称为矿池

a ) 以前1区块为起点,计算满足条件的HASH值;

b ) 将计算的结果广播给其他节点;

c ) 其他节点验证计算结果无误时,认可该结果,并以该结果为起点重新进行计算;

d ) 单位时间内达到共识认可要求时,该区块成为正式认可的区块。

这个过程被称系统为鼓励挖矿的积极性,给予竞争成功的记账节点奖励

a ) 给予每个区块挖矿者直接的“现金”奖励。例如,比特币网络给予25个比特币,以太坊给予5个以太币;

b ) 以太坊:纳入该区块的交易的手续费,由发起节点和记账节点分成(发起75%,记账25%)。

2. 参考

比特币使用的SHA256算法,会有2^256种输出,如果我们进行2^256+1次输入,那么必然会产生一次碰撞;甚至从概率的角度看,进行2^130次输入就会有99%的可能发生一次碰撞。不过我们可以计算一下,假设一台计算机以每秒10000次的速度进行哈希运算,要经过10^27年才能完成2^128次哈希!这时要考虑一种情况:如果同时有两个矿工各自得到一个正确答案,并各自生成了一个区块广播出去会发生什么呢?这时候在区块链上同一个位置就有了两个区块,所谓的“分叉”就出现了。分叉是绝对不允许的,所以当矿工发现区块链分叉之后,会选择最长的一条继续计算,短的那条区块链会被丢弃。这里的长短,不是简单意义上的长短,而是工作量证明合计值最大的那个链。

相关文章

  • 区块链是什么(区块链到底是啥 简单一点)

    区块链是什么(区块链到底是啥 简单一点)

    区块链是什么说起区块链,对普通人来说这是个高大上的词汇,往往和比特币捆绑出现,区块链是一项技术,而比特币则是产品,这个能理解不。1、什么是区块链呢,个人理解,通俗来讲, 区块链其
    06-06
  • 区块链到底是啥(区块链是分布式数据库)

    区块链到底是啥(区块链是分布式数据库)

    区块链到底是啥1、区块链就是分布式数据库,而其存储结构类似于数据结构中的链式存储方式,在区块链存储中,一个区块中包含区块信息。2、还包括上一区块哈希值和下一区块哈希值,
    12-04
  • 比特币或者区块链是怎么赚钱的?

    比特币或者区块链是怎么赚钱的?

    比特币或者区块链是怎么赚钱的?2017年比特币一路狂涨,单个比特币的价格最高接近到2w美金,最近一直在1 5w美金左右徘徊,成就了大批的百万千万和亿万富翁。对比不停上涨的房价,股票的大牛市,这些都是小儿科。从比特币2009年诞
    01-07
  • 什么是数字货币区块链?通俗解释数字货币区块链

    什么是数字货币区块链?通俗解释数字货币区块链

    看到这个问题,相信很多投资者都想要了解,毕竟网传,数字货币区块链,是传说中猪都能飞起来的行业,数字货币区块链于2018迅速出现在大众的视野中,现在上到行业从业者,下到路边卖煎饼果子的大妈,都在讨论数字货币区块链
    11-22
  • 区块链和比特币的关系是什么?

    区块链和比特币的关系是什么?

    区块链和比特币的关系?区块链专题,区块链很多朋友都知道但实际上,这也是一门特别高深的学问,它可不仅仅是表面上看起来那么简单,其中包含的东西可多着呢,在小编看来,对区块链有着好的理解,就如同有了一条捷径一样,可以在以后
    08-20
  • 区块链是什么(到底什么是区块链技术)

    区块链是什么(到底什么是区块链技术)

    区块链是什么1、区块链是比特币的基础技术,通俗点说就是一套分布式数据库,只不过这里的分布式更多的是指覆盖范围很广的网络,每个网络节点存储相同的内容,必须说服全部节点才能
    12-29
  • 比特币还是区块链?谁才是未来?

    比特币还是区块链?谁才是未来?

    比特币还是区块链?谁才是未来?2017年,比特币的暴涨带动了数字货币乃至区块链整个行业的发展,但是我们也都知道区块链并不完全等同于数字货币,关于二者谁更有价值的辩题从未停止过。目前好像绝大多数的声音都在表明比特币才
    03-03
  • 比特币等同于区块链吗?比特和区块链有什么关系

    比特币等同于区块链吗?比特和区块链有什么关系

    比特币等同于区块链吗?比特和区块链有什么关系,现在很多人听到区块链就以为是数字货币,其实这是不一样的,币圈,链圈是两个不同的概念。区块链是比特币的底层技术,比特币是区块链技术的第一个应用。比特币是2008年被创造出来
    05-23
  • 比特币的区块链是什么(比特币区块链是一回事吗)

    比特币的区块链是什么(比特币区块链是一回事吗)

    比特币的区块链是什么区块链就是分布式账本,简单举个例子,现在我们在淘宝买东西,数据记录在阿里里面,而区块链每一个节点都有完整数据记录。数据修改成本很高。比特币是基于区块
    02-29
  • 比特币的区块链是什么(区块链前景良好)

    比特币的区块链是什么(区块链前景良好)

    比特币的区块链是什么1、区块链是一种技术,而比特币是一个产品,是一种用区块链技术造出来的虚拟资产,两者不能划等号。2、其实如果你是从事编程相关工作的就比较好理解了。区
    06-28
  • 比特币知识解析:比特币底层区块链技术到底是什么?

    比特币知识解析:比特币底层区块链技术到底是什么?

    比特币底层区块链技术到底是什么?最近几年,各种技术不断涌现,大数据、云计算、人工智能等相关技术异常火热,而比特币的大热也是引起了人们的纷纷侧目,由此,也让别人对比特币的底层技术——区块链技术兴趣大增。2
    11-03
微信 投稿 脚本任务 在线工具