区块链100讲:从村里的账本来看什么是区块链

【概念】区块链中账本是什么?通用区块链平台账本概念介绍,一个谁都能看懂的账本概念 在联盟链中账本的使用,在公有链中账本的使用,在私有链中账本的使用,想知道账本是什么吗?本文通过最简单的故事去让大家理解账本,初学者快点点进来吧 阅读详情

image

很久以前就有个想法,把区块链的技术和概念整理成一个体系化的知识图谱,方便大家查阅和学习,大话已说出去很久,却一直没有践行(papa打脸!),每天的文章发布零散而缺乏规律,相信你们看了也有点丈二和尚的感觉。

那么从今天开始立下一个flag,每天(周一到周五)一篇文章,整合资料,介绍一个点,系列命名《区块链100讲》,今天先从什么是区块链开始吧~

本文摘自《白话区块链》,作者以一个通俗的例子介绍了什么是区块链,讲真,这是目前为止看到的最好理解的解释了。小编曾经用这个例子跟很多圈外人介绍过什么是区块链,灰常好用,看到大家崇拜的眼神心里美滋滋~!

小哥哥小姐姐们可以学起来,展(撩)露(妹)才(撩)学(汉)的机会来了~!

当然不能忘记,感谢作者蒋勇老师,感谢机械工业出版社华章分社提供内容。

1

从一本账本说起

早些时候,农村一般都会有个账房先生,村里人出个工或者买卖些种子肥料等,都会依靠这个账房先生来记账,大部分情况下其他人也没有查账的习惯,那个账本基本就是这个账房先生保管着,到了年底,村长会根据账本余额购置些琐碎物件给村里人发发,一直以来也都是相安无事,谁也没有怀疑账本会有什么问题。账房先生因为承担着替大家记账的任务,因此不用出去干活出工,额外会有些补贴,仅此一点,倒也是让一些人羡慕不已。下图便是当时账本的记账权图示:

image

终于有一天,有个人无意中发现了账房先生的那本账。看了下账面,发现数字不对,最关键的是支出、收入、余额居然不能平衡。对不上,这可不行,立即报告给其他人,结果大家都不干了,这还得了。经过一番讨论,大家决定,轮流来记账,这个月张三,下个月李四,大家轮着来,防止账本被一个人拿在手里。于是,账本的记账权发生了如下图所示的变化:

image

通过上图我们可以看到,村里的账本由大家轮流来保管记账了,一切又相安无事了,直到某一天,李四想要挪用村里的公款,可是他又怕这个事情被后来记账的人发现,怎么办呢?李四决定烧掉账本的一部分内容,这样别人就查不出来了,回头只要告诉大家这是不小心碰到蜡烛,别人也没什么办法。

果然,出了这个事情以后,大家也无可奈何。可是紧接着,赵六也说不小心碰到蜡烛了;王五说不小心掉水里;张三说被狗啃了……终于大家决定坐下来重新讨论这个问题。经过一番争论,大家决定启用一种新的记账方法:每个人都拥有一本自己的账本,任何一个人改动了账本都必须要告知所有其他人,其他人会在自己的账本上同样地记上一笔,如果有人发现新改动的账目不对,可以拒绝接受,到了最后,以大多数人都一致的账目表示为准。

果然,使用了这个办法后,很长一段时间内都没有发生过账本问题,即便是有人真的不小心损坏了一部分账本的内容,只要找到其他的人去重新复制一份来就行了。

然而,这种做法还是有问题,时间长了,有人就偷懒了,不愿意这么麻烦地记账,就希望别人记好账后,自己拿过来核对一下,没问题就直接抄一遍。这下记账记得最勤的人就有意见了。最终大家开会决定,每天早上掷骰子,根据点数决定谁来记当天的账,其他人只要核对一下,没问题就复制过来。

我们可以看到,在这个时候,账本的记账权变成了这样:

image

