这是基于区块链交易的基本特性,数据要上链就得通过交易,而交易要被广播和打包到区块中,就必须要有数字签名。而数字签名保证了交易数据无法被第三方篡改,也保证了上链数据必然是私钥持有者签名的,不可伪造,不可抵赖。
区块链作为分布式账本,在记账时,需要多方进行共识,只有共识通过才会被记账,而无论采用哪种共识算法,都需要保证单方或者少数节点的作恶行为不会影响整个链的数据。而基于区块链的链式数据和区块头中包含区块所有交易的默克尔根的特点,保证了历史数据无法被篡改。这里的无法篡改和基于签名的无法篡改是两种情况。数字签名保证的是原始数据不会被第三方篡改,但是如果一个文件只是由我用自己的私钥签名了,那么我是可以修改文件的内容,然后再用我自己的私钥重新签名,生成一个新的合法的签名文件的。而区块链的共识算法就是如果我已经把A文件签名并上链了,那么我自己都不能把A文件改成A1后重新签名,神不知鬼不觉的把A替换成新的A1。
因为我们上链的数据具有多个副本,每个全账本节点都保留了完整的区块链数据,所以不存在单机故障导致整个区块链网络无法正常运行或者因为硬盘故障导致链上数据丢失的可能性。
这里主要说的是联盟链技术,联盟链属于许可链,和开发的任何人都可以访问的公有链相比,联盟链是受限访问的,即使联盟链节点部署在互联网中,但是由于节点准入的限制,并不是任何人下载了节点运行的区块链程序就能接入联盟链网络的,而且节点与节点之间的通讯是通过TLS加密的,所以即使黑客截取了网络包,也无法知道区块链网络中传输的内容,从而保证了数据的安全。通道隔离技术是指Fabric中的Channel的概念,相当于子链,不同的数据共享范围,就对应不同的通道,只有同一个通道中的数据才能被访问,所以如果有ABC3方组成的联盟链,AB通道中的数据C是看不到的,AC通道中的数据B是看不到的,也就进一步的控制了数据传播的范围。