区块链记账原理

区块链(1.0)是一个基于密码学安全的分布式账本,是一个方便验证,不可篡改的账本。
通常认为与智能合约相结合的区块链为区块链2.0, 如以太坊是典型的区块链2.0
很多人只了解过比特币,不知道区块链,比特币实际是一个使用了区块链技术的应用,只是比特币当前太热,把区块链技术的光芒给掩盖了。区块链才是未来,期望各位开发人员少关心币价,多关心技术。
本文将讲解区块链1.0技术是如何实现的。

哈希函数

在讲区块链记账之前,先说明一下哈希函数。
哈希函数:Hash(原始信息) = 摘要信息
原始信息可以是任意的信息, hash之后会得到一个简短的摘要信息

哈希函数有几个特点:

  • 同样的原始信息用同一个哈希函数总能得到相同的摘要信息
  • 原始信息任何微小的变化都会哈希出面目全非的摘要信息
  • 从摘要信息无法逆向推算出原始信息

举例说明:
Hash(张三借给李四100万,利息1%,1年后还本息 .....) = AC4635D34DEF
账本上记录了AC4635D34DEF这样一条记录。

可以看出哈希函数有4个作用:

  • 简化信息
    很好理解,哈希后的信息变短了。
  • 标识信息
    可以使用AC4635D34DEF来标识原始信息,摘要信息也称为原始信息的id。
  • 隐匿信息
    账本是AC4635D34DEF这样一条记录,原始信息被隐匿。
  • 验证信息
    假如李四在还款时欺骗说,张三只借给李四10万,双方可以用AC4635D34DEF来验证原始信息

哈希函数的这4个作用在区块链技术里有广泛的运用。
(哈希函数是一组函数或算法,以后会发文章专门介绍哈希)

区块链记账方法

假设有一个账页序号为0的账页交易记录如下:

账号 入账 出账 余额 备注说明
王二 100 190 收到xxx货款
张三 100 30 xxxx
李四 120 90 170 xxxx

记账时间为:2017-10-22 10:22:02

区块链在记账是会把账页信息(包含序号、记账时间、交易记录)作为原始信息进行Hash, 得到一个Hash值,如:787635ACD, 用函数表示为:

Hash(序号0、记账时间、交易记录) = 787635ACD

账页信息和Hash值组合在一起就构成了第一个区块。

比特币系统里约10分钟记一次账,即每个区块生成时间大概间隔10分钟

在记第2个账页的时候,会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash,即:

Hash(上一个Hash值、序号1、记账时间、交易记录) = 456635BCD

这样第2个区块不仅包含了本账页信息,还间接的包含了第一个区块的信息。依次按照此方法继续记账,则最新的区块总是间接包含了所有之前的账页信息。

所有这些区块组合起来就形成了区块链,这样的区块链就构成了一个便于验证(只要验证最后一个区块的Hash值就相当于验证了整个账本),不可更改(任何一个交易信息的更改,会让所有之后的区块的Hash值发生变化,这样在验证时就无法通过)的总账本。

记账有成本,想了解节点为什么要记账,请看这篇:比特币如何挖矿(挖矿原理)-工作量证明

? 深入浅出区块链 - 系统学习区块链,打造最好的区块链技术博客。

? 我的知识星球为各位解答区块链技术问题,欢迎加入讨论。

? 关注公众号“深入浅出区块链技术”第一时间获取区块链技术信息。

原文地址:http://blog.51cto.com/13457438/2114459

时间: 2024-11-08 20:50:02

区块链记账原理的相关文章

通过blockchain_go分析区块链交易原理

原文链接-石匠的Blog 1.背景 在去中心化的区块链中进行交易(转账)是怎么实现的呢?本篇通过blockchain_go来分析一下.需要进行交易,首先就需要有交易的双方以及他们的认证机制,其次是各自的资金账户规则.在分布式账本系统里面,需要有机制能够准确验证一个用户身份以及对账户资金的精确计算,不能出现一丁点差错.在区块链中交易通过Transaction表示,而账户的自己并不是在每个节点上保存每个用户的一个余额的数字,而是通过历史交易信息计算而来(历史交易不可篡改),其中的关键机制是UTXO.

2.2 区块链技术原理

区块链从字面上理解:数据记录在区块中,通过一定的算法把区块连成一个链.       区块链通过哈希(Hash)算法,生成一串字符串,保存在区块的头部中,一个的区块通过指向上一个Hash值,加入到区块链中:Hash算法是一种加密算法,指对原始信息进行特定的转换运算,换算成对应的加密值(称为Hash值):是一种单向的加密方式,加密后的密文不可逆推,只有加密过程,没有解密过程:区块链中使用SHA-256算法对区块进行加密.       区块是区块链中的主要数据存储结构,一个区块由区块头和区块体两部分组

