随着互联网技术的发展以及用户规模的扩大,互联网账户的数量也越来越庞大。虽然,这些账户中所包含的信息都是用户自己的数据,但是,无论就法律层面还是技术层面而言,用户都是既不拥有这些账户,也不能进行利益管控,而这些互联网账户中用户数据的泄露和滥用问题就越发突出。
所以,解决这一问题的关键技术就是区块链,区块链对于大多数朋友来说都是一项新的互联网技术。那么,接下来就介绍一些区块链的基本知识,希望对大家有所帮助。
区块链中的交易:
“交易”这个概念是抽象的,区块链中交易是指一次区块链信息的传递。
所以“交易“就包括:
触发类型的信息告知,典型应用就是转账。
不触发类型的信息告知 ,典型应用就是区块链存证。
索要的告知:触发类型的的信息告知一种,但需要反馈,需要把信息传递回给我,典型应用预言机获取链外信息。
其中后两点,也被称为交易。有点像逛街,无论买没买东西,只要进商场了都叫逛街。第一种就是买了东西,第二种瞎逛没买东西,第三种我去商场预定了一个东西。
为什么用告知?是因为区块里面的信息无法推断结果。例如,转账情况,我付了钱,但是无法知道最终这笔钱是否到卖家的账上。
区块:
区块就是承载这些交易的一个载体。类似公交车,当前信息在排队等待上车,区块就是一辆公交车。我们知道公交车能搭载的人数是有限的,区块链能装的交易也是有限的。但不同链之间的区块大小限制是不同。
区块里面除了交易信息,还有用于核验和链接的区块头。区块头信息就包括:
merkle 树根:一个树状的信息组合模式,通过这个树状最终可以这个区块所有包含的交易,变成一个独立不二的哈希。通过这个独一无二的哈希和树状模式可以快速证实一笔交易告知是否存在。从公交车案例,这是代表了所有的乘客都上了车的付款凭证。
时间戳:记录区块的时间。公交车案例,可以理解发车的时间
前一个区块:区块链中的链在这基本体现,每个区块需要明确的表显上一个区块是谁。从公交车的角度就是上一辆车的车牌号是什么。每个区块链的特性不同,但每一个区块链就包括交易信息和区块链头信息。
打包权:
我们很熟悉的POW,POS 都是为打包权设计的。就是怎么做到随机性挑选一个信息的提交者(节点) ,随机是因为防止作恶提交者。除了随机性,作恶的提交者在部分设计之下是有惩罚的。因为每条链的设计不同,甚至有些联盟链采用轮值模式。从公交车案例角度,这类似挑选一个司机。
共识体系:
很多人把共识体系跟打包全混淆。共识体系的最大的目的是完成不可篡改性。共识体系是关于,提交后如何把区块的信息分享和备份到其他的节点中。
这里面普遍用的是BFT模式,分多轮去验证信息。因为BFT也很多不同的版本,并且比较复杂。
简单的体现,是你转账的时候,如何知道是否成功,是需要最少6个confirmation 的节点确认。确认意思是有多少节点同步了这个区块里面的信息。只有全部确认了,交易告知才会被执行。
从公交车角度,这类似多少单位同意了,才能发车,有可能是调度中心,交管中心等等。
TPS:
TPS就是处理交易告知的效率。
区块:这里面的关注点是,装多少,如果每个区块都装多一些交易,是不是效率就高了? 理论上是的,但共识体系中对信息的同步将占用更多的时间。所以这是一个平衡。
打包权:越复杂的挑选方式,一定会耗时更久,意味着处理能力一定会降低。
共识体系:影响TPS的有两点,一是需要多少节点来同步我的信息才算合格,越多的节点同步肯定越耗时,处理能力更低;二是区块里面是否需要装满交易,从公交车角度,就是是否满载才发车,那肯定不满载发生效率越高,但同步成本就越高了。
所以高的TPS一定是有代价的,普遍高的TPS,不够去中心化。
Merklee树和SPV验证:
上面了解了区块链中的merklee 树根,会不会有人好奇为什么交易名录了不能替代merklee树了。比如说我有个区块头,然后我加个交易名单是否可行了。
理论上是可行的,但问题在于那基本所有的应用都需要去同步这个交易名录。Merkle树允许SPV验证方式,运行应用只需要同步区块链头即可验证一笔交易告知是否存在。
如果是16笔交易,我只需要同步5次即可(Root,Habcdefgh,Hmnop,Hij,Hk),那对比16比交易验证,同步量减少了70%多。越多的交易,同步量减少得越多,这就是merkle 树的目的。
上述就是今天所讲的区块链基本知识,希望对大家有所帮助。