区块链合约交易工作总结1
通道主要有两个作用:网络分片
和 数据范围控制
,数据的共识只在一个通道内进行。
如下图所示,1,3,4,6四个节点在一个通道内,他们之间会进行数据同步(共识)。同时1,6还与2,5在一个通道内,他们之间也会进行数据同步。
共识的本质就是分布式系统的数据一致性
BFT类共识算法:定期选举处出一个领导者(Leader),由其接收并排序区块链 交易
,领导者 产生区块
递交给所有其他节点(follower)进行验证,并“举手” 表决,通过“投票”+“协商”推翻不合格的领导者。
流程
步骤1:投票挑选Leader(O(n^2))
步骤2:Leader收集交易进行提案
步骤3:Replica投票(由leader收集,O(n))
步骤4:收集投票形成共识证明
执行流程
注意事项说明
合约和交易的区别与联系
区块链合约交易工作总结2
区块链系统的存储内容中可以分为 不可篡改存储 和 可修改存储 两部分内容。
防篡改的数据,指的是已完成共识,并延长到区块链上并持久化了的 历史区块数据(历史交易数据)
这些数据是不能通过直接进行修改的,它只能通过发起新的交易,去申请修改这些数据的最新状态。
共识算法
另外,区块链系统的节点都是全量且冗余的方式进行区块数据存储的;所以, 单个甚至多个节点对数据库的修改仍然无法影响其他节点的数据库,因为好的节点数据总是正确一致的,它们能够最终保持正确的区块数据在正确的区块链上持 续延长。除非能控制整个网络中超过共识算法要求的安全阈值(POW 中是 51%, 大部分 PBFT 的系列算法是 1/3)的节点同时修改,但这几乎不可能发生(也确实 没发生过)
。
链式结构
在区块链中,每个区块都包含上一个区块所有数据包的 数据指纹 (哈希值)
,计算当前区块的数据指纹(哈希值)时,同时包含了上一个区 块的数据指纹(哈希值),形成链接关系。所以,一旦任何一个区块发生了变动, 后面相连的所有区块数据指纹(哈希值)都会有所变动,所有人都能看见和发现数 据被篡改,并且所有人都会不认可这种无效的数据。区块链中的所有节点分布式 的,节点都做了全量冗余的数据存储。区块链数据是会实时同步给所有节点记录 的,所有节点都知道区块的正确顺序,和对应的内容,也能查阅到相关数据,这就是区块链防伪、防篡改的特性,这就保证了区块链中区块数据的不可篡改。
简而言之,区块链实现防篡改与可信追溯,是基于全量的分布式冗余区块数据存储+共识算法机制+密码学来保证的。
区块链技术栈
区块链技术产品
区块链合约交易工作总结3
区块链的匿名性指的是当网络中的节点发起网络操作时,可以保护自身真实身份不被与网络账户名联系起来的性质,这个性质与其采用的P2P网络的性质紧密相关。区块链网络中的节点一般发生三类网络操作,分别是新区块的传播、新区块链的下载、新交易的传播。
就新区块传播和新区块链的下载而言,节点们总是无差别地下载完整的副本,因此网络通讯包内不含任何可以指示身份的信息,因此攻击者无法通过解包拦截到的网络通讯确定通讯双方的身份。
新交易的传播也几乎是完全匿名的。当不同的账户之间产生交易时,交易内容几乎是以公开的形式在P2P网络上传播,得益于P2P网络的工作机制,即便攻击者拦截了某一个网络通信包,攻击者也无法将交易各方与通信各方的身份联系在一起,这个通信包可能只是帮助其他节点进行广播而已。实际上攻击者可以分析不同的网络通路上拦截到的不同来源和去向的交易信息来推测某一个网络节点可能是交易中的某一方,但是这种推测的准确性不高,效率也低,而且很容易被防范。
区块链的匿名性建立在P2P网络和分布式存储的基础之上,这使得希望通过拦截通讯以确定用户身份的攻击者无从下手。有一些版本的区块链应用允许一些节点不必下载全部尺寸的区块链以节省其网络负担,这使得该区块链网络的匿名性有所下降,但是攻击者也只是有可能将被监听节点归到某一类节点上,依旧无法准确推断这个节点是哪一个节点。
区块链合约交易工作总结4
“不可能三角“指在区块链领域,去中心化、高效、安全三者不可兼顾。这个论断来自以太坊的一篇Q&A中,这个论断可能更多地是基于经验做出的,而不是经过严密推理的结论,因此它的准确性也常受质疑。比起区块链的“不可能三角“,更为经典的是分布式系统中的不可能三角CAP,即一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)。
无论是区块链的不可能三角还是分布式系统的CAP理论,都对区块链在不同领域的应用具有一定的指导作用:当依照特定领域对区块链进行版本改进,使得在“不可能三角“或者CAP中的某些性质得到长足提升后,应当注意那个被“不可能三角“或者CAP定义为短板的性质,乃至于整个系统没有显著漏洞以影响正常工作。
后续版本的区块链还更新出了具有图灵完备的智能合约功能,极大地增加了区块链的可拓展性。区块链的智能合约可以由特定条件触发,在所有节点上分布式执行。智能合约的存在使得区块链不再只是一个具有前文所述性质的电子账本,而进一步成为具有自动化潜力的智能账本。
根据区块链的各种特性,区块链在各领域的应用大致有两类:一类是立足区块链的账本性质,建立一个对每个产品都可以溯源的网络,其去中心化与否、匿名与否根据具体的生产要求而定,使用智能合约对生产过程起到辅助控制作用;另一类是立足具有图灵完备的智能合约,将其视作普通的程序语言来设计程序,这些程序会在网络上的各个节点运行,区块链本身则成为记录程序运行的、不可篡改的、分布式日志。无论是哪一类的应用方式,其最终总是产生公认可靠的数据库,而一个内容可靠的数据库,无论是作为最终的产品还是作为最终的产品的佐证,都是具有相当的价值的。
区块链合约交易工作总结5
不管是公链还是联盟链,区块的构成都是由区块头+区块体 的方式构成。区块中都包含一些共同的属性:
最重要的是父区块 hash 和 merkle root 两个基础属性,它们是打包交易并延长成区块链的最基本的必须的属性字段。
MerkRoot是如何保证交易不被篡改呢?
我们可以看到merkleRoot是由每个交易分别做hash,然后再两两递归做hash,最终得到merkleRoot。那么一个交易被篡改,则MerkleRoot的值就一定会发生变化。 综合来看:区块链是一个不可篡改的数据操作集合
注意:这里的不可篡改指的是改的难度非常大,因为只要修改一个区块,那么后续的区块都需要修改
世界状态
世界状态是系统当前时间点所有状态的集合,交易是具体的某一个操作,世界状态在操作的驱动下发生改变,转化为下一个状态。