区块链入门学习资源

众所周知去年比特币大涨,很多人都投入到挖矿或者投资比特币上,而比特币的底层技术是区块链.所以导致最近区块链技术火热,区块链声称能够改变未来的互联网,让其能够成为一个能够传递价值的互联网.很多小伙伴也纷纷想投入到区块链的学习,虽然这是一项08年就提出的技术,可是到近年来才开始被广泛受到关注.所以网络上的学习资源也参差不齐,我这里就介绍一些我看到过的,而且还不错的入门学习资源.后续如果看到一些好的学习资源也会在这里更新. 如果英文好的话还可以不局限于国内的资源,国外的学习资源更丰富,还有教学视频啥的

比特币以及区块链原理学习

2018年春节过后区块链技术一下子火爆起来了,本人也对该技术十分感兴趣,因此想研究下区块链技术的原理,看看区块链背后那些技术值得去研究.由于自己缺乏实际的开发经验和使用经验,文中难免会有些理解不到位,本文主要的目的还是想将最近的学习梳理总结一下. 一.概述 比特币是存储在计算机里一枚货币,计算机存储的本质就是一串数字,那么存储比特币的这串数字为什么就可以等同于真正的货币呢?而且比特币让人感觉很像黄金,不管这黄金从什么渠道获取(从沙子里掏的,还是自己购买的),人类都会认同它的财富价值. 说到比特币

区块链产业生态、存在问题及政策建议|一文读懂新趋势

区块链产业生态.存在问题及政策建议|一文读懂新趋势 2017-03-03 09:47:50  来源: 腾讯研究院抢沙发 摘要:从技术上来讲,区块链是一种分布式的记账方法.说到记账,我们经历了从实物记账向电子记账的演变关键词: 区块链 中国信息通信研究院与腾讯研究院区块链联合课题组 卿苏德,中国信息通信研究院区块链研究团队研究员,主要研究方向为区块链和人工智能等. 一.区块链技术原理和发展趋势 01| 区块链--一种分布式记账方法 从技术上来讲,区块链是一种分布式的记账方法.说到记账,我们经历了从

谈谈目前我对区块链(Blockchain)的认识

从 IBM Bluemix 云平台的过程中,发现了 Blockchain 这个服务,我才知道有这样一种强大火热的技术存在:只前只是知道有比特币,还申请过一个账户也想去挖矿,但后来也是不了了之了,并没有去研究过它背后的技术.前些天看到"关于区块链,你在畅想它,还是开启它?"的话题,根据自己的了解发了一下自己的一点不成熟的看法.为了更深入的了解它,昨天又去参加了"区块链技术与互联网金融的创新和挑战 "的线下活动,现场聆听了朱志文,李赫,汪波等老师的分享,收获很多. 比特

逻辑烧脑:python 区块链的简易实现

区块链技术因为比特币的火爆而广受关注,我们这里用 python 代码来聊一下区块链技术: 区块链实现原理的简易描述 区块链技术做为一种数字记账技术,其核心是将保存了交易数据的区块,以加密的方式,按时间的顺序链式记录.区块链本身就是一个公共的数据库,系统将新诞生的业务数据存储在被称为区块的容器之中,并将该区块添加到已有区块组成的链条之中.有点像贪吃蛇,吃的区块越多,蛇的身体越长:在比特币的应用场景下,这些数据是一组转账交易记录.在共享单车的应用场景下,这些数据就可以是借车还车的交易记录. 区块链的

看了这个对区块链有了些了解

转自https://www.2cto.com/kf/201803/727574.html 如果你还没有听说过 3 点钟区块链群,说明你还不是链圈的人;如果你还没有加入 3 点钟区块链群,说明你还不是链圈的大佬;如果你还没有被 3 点钟区块链群刷屏,说明你还体会不到什么是"币圈一天,人间一年". "三点钟区块链"无疑成为了大家春节期间焦虑的根源,而"区块链"注定是 2018 年被持续讨论.关注的行业性热点话题. 3 月 1 日,朱啸虎对正翻涌不断的

星光区块链

如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人.这也就相当于改变数据库所有的记录,发给全网的其他每个节点,所以区块链技术也称为分布式账本(distributed ledger).联系电话:0755-23204229 区块链可以大致分成两个层面,一是做区块链底层技术;二是做区块链上层应用,即基于区块链的改造.优化或者创新应用.一:区块链的核心意义到底是什么我们