说到区块链,大多数人对其的理解还是只停留在“区块链”这三个字上,打开百度百科,在上面你会看到的“区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点”这句,但还是不太懂。其实,说到底,区块链就是一个大账本,其所运用的各种技术,旨在确保这个账本的安全可靠。
一、账本可信问题
区块链运行在一个p2p网络中,所有用户都是这个网络中的节点,地位都是均等的。人人都可以创建、发送和转发交易信息,因此会有很多交易信息在这个网络中流转。可是,没有中心节点,该由谁来把交易信息记录下来呢?假设假设有一个好心人,他自愿把所有收到的合法交易记录下来,形成一个账本,并向全网公开。
存在问题:有人篡改账本
解决方法:将帐本划分成多个区块,并且每个区块中包含有上一区块的哈希值,可以保证区块内容未被删改。以及每个区块中的Nonce值,由于密码学哈希函数具有单向性,记账人没有办法根据哈希值小于n的要求逆推出一个合法的Nonce值。记账人只能随机尝试不同的Nonce值才能让区块的哈希值达到合法要求。而且密码学哈希函数具有运算高效的特性,所以尝试一次Nonce值并不需要花费太多的时间。
这样以来,记账人如果再要篡改某一笔交易,不仅这个区块的哈希值会变得不合法(当然&#x