作者:用户t59kdjdcr6 | 来源:互联网 | 2023-07-20 12:38
作为一种新兴技术,区块链对许多行业带来了颠覆性的影响,最为典型的用例就是比特币和其他加密货币。区块链的核心是分布式分类帐系统,允许以不可变更的形式存储数据。并且,比特币等加密货币均建立在区块链技术的底层基础设施之上。
误区1:区块链上的数据很安全!
这一误解尤为普遍。人们错误地认为,区块链上的数据以某种加密方式存储,这些数据是“安全的”,一旦数据存储在区块链上,没有适当的授权,任何人都无法查看或访问数据。因此,人们会认为可以将自己的银行帐户、密码和社会保险号码等存储在区块链中,而不必担心被黑客入侵。在他们看来,没有什么比这更为真实可靠!
然而,区块链网络对一部分人而言,存储在公有链上的数据实际上都是可见的,即公有链网络中的每个节点都在其节点上具有整个区块链的本地副本,并且可以查看区块数据内容。
没错,任何人都可以查看区块链中存储的数据!
因此,公有区块链并不适合存储敏感或私人信息(如密码,社会保险号码或银行帐号),因为每个人都可以查看区块链的内容。
当人们说区块链上的数据是“安全的”时候,其实只是意味着数据“不可变更”。具体说就是,一旦有人试图改变区块链中的数据,一定会有其他人察觉知晓。
区块链上的数据不是绝对安全,它只是不可变更。
人们对“安全”一词有着不同的理解。在区块链领域,“安全”一词仅表示“不可变”,对于试图读取或访问它的人来说,它并非绝对安全。
误区2:区块链非常适合存储数据!
实际上,区块链并不适合存储大量数据。
区块链的分布式特性,意味着作为区块链网络一部分的每个节点,都具有区块链的完整副本。如果区块链用于存储大型文件(例如图像,视频等),那么区块链将过于巨大,并且每个节点将不得不在其自身上复制整个区块链数据,从而使其效率低下。
实际上,区块链非常适合记录交易数据。通常的做法是,使用一些基于上下文的位置分布式文件系统(例如,IPFS,Swarm,SAFE网络,perkeep等),将大数据文件存储在区块链外部,并且将数据文件的散列地址存储在区块链上。
误区3:智能合约是存储在区块链上的常规现实合约!
智能合约与现实世界的合约完全没有关系。作为存储在区块链上的计算机程序,智能合约可以在区块链上执行。
智能合约是用编程语言编写的,如Ethereum区块链中的Solidity或Serpent,以及Hyperledger Fabric区块链中的Go或Java。智能合约通过EVM(以太坊虚拟机)在以太坊区块链上执行。在Hyperledger区块链上,链码在Docker容器中执行。
智能合约的概念是作为以太坊区块链的一部分引入的(以太坊被认为是第二代加密货币)。将EVM添加到以太坊区块链平台,并通过使计算机程序能够在区块链上存储和运行,区块链的功能和用例可以被扩充。
比特币区块链(被认为是第一代加密货币)没有智能合约的概念,即在比特币区块链上,无法创建智能合约。
实际上,智能合约是位于以太坊区块链上的字节代码,即用Solidity编程语言编写的智能合约程序,由Solidity编译器编译成字节代码,并且该字节代码存储在以太坊区块链中。智能合约在以太坊区块链上运行,并由EVM(以太坊虚拟机)在以太坊区块链的每个节点执行。
相比之下,Hyperledger Fabric Chaincode程序在设计上与区块链保持绝缘。Chaincode程序是用Go或Java编写的,并且在每个节点上运行的独立Docker容器中执行,而不是在区块链上执行。Hyperledger Fabric的模块化架构因此得以实现,从而使得共识算法具有即插即用功能。