区块链记账原理
区块链(1.0)是一个基于密码学安全的分布式账本,是一个方便验证,不可篡改的账本。通常认为与智能合约相结合的区块链为区块链2.0,如以太坊是典型的区块链2.0
很多人只了解过比特币,不知道区块链,比特币实际是一个使用了区块链技术的应用,只是比特币当前太热,把区块链技术的光芒给掩盖了。区块链才是未来,期望各位开发人员少关心币价,多关心技术。
哈希函数
在讲区块链记账之前,先说明一下哈希函数。
哈希函数:Hash(原始信息)=摘要信息
原始信息可以是任意的信息,hash之后会得到一个简短的摘要信息
哈希函数有几个特点:
1.同样的原始信息用同一个哈希函数总能得到相同的摘要信息
国际清算银行委员会:国际合作和跨境功能是设计央行数字货币的“先决条件”:7月11日消息,国际清算银行支付和市场基础建设委员会(CPMI)、国际银行创新中心、世界基金组织等机构联合发布了一份报告,报告表示,为了让央行数字货币(CBDC)改善跨境支付,各央行必须就央行数字货币的跨境机构准入问题做出根本决定。 报告还认为,CBDC设计必须及早考虑跨境功能,国际合作与协调是“先决条件”。[2022/7/11 2:05:29]
2.原始信息任何微小的变化都会哈希出面目全非的摘要信息
3.从摘要信息无法逆向推算出原始信息
举例说明:
Hash(张三借给李四100万,利息1%,1年后还本息…..)=AC4635D34DEF
账本上记录了AC4635D34DEF这样一条记录。
新大陆:子公司设立数字货币业务公司 专注于数字人民币业务:5月11日消息,新大陆公告,公司控股子公司亚大公司为适应公司有关数字货币业务发展需要、推进落实公司的战略布局,以自有资金设立子公司亚大数科公司,亚大数科公司的注册资本为人民币5000万元,亚大公司持有其100%股权。亚大数科公司将专注于数字人民币的生态建设支撑及运营服务等业务,同时在数字人民币国际化配套设施的建设及运营推广中积极贡献力量。(财联社)[2021/5/11 21:49:23]
可以看出哈希函数有4个作用:
①简化信息
很好理解,哈希后的信息变短了。
②标识信息
可以使用AC4635D34DEF来标识原始信息,摘要信息也称为原始信息的id。
③隐匿信息
声音 | 经济学家:传统货币与数字货币金融体系并行的时代已经到来:据零壹财经消息,经济学家朱嘉明近日表示,“金融危机”将趋于常态化;货币政策边际效益呈现递减;传统国际货币金融体系趋于解体,以区块链为基础的加密数字货币崛起已形成不可逆转的态势;股票市场作为传统资本市场的地位逐渐衰减。世界很快会进入到传统货币金融体系和数字货币金融体系并存的时代,而且这个时代已经到来。[2018/9/26]
账本是AC4635D34DEF这样一条记录,原始信息被隐匿。
④验证信息
假如李四在还款时说,张三只借给李四10万,双方可以用AC4635D34DEF来验证原始信息
哈希函数的这4个作用在区块链技术里有广泛的运用。
区块链记账方法
假设有一个账页序号为0的账页交易记录如下:
CCTV报道“纳斯达克考虑成为数字货币交易平台”:CCTV-2昨晚报道了“纳斯达克考虑成为数字货币交易平台”的消息。此前,纳斯达克CEO弗里德曼曾表示,纳斯达克对成为数字货币交易平台持开放态度,并且目前仍在同客户和数字货币交易所共同评估,将寻找不同于市面上已经存在的新的数字货币期货产品。[2018/4/27]
账号入账出账余额备注说明
王二100190收到xxx货款
张三10030xxxx
李四12090170xxxx
记账时间为:2017-10-2210:22:02
区块链在记账是会把账页信息作为原始信息进行Hash,得到一个Hash值,如:787635ACD,用函数表示为:
1Hash(序号0、记账时间、交易记录)=787635ACD
账页信息和Hash值组合在一起就构成了第一个区块。
比特币系统里约10分钟记一次账,即每个区块生成时间大概间隔10分钟
在记第2个账页的时候,会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash,即:
1Hash(上一个Hash值、序号1、记账时间、交易记录)=456635BCD
这样第2个区块不仅包含了本账页信息,还间接的包含了第一个区块的信息。依次按照此方法继续记账,则最新的区块总是间接包含了所有之前的账页信息。
所有这些区块组合起来就形成了区块链,这样的区块链就构成了一个便于验证,不可更改的总账本。
如何挖矿-工作量证明(POW)
记账是把交易记录、交易时间、账本序号、上一个Hash值等信息计算Hash打包的过程。所有的计算和存贮是需要消耗计算机资源的,既然要付出成本,那节点为什么还要参与记账呢?在中本聪的设计里,完成记账的节点可以获得系统给与的一定数量的比特币奖励,这个奖励的过程也就是比特币的发行过程,因此大家形象的把记账称为“挖矿”。
由于记账是有奖励的,每次记账都可以给自己凭空增加一定数量的个比特币,因此就出现大家争相记账,大家一起记账就会引起问题:出现记账不一致的问题,比特币系统引入工作量证明来解决这个问题。
规则如下:
一段时间内只有一人可以记账成功通过解决密码学难题竞争获得唯一记账权,其他节点复制记账结果
不过在进行工作量证明之前,记账节点会做进行如下准备工作:
①收集广播中还没有被记录账本的原始交易信息
②检查每个交易信息中付款地址有没有足够的余额
③验证交易是否有正确的签名
④把验证通过的交易信息进行打包记录
⑤添加一个奖励交易:给自己的地址增加比特币
⑥如果节点争夺记账权成功的话,就可以得到比特币的奖励。
工作量证明(POW)
每次记账的时候会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash。
如果仅仅是这样,显然每个人都可以很轻松的完成记账。为了保证10分钟左右只有一个人可以记账,就必须要提高记账的难度,使得Hash的结果必须以若干个0开头。同是为了满足这个条件,在进行Hash时引入一个随机数变量。
用伪代码表示一下:
#没有难度时为:Hash(上一个Hash值,交易记录集)=456635BCD
Hash(上一个Hash值,交易记录集,随机数)=0000aFD635BCD
改变Hash的原始信息的任何一部分,Hash值也会随之不断的变化,因此在运算Hash时,不断的改变随机数的值,总可以找的一个随机数使的Hash的结果以若干个0开头,率先找到随机数的节点就获得此次记账的唯一记账权。
TOC龙猫币运用的就是这样的工作量证明的挖矿原理,CPU越好越容易挖到矿,算力较低的处理器甚至可能会被抢矿,有兴趣可以下载一个测试一下,只要拥有一个龙猫币钱包就可以了。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。