简单的说,区块链就是一种计算机的技术,和互联网是一样。再复杂一点的说,区块链是一种电子化数据的存储方法。数据是以区块的形式出现的,这些区块都链接在了一起,为其内部数据赋予了不可变性。当一个数据块被链接到了这条链上,其内部数据就再也无法更改了,里面的数据对任何人都是公开可见的。
区块规则
每个区块的大小在 1 MB 左右。区块按照时间顺序从第一笔交易开始记录,当数据量达到 1 MB 后,交易会记录在下一区块中,依次顺延。
区块链接
把这些区块链接在一起的,就是根据每个区块内部数据串生成的特殊数字签名。这个数字签名是通过哈希运算得出,如果这个区块中的数据发生任何变动,即使只改变了一个数字,这个区块的签名也会发生改变。
哈希运算
密码学哈希函数是一个极其复杂的数学公式:将任意数据串作为输入值代入公式,可以得到一个独一无二的 64 位输出值,但是无法用输出值倒推出输入值。
合格的数字签名
区块链协议会预先确定一些要求,比如,在比特币区块链上,只有在数字签名以不少于 连续 10 个零 开头的情况下,对应的区块才能上链。为了获得符合条件的区块数字签名,需要反复改变输入的数据串,直到能生成以连续 10 个零开头的签名为止。区块链网络上的任何用户都可以参与到区块数字签名的哈希运算,这个“区块数字签名的哈希运算”就是挖矿。
区块链的不可变性
更改某个区块会导致它的签名改变,与后续区块记录的对不上,从而与后面的区块断开链接。要想让网络中的其他参与者接受这个被更改过的区块,就要把它跟后面的区块重新链接起来。
假设有一个矿工 恶意 篡改了某个区块内的交易,然后根据哈希运算为这个区块连同跟在它后面的所有区块生成了新的签名,以此让网络中的其他参与者都接受被篡改过的交易。问题在于,网络中的其他矿工也在原来的链上不断为新的区块计算签名。随着新的区块不断上链,作恶的矿工也要重新计算这些区块的签名。他必须保证所有区块都链接在一起,包括不断被添加到链上的新区块。除非这个矿工拥有的算力超过全网其他人的总算力,否则他永远赶超不了其他矿工。
只有一种例外,就是恶意参与者的算力真的超过全网其他人的算力总和,这种情况下是有可能篡改区块链的(即改变大家共同认可的历史记录),这就叫做 51% 攻击(以后为各位朋友们详细介绍)。
密码学货币
区块链是一种技术,实现和运行区块链技术的就是密码学货币,大家通过区块链技术记录密码学货币的交易记录,又可以通过“区块数字签名的哈希运算”获得奖励。这就是区块链和比特币的基础关系。
来源: 启明拉呱