通过上图,我们可以看到,经历了几次风雨之后,大家终于还是决定共同来记账,这样是比较安全的做法,也不怕账本损坏丢失了。后来大家还决定,每天被掷到要记账的人,能获得一些奖励,从当天的记账总额中划出一定奖励的比例。

实际上,最后大家决定的做法,就是区块链中记账方法的雏形了,接下来我们就来了解一下区块链的技术理念。

2

区块链技术理念

区块链在本质上就是一种记账方法,当然了,并不是通过人来记账的,而是通过一种软件,我们暂且简称为区块链客户端。以上面的例子来说,张三、李四、王五、赵六等人,就相当于一个个的区块链客户端软件,它们运行在不同的设备上,彼此之间独立工作。通常我们把运行中的客户端软件称为“节点”。这些节点运行后,彼此之间会认识一下。它们彼此之间是这样认识的:张三认识李四也认识王五,赵六联系到了张三,让张三把他认识的人的联系方式发给自己,这样赵六也认识了李四和王五,通过这样的方式,大家就形成了一张网,有什么事只要招呼一声,立马消息就会传遍整个网络节点。这种方式跟新闻转发差不多,不需要依靠某一个人,大家就能互通消息了,在区块链软件的结构中,这种互相通信的功能称为“网络路由”。

在这个网络中,每个节点都维护着自己的一个账本,账本中记录着网络中发生的一笔笔账务。具体是什么样的账务呢?这得看具体是什么样的功能网络。区块链技术属于一种技术方法,可以用来实现各种不同的业务功能,小到如上例中的日常记账,大到各种复杂的商业合约,等等,记录的数据也就不同了。网络中的节点是独立记账的,可是记账的内容要保持彼此一致。所用的方法就是设定一个游戏规则,通过这个规则选出一个记账的节点,就如上例中的掷骰子。在区块链系统中,这个所谓的“掷骰子”称为“共识算法”,就是一种大家都遵守的筛选方案,我们可以先这么简单地理解。选出一个节点后,则一段时间内的账务数据都以这个节点记录的为准,这个节点记录后会把数据广播出去,告诉其他的节点,其他节点只需要通过网络来接收新的数据,接收后各自根据自己现有的账本验证一下能不能接得上,有没有不匹配和不规范的,如果都符合要求,就存储到自己的账本中。

在有些系统中,会考虑到被骰子投中的节点的劳动付出,毕竟它要负责整理数据,验证数据,打包数据,还要再广而告之,这个活还是挺辛苦的。于是会设计一种激励机制,负责打包数据的那个节点可以获得系统的奖励,这个奖励类似于论坛积分,站在软件技术的角度,就是一个数据。这个数据可以视为奖金,有时候大家会很积极地去争取那个奖金,于是就希望骰子能投中自己,有些区块链系统在这个环节会设计出一种带有竞争的机制,让各个节点去抢,谁能抢到这个机会谁就能获得打包数据的权力并且同时获得这笔奖励,在这种情况下,我们会形象地将这个竞争的过程称为“挖矿”。

那么,话又说回来了,我们将一个个运行客户端称为节点,那到底怎么标记不同的使用者呢?也是通过用户名注册吗?实则不然。在区块链系统中,这个地方的设计很有意思,是通过一种密码算法来实现的,具体来说是通过一种叫公开密钥算法的机制来实现的。我们知道,对于一种密码算法来说,无论算法过程是什么样的,都会有一个密钥。而公开密钥算法拥有一对(也就是两个)密钥,跟虎符一样,是彼此配合使用的,可以互相用来加解密。其中一个叫私钥,另外一个叫公钥,公钥可以公开给别人,私钥要自己保管好。在区块链系统中,公钥就是用来用户身份识别的,一般不会直接使用公钥,因为不容易让人记住。公钥往往都比较长,实际处理的时候都会进行转换,比如取得公钥的最后20个字节或者经过一系列更复杂的转换,最后得到一个称为“地址”的转换结果,这个“地址”就能代表一个用户。

