去中心化、分布式、分块存储的数据库
存储所有账户余额和交易流水的总账账本每个节点哈希完整账本数据账本数据记录所有历史交易数据交易数据分块存储形成一个链2 .区块链的基本原理
如果把区块链作为状态机,每一次事务都是一次改变状态的尝试,每次协商一致产生的块是参与者确认块中所有事务内容引起的状态改变的结果。
交易:导致账簿状态发生变化的操作,如增加记录块:记录一定时期内发生的交易和状态结果,是对当前账簿状态链的共识:由块按发生顺序串联而成,3。区块链要解决的问题
如何集中共享数据?
如何保证账号不被冒用?
如何保证账户余额充足?
如何保证交易记录不被篡改?
谁负责记账?
如何保证记账人的可信度?
如何保证记账员的积极性?
4。区块链特点去中心化
开放性(无限制、开源、开放数据)
去信任(仅信任机器)
自治、集体维护
II .P2P网络与通信技术(分布式计算网络)
1。自动发现
通过种子文件获取初始节点(地址和端口)。获取初始节点已知的Peer
,向每个Peer2的全貌或片段。技术领域
分布式存储、分布式计算、分布式协作
组播
流媒体
搜索引擎
3 .通讯协议XMPP,Jabber(即时通讯协议)
Paxos,Gossip(分布式系统状态同步协议)
JXTA 4 .使用哈希算法和非对称加密签名技术每个节点和每个人都有一对唯一的公钥和私钥[私钥是证明“我是我”的唯一手段]哈希算法正则化数据 5。算法RSA,Elgamal,D-H,ECC
SHA256,RIM PED160
hash值=RIMPED160(SHA256(公钥))
比特币地址=1 Base58(0公钥Hash值校验码)
校验码=前四个字节(sha256 (0公钥Hash值))
7。加密接收方用自己的私钥
解密数据。通常,它使用密钥 8。签名发送方使用哈希算法计算尚力财经小编2022数据的哈希值发送方使用自己的私钥加密哈希值,得到签名接收方使用哈希算法计算数据的哈希值
接收方使用发送方的公钥解密签名,得到发送的哈希值
9。参考ElGamal算法,这是一种常见的加密算法。它既可用于数据加密,也可用于数字签名,其安全性取决于有限域上离散对数的计算问题。 在加密的过程中,生成的密文是明文的两倍长,每次加密后的密文中都会生成一个随机数K。离散对数问题的几个性质主要应用在密码学尚力财经小编2022中:求解离散对数比较困难(可能),其逆指数运算可以用平方乘法有效计算。也就是说,在适当的群G中,指数函数是单向函数。
椭圆曲线密码系统是目前已知的公钥密码系统中每比特加密强度最高的一种。解决椭圆曲线上离散对数问题的最佳算法是Pollard rho方法,其时间复杂度为,并且是完全指数的。其中n是等式(2)中m的二进制表示的位数。当n=234时,约为2117,需要1.61023 MIPS年。我们熟悉的RSA,用的是大整数分解这个难题。目前一般因式分解的最佳算法的时间复杂度是亚指数级的。当n=2048时,需要21020兆年。也就是说,当RSA的密钥使用2048位时,ECC的密钥使用234位,可以获得高得多的安全强度。但两者的密钥长度相差9倍,当ECC的密钥更大时,两者的差别会更大。更短的ECC密钥的优势是非常明显的。随着加密强度的增加,密钥长度变化不大。密钥协商协议
DH Diffie-Hellman算法(D-H算法)是公钥密码学的创始人Diffie和Hellman提出的一种思想。简单地说,它允许两个用户在公共媒体上交换信息,以生成可以共享的“一致”密钥。换句话说,甲方生成一对密钥(公钥和私钥),乙方根据甲方的公钥生成乙方的密钥对(公钥和私钥)。以此为基线,作为数据传输保密的基础,双方使用相同的对称加密算法构建本地SecretKey对数据进行加密。这样,甲乙双方交换本地SecretKey算法后,公开自己的公钥,用对方的公钥和刚生成的私钥加密数据,用对方的公钥和私钥解密数据。不仅仅是甲乙双方,还有多方共享数据通信,从而完成网络交互数据的安全通信!这个算法源于中国的同余定理3354中国剩余定理。第三部分。区块链数据库
1。典型特征
去中心化、分布式、块存储数据库
头体
链[x
HASH;指满足一定条件的块;a)sha 256(sha 256(version prev _ hash merkle _ root time bits x))目标b)目标值由动态难度系数决定,目标越小难度越高;2。参考默克尔树是一棵二叉树,由一组叶子节点、一组中间节点和一个根节点组成。最低数量的叶节点包含基本数据,每个中间节点是其两个子节点的哈希,根节点也是其两个子节点的哈希,代表了默克尔树的顶部。默克尔树的目的是允许块的数据分段传输:节点可以从一个源下载块头,从另一个源下载与它相关的树的其他部分,并且仍然能够确认所有数据都是正确的。默克尔树协议对比特币的长期可持续性至关重要。2014年4月,比特币网络中的一个完整节点——存储和处理所有块的所有数据的节点——需要占用15GB的内存空间,并且还在以每月1GB以上的速度增长。简化支付确认(SPV)协议允许存在另一种节点。这样的节点称为“光节点”。它下载块头,用它来确认工作量证书,然后只下载与其事务相关的Merkel树“分支”。这使得光节点只要下载整个区块链的一小部分,就可以安全地确定任何比特币交易的状态和账户的当前余额。 第四章。会计权利竞争与奖励制度(矿业) 1。概述
为了防止可预测的记账节点被控制或攻击,导致错误的记账行为,区块链科技采用了竞争记账权限的做法:任何一个都不容易被指控
。竞争的过程就是看谁先计算出满足条件
的哈希值。每次计算都必须从最后一个有效块开始,这必须消耗大量的计算机CPU,增加伪造会计数据的成本
。计算的结果在成为新的块之前必须被大多数节点认可(一致性算法)。实际中,如果块位于最长的区块链上,则得到官方认可,即大多数节点认可计算结果,并愿意在该结果下继续计算
。这个过程被称为挖掘,或工作量证明(POW)。参与挖掘的节点称为矿工,合作挖掘的矿工协会称为矿池
c)当其他节点验证计算结果正确时,认可该结果,重新开始计算;
d)当单位时间内满足一致认可的要求时,该区块成为正式认可的区块。这个过程叫做系统为了鼓励挖矿的积极性,奖励成功记账的节点a)给每个区块的矿工一个直接的“现金”奖励。比如比特币网给25个比特币,以太坊给5个以太币;b)以太坊:本块包含的交易手续费由发起节点和记账节点分成(发起75%,记账25%)。2。参考
比特币使用的SHA256算法,会有2 ^ 256个输出。如果我们做2 ^ 256个输入,那么就会有碰撞;即使从概率的角度来看,在2 130次输入之后,也有99%的机会发生冲突。但是我们可以计算一下,假设一台计算机以每秒10000次的速度进行哈希运算,那么完成2 ^ 128次哈希需要10 ^ 27年!这时候考虑一个情况:如果两个矿工同时得到正确答案,各自生成一个块进行广播,会发生什么?这时,区块链上同一位置出现了两个块体,出现了所谓的“分叉”。分叉是绝对不允许的,所以当矿工发现区块链分叉时,他们会选择最长的一个继续计算,而短的那个将被丢弃。这里的长度不是简单意义上的长度,而是总工作量最大的链条。