THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

原创 THUBA  THU学生区块链

收录于话题
课程 1 #区块链 2

本系列课程是清华大学学生区块链协会THUBA推出,由PlatON赞助的区块链课程,涵盖了从区块链基础学习到深度原理研究等方面。

本系列课程从第一章区块链基础介绍开始,第一节是区块链历史发展与原理简介。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

背景:信息存储的历史发展

区块链是信息存储与共识的载体,在了解区块链发展前,我们先了解信息存储的历史发展

在远古时候,人类为了生存聚在一起生活,一块劳动共同对抗大自然的不确定性和外界的威胁。那个时候,由于最多的活动是打猎,捕到猎物会用绳子一个个地拴起来。当时人们发现,结越多,就代表着猎物越多,结越少,就代表猎物越少。就这样,人类开始使用打结来表示数量上的不同。

在古代北欧地区,牧羊人利用刻痕计数法来记录自己的羊群数量。英语单词score就源自北欧语skor,本意是“刻痕”。由于当地人采用20进制,一条刻痕代表20,所以score也就含有“20”的意思。

夏、商、西周三代时期,数字元号逐渐规范。公元前十四至十一世纪的殷墟甲骨文卜辞中有许多数字。其中有13个记数单字、1-9、10、100、1000、10000。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

西汉(公元前202年—8年)初期,中国人发明了造纸术(此前靠龟甲、兽骨、金石、竹简、木牍、缣帛等记录文字)。纸的出现让信息的能被记录、传播和继承,带来了革命性的进步,促进了人类文化的传播。纸也为打孔卡奠定了基础。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

打孔卡的发展历史

1725年法国人Basile Bouchon发明了打孔卡(穿孔卡),他用在纸上打孔的形式来存储图案,用于控制纺织机进行图案织造。

1801年Joseph Marie Jacquard将打孔卡顺序捆绑在一起用于提花织机,这是打孔纸带(Punched Tape)的雏形。

1846年Alexander Bain使用打孔纸带发送电报

1890年,Herman Hollerith发明了打孔卡制表机,用于收集并统计人口普查数据,标志着半自动化数据处理系统时代的开始。这种机器不仅统计速度更快,而且能够以新的方式理解信息,很快便应用到了各个行业。

1896年,Herman Hollerith成立了制表机公司,这家公司就是后来大名鼎鼎的IBM的前身。打孔卡和纸带直到80年代还在使用,持续了两个多世纪。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

随着存储设备的逐渐升级,同体积的硬件存储的容量呈指数级增长,出现了磁带、磁鼓、机械硬盘、固态硬盘等硬件存储设备。由于区块链需要非常大的存储量,这些硬件存储设备成为了区块链存储的根基。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

在计算机领域,存储是极为重要的应用。以数据库为例,上层应用在存储数据时只需要和数据库或其他数据管理系统打交道,而数据的具体存储方式不需要应用和开发者担心。目前的应用很多都依赖单一的数据库,有些则依赖于集群部署和多地部署的数据库。但无论如何,这些数据库都由公司或机构管理。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

一个应用场景:在一个食品供应链领域,食品的生产、加工、运输和零售都来自不同的企业。每个企业都管理着自己的数据库,维护着自己关心的数据。比如:生产方关注产品生产的原料消耗、制作时间、制作成本等;加工方关注产品的采购价格、采购时间、加工价格、加工时间等;运输方关注产品的运输时间、预期交付时间、运输位置、温度等;零售方关注产品的销量、进货时间、销售时间等。

当各方拥有的数据分开,会带来两个问题

1.数据造假追责较难。谁都有可能修改自己的数据库。一旦修改,各方难以达成共识找出足够的证据证明具体是谁改的;

2. 数据生态难以形成。由于各方的数据彼此隔离,想要使用这些全方面的数据实现更高的数据价值就非常困难。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

为了克服以上问题,这里提出一个方法:每个业务的参与方都维护同样的数据库,而对于这项业务的每次状态变更都记录在所有方的数据库中。当做到了所有数据库的一致性,那么也实现了数据的共享,能直接核对出数据库的篡改方。

但是,如果完全开放数据库的增删改查权限给每一方,这无形地成为一个分布式数据库,只做到数据共享但无法保证数据可信,无法确定哪些操作是合法以及谁进行了某些操作。

智能合约克服了以上问题。比特币的转账逻辑是一个简易的智能合约。以便了解智能合约。再举食品供应链的例子:生产方说自己生产了一个产品,准备发送给加工方。当他想对数据库里的产品数量进行+1操作时,他必须通过大家公认的智能合约里的create方法来增加产品数量。操作方必须先用自己的私钥签名才能进行操作,保证数据可追溯且可信任。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

假设生产方想要作恶,他只生产了一个产品但却写入了2。此时在区块链中,每个参与方都必须执行一遍以下合约。当大家运算结果都是1,并对1达成共识,那么私自改为2的节点自然无法达成共识,导致账本不被认可。再加上所有的操作都必须先由操作方进行签名,因此可以追溯到作恶的操作方。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

区块链的起源——比特币

2008年10月,一个自称为中本聪的人在一个密码学邮件列表中发布了一篇论文。论文描述了一种称为比特币数字货币,但在当时并未得到学术界或者企业界的太多重视。

2009年1月,中本聪发布了比特币软件0.1版,比特币系统正式开始运行。几天后,第一笔转账发生