为什么在区块链系统中要用这么一个奇怪的用户身份表示方法呢?似乎看起来除了有些创意外,也没特别的用处。这里我们就得再介绍下这个公开密钥算法的特别能力。之前提到说这种算法有两个密钥,那么这两个密钥是怎么配合工作的呢?我们来简单说明一下:用公钥加密的数据必须用对应的私钥来解密,而用私钥加密(通常称为“签名”)的数据必须用对应的公钥来解密。这个特点可是能发挥很大用处的,就如上述的例子中,如果张三要发送给李四一张支票,那怎么传送呢?就这么发过去,会被那个记账的人拿到,风险可就大了。于是张三想了一个办法,他在支票上用李四的公钥加了个密,然后再签上自己的名字(使用自己的私钥签名),这个时候其他人就算拿到支票也没用,因为只有李四才有自己的私钥,也只有李四才能解开这张支票来使用。这种功能设计在区块链系统中称为“脚本系统”。

现在我们知道了,区块链的技术理念,其实就是大家共同来参与记账,通过一种规则不断地选出账务打包者,其他节点接收验证,并且每个用户都有一对密钥表示自己,通过脚本系统的功能实现在公共网络中定向发送有价值的数据。

3

一般工作流程

通过上面的例子,相信读者朋友对区块链已经有了基本认识。区块链系统有很多种,第一个应用区块链技术的软件就是比特币,事实上区块链的概念就是比特币带出来的。到现在为止,已经出现了相当多的基于区块链技术的衍生系统,比如闪电网络、公证通、以太坊、超级账本项目等。每一类系统都有自己的特点,例如汽车设计,有的设计成跑车,有的设计成运输车,有的设计成商务车,但是有一点,无论是什么类型的车,它的工作方式或者说工作流程都是类似的,在本质上它们都是同一类技术结构的产物。在这一小节,我们从一般性的角度阐述一下区块链系统的工作流程,为了便于说明,我们会选取一些场景例子。

我们先来看一个转账交易的流程。转账交易本质上就是发送一笔数据,这个数据可以表示为资产,也可以表示为订单或者其他各种形式的数据,我们看一下下面的图示。

image

从图中我们可以看到,整个数据的发送过程其实还是很简单的,数据发送出去后,会被打包进区块,然后广播出去给所有的节点确认,确认没有问题后就写入到各自的本地区块链账本中,当网络中的大多数节点都确认写入后,这个转账过程就算是完成了。有朋友可能会问,在这种分布式的网络中,怎么能知道是被大多数节点确认写入了呢?这里并没有什么服务器登记呀?这个问题我们先留着,在下面讲到区块链分类的时候会有详细的解释,大家可以先思考一下。

image

这个工作流程图是有代表性的,其他各种系统都是在这个基础上进行衍生和扩展。比如有些会增加身份认证功能,以确保只有符合身份验证的用户才能发送数据;有些则扩展交易数据的表达能力,不但能用来表示一般的交易转账,还能表示更复杂的商业逻辑。各种应用很多,但是万变不离其宗。

实际上,说一千道一万,整个区块链网络,就是大家共同来维护一份公共账本。注意了,这个公共账本是一个逻辑上的概念,每个节点各自都是独立维护自己账本数据的,而所谓的公共账本,是说各自的账本要保持一致,保持一致的部分就是公共账本,我们看下图示:

如图所示,有些节点在广播新的数据,有些节点在接收数据,大家共同维护一个账本,确保达成一致。区块链技术其实就是围绕如何保持数据的一致、如何让这个公共账本的数据不被篡改来展开的。

本期就讲到这里,下期继续。什么是区块链,你明白了吗?找个身边的人演练一下吧~

本文内容节选自《白话区块链》一书的第1章《例说区块链》。

本书作者:蒋勇、文延、嘉文

感谢机械工业出版社华章分社的支持和分享。

以下是我们的社区介绍,欢迎各种合作、交流、学习:)

image

