主页 > imtoken国际版 > 什么是区块链技术,其基本原理是什么
什么是区块链技术,其基本原理是什么
描述
1. 区块链技术
1、什么是区块链?
去中心化、分布式、块存储数据库
存储所有账户余额和交易记录的总账
每个节点都有完整的账本数据
账本数据记录所有历史交易数据
交易数据存储在区块上
每个区块包含前一个区块ID和HASH,形成一条链
2. 区块链基本原理
如果将区块链作为状态机,每笔交易都是一次改变状态的尝试,每一次共识产生的区块都是参与者对区块中所有交易内容引起的状态改变的确认结果。
事务:引起账本状态变化的操作,比如增加一条记录
Block:记录一段时间内发生的交易和状态结果,是对当前账本状态的共识
Chain:由区块按发生顺序串联而成,是整个状态变化的日志记录。
三、区块链要解决的问题
如何去中心化共享数据?
如何保证账户不被冒用?
如何保证账户余额充足?
如何保证交易记录不被篡改?
谁负责保管账簿?
如何保证簿记员的公信力?
如何保护记账员的积极性?
4. 区块链特性
分散的
开放性(无限制、开源、数据公开)
Trustless(只信任机器)
自治,集体维护
可靠的数据库(不可更改,始终可访问)
匿名、隐私保护
5、核心技术
P2P网络、数字签名、区块数据库、竞争记账权、共识算法、交易回溯。
2. P2P网络与通信技术(分布式计算网络)
1.自动发现
通过种子文件获取初始节点(地址和端口)
连接初始节点,获取初始节点知道的Peer
向每个 Peer 广播您自己的地址和端口
接收各个Peer广播的地址信息,构建网络全貌或片段
二、技术领域
分布式存储、分布式计算、分布式协作
组播
流媒体
搜索引擎
3、通讯协议
napster、Gnutella、eDonkey、Bittorrent(文件分发协议)
XMPP、Jabber(即时通讯协议)
Paxos、Gossip(分布式系统状态同步协议)
JXTA
4.采用HASH算法和非对称加密及签名技术
每个节点和每个人都有一对唯一的公钥和私钥
公钥也是每个节点和个人的地址和账号
私钥是证明“我是我”的唯一手段
HASH算法对数据进行正则化
5.算法
RSA、Elgamal、DH、ECC
SHA256、RIMPED160
6.密钥对通常使用椭圆曲线算法生成
比特币密钥长度:256 位
公钥散列 = RIMPED160(SHA256(公钥))
比特币地址=1+Base58(0+公钥哈希值+校验码)
校验码=前四个字节(SHA256(SHA256(0+公钥哈希值)))
7.加密
发送方用接收方的公钥加密数据
接收方用自己的私钥解密数据
通常使用这方面来交换对称加密密钥
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位时,使用234位的ECC密钥获得的安全强度要高很多。 它们之间的密钥长度最多相差9倍,ECC密钥越大,它们之间的差距就越大。 较短的 ECC 密钥的优势非常明显。 随着加密强度的增加,密钥长度变化不大。
DH Diffie-Hellman算法(DH算法)是一种密钥共识协议,是由公钥密码体制的创始人Diffie和Hellman提出的一种思想。 简单地说,它允许两个用户在公共媒体上交换信息,以生成一个可以共享的“一致”密钥。 也就是说比特币的底层技术是区块链吗,甲方生成一对密钥(公钥,私钥),乙方根据甲方的公钥为乙方生成一对密钥(公钥,私钥)。 这是数据传输保密的底线和基础。 同时,双方使用相同的对称加密算法构造本地密钥(SecretKey)来加密数据。 这样,A、B双方交换本地密钥(SecretKey)算法后,公开自己的公钥,使用对方的公钥和刚刚生成的私钥加密数据,就可以使用对方的公钥和自己的自己的私钥来加密数据。 解密。 不仅是甲乙双方,还可以扩展到多方共享数据通信,从而完成网络交互数据的安全通信! 该算法源自中国同余定理——中国余数定理。
3. 区块链数据库
一、典型特征
去中心化、分布式、块存储数据库
块(标题+正文)
链
随机数
时间戳
包含父块创建之后和本块创建之前的所有交易;
区块满足一定条件的HASH;
a) SHA256 (SHA256(version + prev_hash + merkle_root + ntime + nbits + x))《TARGET
b) Target值由动态难度系数决定,Target越小,难度越高;
2.参考
Merkle 树是由一组叶节点、一组中间节点和一个根节点组成的二叉树。 底部的大量叶子节点包含基础数据,每个中间节点是其两个子节点的哈希,根节点也是其两个子节点的哈希,代表默克尔树的顶部。 Merkle 树的目的是允许块数据被零散地传递:一个节点可以从一个源下载块头,从另一个源下载与它相关的树的其他部分,并且仍然能够确认所有数据都是正确的.
Merkle 树协议可以说对比特币的长期可持续性至关重要。 2014 年 4 月,比特币网络中的一个全节点——存储和处理所有区块的所有数据的节点——需要 15GB 的内存空间,并且以每月超过 1GB 的速度增长。 Simplified Payment Verification (SPV) 协议允许另一种节点存在,称为“轻节点”,它下载区块头,使用区块头确认工作量证明,然后仅下载“merkle 树”与其交易相关的分支”。这允许轻节点通过仅下载整个区块链的一小部分来安全地确定任何比特币交易的状态和账户的当前余额。
4.记账权竞争及奖励制度(挖矿)
1 概述
为了防止可预见的记账节点被控制或攻击,导致错误的记账行为,区块链技术采用了记账权竞争的方式:
任何节点都可以参与记账,因此记账节点不可预测,不易被控制
竞争的过程就是看谁先计算出符合条件的HASH值
每次计算都必须从最后一个有效区块开始,消耗大量计算机CPU,增加造假记账数据的成本
计算结果必须得到大多数节点(共识算法)的认可才能成为新的区块。在实际算法中,如果该区块位于最长的区块链上比特币的底层技术是区块链吗,则为正式认可的区块,即大多数节点认可该计算结果并愿意根据结果继续计算
这个过程称为挖矿,或工作量证明(POW)。参与挖矿的节点称为矿工,协作挖矿的矿工联盟称为矿池
a) 从上一个区块开始,计算满足条件的HASH值;
b) 将计算结果广播给其他节点;
c) 当其他节点验证计算结果正确时,会接受该结果并根据该结果重新计算;
d) 当在单位时间内满足共识批准要求时,该区块成为正式批准的区块。
这个过程称为系统鼓励挖矿的积极性和奖励记账成功的节点
a) 给每个区块矿工一个直接的“现金”奖励。 例如,比特币网络给出了 25 个比特币,而以太坊给出了 5 个以太币;
b) 以太坊:包含在区块中的交易手续费在发起节点和记账节点之间平分(发起75%,记账25%)。
2.参考
比特币使用的 SHA256 算法有 2^256 个输出。 如果我们进行2^256+1次输入,必然会发生碰撞; 即使从概率的角度来看,也会有99%的几率发生碰撞。 但是我们可以计算一下,假设一台计算机以每秒10000次的速度进行哈希运算,那么完成2^128次哈希需要10^27年! 这时候我们就需要考虑一种情况:如果两个矿工各自同时得到一个正确答案,各自产生一个区块广播出去会怎样? 这时候,区块链上的同一个位置出现了两个区块,所谓的“分叉”就出现了。 分叉是绝对不允许的,所以当矿工发现区块链分叉时,他们会选择最长的继续计算,而最短的区块链将被丢弃。 这里的长度不是简单意义上的长度,而是总工作量证明值最大的链。