2010年5月,第一笔比特币支付的真实交易产生:一个弗罗里达的程序员花1万比特币(当时约25美元) 买了两份披萨

2010年7月,第一个比特币交易所在日本成立

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介
THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

区块链的核心思想其实是一种分布式记账。

比较中心化与分布式记账。中心化记账

• 数据的存储和计算都在中心进行

• 交易依赖于对中心的信任

• 中心受到攻击后会造成很大的损失

• 中心本身可能会作恶

分布式记账

• 不需要可信任第三方

• 每个人的账本保存所有交易信息

• 通过类似民主投票的方式保证数据一致

• 大部分记账人诚实,系统则正常运行

值得一提的是,目前很多公司使用了集群数据库解决中心化记账的问题。但这些数据库仍然由一个机构所管理,没有本质上的改变。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

有了区块链,这里出现了两个重要的问题:1.节点为什么愿意帮助整个网络维持账本?2.如何防止交易过于频繁导致的网络账本不一致问题?

第一个问题:为了激励用户参与到区块链中,公链(有别于联盟链)会采用第一个记账者奖励、交易手续费和MEV激励用户。以比特币为例,奖励的实现如下:

我们将这种方法称为工作量证明。这种共识算法的记账规则为:

• 一段时间内只能有一个人记账成功。

• 通过竞争解决数学问题来获得记账权。

• 其它节点复制记账结果。

计算规则为:

• 找到随机数Nonce,使得Hash(上一个区块的Hash值,交易记录集,随机数)的值小于目标值。

• 难度根据全网算力。动态变化:diff_new=diff_old∗(k∗10)/cost(k), k=2016

• 奖励逐步减半,目前6.25个比特币的奖励。

• 由于以新发行比特币作奖励,因此被称为“挖矿”。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

对于第二个问题:需要通过某方法保证账本一致。

区块由区块头和区块主体构成,区块头负责实现区块链的基本功能,区块主体包含了交易信息。区块间为链式存储,每个区块都包含前一个区块的哈希值,相当于把上一区块的指纹放在下一区块里,彼此串在一起。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

可想而知,一旦有人篡改某个交易信息,所有的区块都需要进行修改,否则哈希验证无法通过,节点数据就出现问题。此外,如果哈希算得很快,那么节点可以推倒重新算一遍。反之如果算哈希需要几十分钟的时间,那么想要修改数据可谓是难比登天。这里的时间就是难度,是后面会讨论的问题。

区块链系统中节点包含以下几类:

• 钱包,存储地址和私钥,允许用户交易。

• 账本,记录所有交易历史。

• 矿工,通过记录交易和解决数学难题来生成新的区块。

• 路由,将其他节点传输的交易数据等信息进行广播。

对于节点,它们的行为模式包括:

• 监听, 网络中每个节点都在监听正在发生的交易。

• 加入交易池,一旦节点监听到交易并验证为合法,就加入到自己的交易池,准备打包进新的区块。

• 挖矿,所有节点都会做数学题 (挖矿) 来争夺记账权并获取收益,先解出者可以向全网广播区块。

• 验证区块,当且仅当区块中所有交易均有效且首次出现,其他节点才认同该区块的合法性,并将其加到自己的区块链末尾,一笔新的交易一般需要经过6个区块的确认才算有效。

区块链的分类

并不是所有区块链都和比特币一样。根据节点的准入规则,可以将它们分为公有链、联盟链和私有链:

公有链对所有人开放,任何人都能参与,如比特币、以太坊、PlatON等。

联盟链对特定的组织团体开放,如Fabric、BCOS、百度超级链等。

私有链对单独的个人或实体开放,通常由公司或个人内部使用。

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

几个著名的公链项目介绍

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

比特币(Bitcoin)是一种基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的加密货币。比特币由中本聪(网名)(Satoshi Nakamoto)于2008年10月31日发表论文提出。

以太坊(Ethereum)是一个去中心化的开源的有智能合约功能的公共区块链平台。以太币(ETH)是以太坊的原生加密货币。截止 2021 年 8 月,以太币是市值第二高的加密货币,仅次于比特币。

PlatON 是专注于可扩展性和隐私保护的高性能分布式计算网络,通过可验证计算、安全多方计算、零知识证明、同态加密等密码学算法共同组装的下一代计算架构,为全球人工智能、分布式应用开发者、数据提供方及存有计算需求的各类社区、机构、个人,提供开源架构下的公共基础设施软件开发、咨询、运营服务。

各类区块链对比

公有链

•任何人都可加入网络访问/写入数据

•每秒3-20次数据写入

•需要给挖矿者激励

联盟链

•授权公司和组织才能加入网络

•每秒1000次以上数据写入

•机构间互利共赢,无需激励

私有链

•单个公司和组织管理的网络

•每秒1000次以上数据写入

•无需激励

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介


点击“阅读原文”,观看完整视频

👇👇👇
https://www.bilibili.com/video/BV1th411b7qM

登陆Bilibili,关注THUBA

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

END

文稿&视频 | 卢光宏

编辑| 杜立恒

排版 | 杜立恒   Celia

审核 | Zeo

THUBA专栏 | 《区块链系列课程》1.1区块链历史发展与原理简介

本文转载自https://mp.weixin.qq.com/s/AeRV2tru6tVS3BArssVFfg

(3)
上一篇 10月 18, 2021 21:27
下一篇 10月 19, 2021 09:37

相关推荐

发表评论

登录后才能评论