首先区块链技术本质上是一个去中心化的分布式账本数据库,其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了网络交易有效确认的信息。
区块链简单的说,它就是超级账本和超级链的概念。它要求我们所有的人共用同一本账本。所有的参与方从原材料的一步一直到最终的使用者、消费者、买单者每个人都可以去查看账本。它是全透明的、有距离的、不可修改的、不可删除的。
一、区块链三个特性
1、分布式去中心化
由于区块链中每个节点和矿工都必须遵循同一记账交易规则,而这个规则是基于密码算法而不是信用,同时每笔交易需要网络内其他用户的批准,所以去中心化的交易系统不需要一套第三方中介结构或信任机构背书。而在目前,不管是传统的交易系统,还是第三方交易系统,都是基于中央账簿的体系中,中央账簿就扮演着信息保管员的角色,每笔交易需要第三方中介或者信任机构背书,这属于中心化的交易网络。
2、无须信任系统
区块链网络中,通过算法的自我约束,任何恶意欺骗系统的行为都会遭到其他节点的排斥和抑制,因此,区块链系统不依赖中央权威机构支撑和信用背书。
传统的信用背书网络系统中,参与人需要对于中央机构足够信任,随着参与网络人数增加,系统的安全性下降。和传统情况相反,区块链网络中,参与人不需要对任何人信任,但随着参与节点增加,系统
3、不可篡改和加密安全性
区块链采取单向哈希算法,同时每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性导致任何试图入侵篡改区块链内数据信息的行为都很容易被追溯,导致被其他节点的排斥,从而可以限制相关不法行为。的安全性反而增加,同时数据内容可以做到完全公开。
二、区块链记账原理
区块链(1.0)是一个基于密码学安全的分布式账本,是一个方便验证,不可篡改的账本。通常认为与智能合约相结合的区块链为区块链2.0,如以太坊是典型的区块链2.0,很多人只了解过比特币,不知道区块链,比特币实际是一个使用了区块链技术的应用,只是比特币当前太热,把区块链技术的光芒给掩盖了。区块链才是未来,期望各位开发人员少关心币价,多关心技术。
哈希函数
在讲区块链记账之前,先说明一下哈希函数。
哈希函数:Hash(原始信息)=摘要信息
原始信息可以是任意的信息,hash之后会得到一个简短的摘要信息
哈希函数有几个特点:
同样的原始信息用同一个哈希函数总能得到相同的摘要信息
原始信息任何微小的变化都会哈希出面目全非的摘要信息
从摘要信息无法逆向推算出原始信息
举例说明:
Hash(张三借给李四100万,利息1%,1年后还本息…..)=AC4635D34DEF
账本上记录了AC4635D34DEF这样一条记录。
可以看出哈希函数有4个作用:
简化信息
很好理解,哈希后的信息变短了。
标识信息
可以使用AC4635D34DEF来标识原始信息,摘要信息也称为原始信息的id。
隐匿信息
账本是AC4635D34DEF这样一条记录,原始信息被隐匿。
验证信息
假如李四在还款时欺骗说,张三只借给李四10万,双方可以用AC4635D34DEF来验证原始信息
哈希函数的这4个作用在区块链技术里有广泛的运用。
(哈希函数是一组函数或算法,以后会发文章专门介绍哈希)
区块链记账方法
假设有一个账页序号为0的账页交易记录如下:
区块链在记账是会把账页信息(包含序号、记账时间、交易记录)作为原始信息进行Hash,得到一个Hash值,如:787635ACD,用函数表示为:
Hash(序号0、记账时间、交易记录)=787635ACD
账页信息和Hash值组合在一起就构成了第一个区块。
比特币系统里约10分钟记一次账,即每个区块生成时间大概间隔10分钟
在记第2个账页的时候,会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash,即:
Hash(上一个Hash值、序号1、记账时间、交易记录)=456635BCD
这样第2个区块不仅包含了本账页信息,还间接的包含了第一个区块的信息。依次按照此方法继续记账,则最新的区块总是间接包含了所有之前的账页信息。
所有这些区块组合起来就形成了区块链,这样的区块链就构成了一个便于验证(只要验证最后一个区块的Hash值就相当于验证了整个账本),不可更改(任何一个交易信息的更改,会让所有之后的区块的Hash值发生变化,这样在验证时就无法通过)的总账本。
热门跟贴