区块链有两个显著特点,一个是区块,另一个就是“链”,即“链式构造”。在“链式构造”下,它衍生出:链/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
指在区块链或去中心化网络中不向前兼容的分叉。区块链产生永久性一致,在新共识规定公布后,局部没有降级的节点无奈验证曾经降级的节点生产的区块,通常硬分叉就会产生。硬分叉对数字货币应用的技术进行永恒更改,这种变动使得所有的新数据块与原来的块不同,旧版本不会承受新版本创立的区块,要实现硬分叉所有用户都须要切换到新版本协定上。如果新的硬分叉失败,所有的用户将回到原始数据块。对于硬分叉,咱们也能够用”地铁和飞机”形象化。硬分叉中的旧版本软件就好比开地铁,而新版本则是开飞机。显然,能开地铁,不代表你能开飞机(旧版本反对,新版本则不反对) ;反过来即便你有飞机驾驶证,也不能拿着它间接坐进地铁驾驶室里把车开走(新版本没问题,旧版本却不反对)。