理解区块链之“链式结构”

区块链有两个明显特点,一个是区块,另一个就是“链”,即“链式结构”。在“链式结构”下,它衍生出:链/Chain、链上/On-chain、链下/Off-chain、分叉/Fork、软分叉/Soft Fork、硬分叉Hard Fork系列概念。

链/Chain

链是由区块按照发生的时间顺序,通过区块的哈希值串联而成,是区块交易记录及状态变化的日志记录。 

链上/On-chain

on-chain是区块链网络上最基本的交易方式。以比特币为例,链上交易的流程是甲方给乙方-个比特币地址(公钥) ,乙方用客户端创建交易发送比特币给甲方,这笔交易在全网广播,并且被确认,随后打包进区块。显然,这个交易是直接发生在比特币网络.上的,相对来说比较安全。需要注意的是,由于比特币网络区块确认时间较长所以交易过程会比较耗时。

 

链下/Off-chain

从功能角度讲,区块链系统是一个价值交换网络,链下是指不存储于区块链上的数据交方式,例如我们在交易所里进行的交易就是ff- chain交易。在交易所中进行的链下交易是如何运作的呢?A用户和B用户分别在某交易所开户,交易所会分别为A用户和B用户生成-对公钥私钥,但是A和B都不知道平台给他们生成的私钥,只知道自己的公钥。然后, A和B用自己的钱包往平台给他们开的公钥地址里冲值比特币,注意这个操作依然是onchain的。再然后, A通过交易所转了0.5BTC给B ,但由于A没有私钥,所以需要交易所拿A的私钥去签名并广播这个交易,然而交易所真的需要去广播这个交易吗?不需要的,交易所只需要在自2的数据库里,将A的账户余额-0.5BTC ,将B的账户额+0.5BTC.这-步,只是交易所自己维护的信息在更新,没有上链,所以这个操作是off chain的。最后,当A、B从交易所取现时,交易所将他们线上账户的比特币转给他们自己的此特币地址时(AB自己拥有私钥的地址) ,这个操作才会重新onchain。 与on-chain相比off-chain交易可以很快,但是由于交易数据放到交易所的数据库里了,所以安全隐私又打了点折扣。不过本文只探讨原理,对利弊就不做过多评论了。

 

分叉/Fork

在区块链中,由矿工挖出区块并将其链接到主链上,一般来讲同一时间内只产生-个区块,如果发生同-时间内有两个区块同时被生成的情况,就会在全网中出现两个长度相同、区块里的交易信息相同但矿工签名不同或者交易排序不同的区块链,这样的情况叫做分叉。 

软分叉/Soft Fork

指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,当新共识规则发布后,在去中心化架构中的节点不定要升级到新的共识规则因为软分叉的新规则仍旧符合老的规则,所以未升级的节点仍旧能接受新的规则。当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块,进而产生临时性分叉。对于软分叉,运行旧版本软件就好比出门坐地铁,而运行新版本就像是坐飞机。在地铁站安检的时候(8版本) ,拿着打火机,可以进站,可以上车,按照日常规程,基本没人拦你。而在机场安检时(新版本) ,你的打火机只能丢弃了。换句话说,有些在地铁上能做的事情,在飞机上就不能做(旧版本支持的事情,新版本不支持)。反过来看,因为坐飞机的安检更为严格,所以如果你满足了坐飞机的要求,坐地铁自然没有任何问题(新版本支持的事情, 1旧版本也支持)。 

硬分叉Hard Fork

指在区块链或去中心化网络中不向前兼容的分叉。区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬分叉就会发生。硬分叉对数字货币使用的技术进行永久更改,这种变化使得所有的新数据块与原来的块不同,旧版本不会接受新版本创建的区块,要实现硬分叉所有用户都需要切换到新版本协议上。如果新的硬分叉失败,所有的用户将回到原始数据块。对于硬分叉,我们也可以用”地铁和飞机”形象化。硬分叉中的旧版本软件就好比开地铁,而新版本则是开飞机。显然,能开地铁,不代表你能开飞机(旧版本支持,新版本则不支持) ;反过来即使你有飞机驾驶证,也不能拿着它直接坐进地铁驾驶室里把车开走(新版本没问题,旧版本却不支持)。

おすすめ

転載: blog.csdn.net/BSN_yanxishe/article/details/122237836