J9数字论:如何理解区块链中的公链,私链,侧链,联盟链 但联盟链依旧提供分散的结构,链上的每一个组织或机构都能受到平等的待遇,网络并非是被单方组织掌控的,各方之间的事务在链上保持公平和透明。相比估值在熊市中依旧高企的新公链,我们或许也不应忽视正在建设中且估值相对合理的特色公链,无论是开发中的还是尚未存在的未来公链,打败以太坊的或许不是以太坊的Fork,而是更具破局性质,能够帮助Web3.0走向成熟形态的好用公链。区块链简而言之,就是一个分散式的记账本,有着点对点交易查询,公正,透明,可追溯,不可篡改,去中心化的特点。 阅读详情

相关推荐

【干货】三分钟搞懂区块链重要应用——智能合约

如今的互联网话题总是离不开区块链,但凡提到区块链,话题必然是比特币、智能合约、以太坊…如果这些还没整明白,很多小伙伴就没法愉快的聊天啦,所以今天维维要科普的是区块链另外一个重要应用——智能合约 智能合约是什么?概念是如何形成的呢?智能合约虽然被称为“区块链2.0”的一个代表性产物,其实它在很早的时候就被提出,早在1995年智能合约由跨领域法律学者尼克萨博提出来的,几乎是与互联网同时出现他定义智能合...

mv_1818的博客 5241

ChainDesk:交易数据的存储

            作者:ChainDesk韩小东 ChainDesk官网:http://www.chaindesk.cn/?20190112jinritoutiaomeiti 目标 1.了解账本数据组成结构 2.了解区块本身及事务数据的组成结构 3.理解账本数据的存储过程 任务实现 9.1.1 区块链账本数据 分类账本中保存着所有交易变化的记录,具有有序和防篡...

weixin_43970764的博客 712

本地如何安装midscene.js运行环境

手把手教你本地安装midscene.js运行环境

实践助梦想成长 2610

共识问题:区块链如何确认记账权?

区块链可以说是最近几年最热的技术领域之一,区块链起源于中本聪的比特币,作为比特币的底层技术,本质上是一个去中心化的数据库,其特点是去中心化、公开透明,作为分布式账本技术,每个节点都可以参与数据库的记录。

欢迎朋友,我是一名十多年开发经验的新手,希望多多指教。 2920

从零到一:Cadence AC仿真中的运放性能参数深度解析与实战避坑指南

本文深度解析Cadence AC仿真中运放性能参数的精确测量方法,包括开环增益、带宽和相位裕度等关键指标。通过实战案例分享常见设置错误的避坑技巧,帮助工程师提升设计成功率和仿真效率,特别针对全差分运放和工艺角分析提供专业指导。

www00的博客 294

比特大陆校招笔试

我当时做的时候没有概念(上边倒计时我一直以为是一个模块的),所以第一个模块写的太长了导致最后才留15分钟快速选的(一共18道题),有一题最后没有选上,两题没有认真看题目瞎选的,求求求过过过!选择题:主要考高中物理题、数学题(念过高中的一定会,但是需要时间算,需要留25分钟左右的时间做)第一道就是写个人的内容,什么最近读过的书,最近的感受等等;分为两个模块,考试内容超级无敌简单,但是注意时间掌握。注意这里别花太长的时间,不然后边来不及。第二道逻辑分析题,需要你写解答。

Domainwa的博客 669

区块链学习8:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名

介绍Hyperledger Fabric中的背书、背书节点、背书策略 以及背书签名的概念,并通过背书节点参与交易的过程来说明相关功能

老猿Python 8695

在虚拟机上搭建FTP服务器

chroot_list_file=/etc/vsftpd/chroot_list # 对chroot_list下用户限制。[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #打开配置文件。# 指定用户的shell: -s /usr/bin/nologin。# 在配置文件中找到以下几行代码, 去掉注释(去掉 "#"号)# 指定用户主目录:/data/ftp/ftpuser -M。(2)修改配置文件,路径/etc/vsftpd/ 下的文件。

weixin_70753380的博客 3211

区块链100讲:区块链为什么叫“区块”“链”?

区块链第2讲:什么是“区块”,它们是怎么“链”起来的,区块里面记录了什么信息?

HiBlock的博客 1794

Matplotlib字体警告终结者:为什么总提示DejaVu Sans?5种场景解决方案大全

本文深入解析Matplotlib中常见的DejaVu Sans字体警告问题,并提供5种典型场景的完整解决方案。从理解字体系统的三层架构和缓存机制,到解决中文显示、远程服务器部署、TeX渲染、缓存优化及生产环境配置等实际问题,帮助开发者彻底摆脱字体警告困扰,实现稳定可靠的数据可视化。

view3的博客 504

深度学习驱动材料科学:晶体生成与性质预测技术综述

深度学习作为人工智能的核心技术,通过模拟人脑神经网络处理复杂数据,在多个领域展现出强大的模式识别与生成能力。其原理在于构建多层非线性变换,从海量数据中自动学习特征表示与映射关系。这一技术价值在于能够高效处理高维、非结构化数据,解决传统方法计算成本高、探索空间有限的问题。在工程实践中,深度学习已广泛应用于计算机视觉、自然语言处理等领域,并正深刻变革材料科学的研究范式。具体到材料领域,它通过学习已知材料的构效关系,实现对新材料性能的快速预测与逆向设计。应用场景包括但不限于新能源材料、半导体、催化剂等领域的高通量

weixin_28695161的博客 416

区块链大讲堂第一期丨什么是区块链?怎样通俗的理解区块链?

前言: 北京时间2019年10月25日晚7点的新闻联播,用了最宝贵的前五分钟,只讲了一件事情:国家要大力发展区块链技术。 这让很多人不明白,不是一直在打击数字货币吗,怎么又要大力发展区块链了?这意味着什么? 这意味着数字时代货币战争的号角已经吹响,美国自布林顿森林体系瓦解后建立的美元霸权主义将面临东方力量的强力挑战。 很多人一开始搞不懂什么是区块链?然后就被各种“区块”、“挖矿”、“去中心化”、“双花攻击”、“拜占庭将军问题”等各种专业名词搞的晕头转向,为了能够让更多的人了解区块链相关技术,零时科技将不定.

m0_37598434的博客 403

“华为杯”研究生数学建模竞赛2020年-【华为杯】D题:无人机集群协同对抗(附获奖论文和MATLAB代码实现)

1.问题重述摘 要:本文针对非线性约束条件下红蓝双方无人机集群协同对抗的最优规划问题,结合贪婪队形、非线性规划、内点法、蒙特卡洛方法和全联立正交配置有限元法,构建了无人机集群协同对抗推演模型。,构建了。我们综合考虑了,和。首先分析红方在集群约束下的贪婪队形和拦截策略,然后我们基于内点法联合MATLAB和AMPL编程求解蓝方突防的非线性规划解,最后基于蒙特卡洛法对整个蓝方突防过程进行推演,得到突防概率图。通过推演,我们提出了两块的区域作为所求区域,并对蓝方的最优突防策略进行分析。

getusushu的博客 1552

【区块链学习笔记】基础知识篇

目录一、数字货币二、接触区块链的小故事三、区块链的起源四、比特币1. 比特币与区块链的关系2. 比特币的作用机制五、信任的建立和区块链的形象解释1. 区块链建立信任的方式2. 区块链的定义3. 区块链的分类六、哈希算法1. 哈希算法的特征2. 典型的哈希算法3. 哈希算法在区块链中发挥着怎样的作用4. Merkle树在区块链中发挥着怎样的作用七、挖矿1. 工作量证明2. 工作量证明的过程八、 钱包、私钥、签名与交易1. 钱包2. 比特币交易 一、数字货币 区块链确实脱胎于数字货币,它生来就是为数字货币服务的

Famidlistimo的博客 3828

AI测试:手把手教你用AI做Web自动化测试「喂饭教程」

本文介绍了基于MCP协议和使用 mcp-use + playwright-mcp 构建智能Web自动化测试框架的实践方法。通过整合大语言模型的理解能力与测试工具可靠性,该方案支持用自然语言描述测试流程,自动转换为可执行的测试步骤,提升测试效率,支持复杂场景和多步骤流程,为自动化测试提供了新思路。

blues_C的博客 1286

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

菜市场大妈都能懂的“记账本”:为什么全村人一起记的账,村长偷偷改不了?

区块链:让记账不再“糊涂” 本文通过农村记账的生动比喻,解释了区块链的核心概念: 中心化记账问题:传统账本由村长独管,易被篡改且不透明。 分布式记账方案:全村人同步记录同一账本(区块链),数据公开且不可篡改(需修改所有副本才能作弊)。 链式结构:每页账本(区块)包含上一页的“指纹”(哈希值),篡改任一页会导致后续链条断裂。 共识机制:通过“解题竞赛”(PoW)、“存款权重”(PoS)或“代表轮岗”(DPoS)选举记账员,确保数据一致。

guo162308的博客 344

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

区块链100讲:用来抨击区块链的算力浪费,到底是浪费了什么?

上一讲《区块链100讲:不做码农做矿工,该怎么和爹妈解释》说到**“挖矿”的实质就是矿工依靠算力争夺打包权**。那么这个“算力”又是什么呢?本期《区块链100讲》聊聊**“什么是算力”**。 ****算力可以简单理解为计算能力。挖矿就是一道计算题,****在通过“挖矿”得到比特币的过程中,矿工需要在最快的时间内通过一个随机数计算出一个值小于给定的难度目标,而要找到这个值,并没有固定算法,只能靠计...

weixin_34192732的博客 219

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

区块链入门【一】:揭开“信任机器”的神秘面纱

区块链是一种去中心化的数字账本技术,通过全民记账取代传统中心化记账模式,确保数据不可篡改。其核心原理是将交易数据打包成"区块",并通过密码学哈希值将区块链接成环环相扣的"链"。为了激励参与者维护账本,区块链设计了"挖矿"机制,通过算力竞赛获得系统奖励和手续费。这种技术使互不相识的陌生人能建立可靠信任,实现价值转移而非信息复制,有望改变金融、版权等行业的底层逻辑。区块链的三大核心是去中心化、不可篡改和共识机制,为价值互联网奠定了基础。

weixin_38717458的博客 921

什么是区块链

本文只是对区块链进行了一个介绍,帮助大家理解。

qq_66386046的博客 1132

区块链需要学习哪些东西_区块链——好东西被滥用的典型

音频和文稿一起食用效果更佳区块链用一句话概括就是:点对点的存储我们上期讲过P2P,P2P指的是点对点交易,如果把区块链和P2P放在一起说,可以这么理解,P2P是一种理想中的人与人之间的关系,而区块链是达到P2P这个理想的技术保障。有了区块链技术才能达成P2P状态。就好比一个人有个远大理想是让人人都有房子住,安得广厦千万间,大庇天下穷人尽欢颜。理想很崇高,但是得有人盖房子,得有房子,理想离...

weixin_39796868的博客 112

区块链简史

  区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。   狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。  广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法...

MrZhang的博客 375

物联网与区块链

物联网与区块链 物理网的概念,相信大家都不陌生,在之前的文章中我们已经说了很多关于物联网相关的知识了。什么是区块链?物联网和区块链又有什么联系?现在我们就来了解一下。 什么是区块链? 区块链技术是金融科技(Fintech)领域的一项重要技术创新。简单说,就是分布式记账,起到去中心化的作用。 举个栗子: 荣耀村选举的村长负责村民之间的账本保管并且进行交易记录,比如说村长老夫子记录了,庄周、...

qywl_1050的博客 753
上一篇: 应用二进制接口(ABI) 说明——Solidity中文文档(7)
下一篇: 【众说区块链】All in区块链和嘲笑区块链的人都是怎么想的
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值