原创 THUBA THU学生区块链
本系列课程是清华大学学生区块链协会THUBA推出,由PlatON赞助的区块链课程,涵盖了从区块链基础学习到深度原理研究等方面。
本系列课程从第一章区块链基础介绍开始,第一节是区块链历史发展与原理简介。
—背景:信息存储的历史发展—
区块链是信息存储与共识的载体,在了解区块链发展前,我们先了解信息存储的历史发展。
在远古时候,人类为了生存聚在一起生活,一块劳动共同对抗大自然的不确定性和外界的威胁。那个时候,由于最多的活动是打猎,捕到猎物会用绳子一个个地拴起来。当时人们发现,结越多,就代表着猎物越多,结越少,就代表猎物越少。就这样,人类开始使用打结来表示数量上的不同。
在古代北欧地区,牧羊人利用刻痕计数法来记录自己的羊群数量。英语单词score就源自北欧语skor,本意是“刻痕”。由于当地人采用20进制,一条刻痕代表20,所以score也就含有“20”的意思。
夏、商、西周三代时期,数字元号逐渐规范。公元前十四至十一世纪的殷墟甲骨文卜辞中有许多数字。其中有13个记数单字、1-9、10、100、1000、10000。
西汉(公元前202年—8年)初期,中国人发明了造纸术(此前靠龟甲、兽骨、金石、竹简、木牍、缣帛等记录文字)。纸的出现让信息的能被记录、传播和继承,带来了革命性的进步,促进了人类文化的传播。纸也为打孔卡奠定了基础。
打孔卡的发展历史
1725年法国人Basile Bouchon发明了打孔卡(穿孔卡),他用在纸上打孔的形式来存储图案,用于控制纺织机进行图案织造。
1801年Joseph Marie Jacquard将打孔卡顺序捆绑在一起用于提花织机,这是打孔纸带(Punched Tape)的雏形。
1846年Alexander Bain使用打孔纸带发送电报。
1890年,Herman Hollerith发明了打孔卡制表机,用于收集并统计人口普查数据,标志着半自动化数据处理系统时代的开始。这种机器不仅统计速度更快,而且能够以新的方式理解信息,很快便应用到了各个行业。
1896年,Herman Hollerith成立了制表机公司,这家公司就是后来大名鼎鼎的IBM的前身。打孔卡和纸带直到80年代还在使用,持续了两个多世纪。
随着存储设备的逐渐升级,同体积的硬件存储的容量呈指数级增长,出现了磁带、磁鼓、机械硬盘、固态硬盘等硬件存储设备。由于区块链需要非常大的存储量,这些硬件存储设备成为了区块链存储的根基。
在计算机领域,存储是极为重要的应用。以数据库为例,上层应用在存储数据时只需要和数据库或其他数据管理系统打交道,而数据的具体存储方式不需要应用和开发者担心。目前的应用很多都依赖单一的数据库,有些则依赖于集群部署和多地部署的数据库。但无论如何,这些数据库都由公司或机构管理。
一个应用场景:在一个食品供应链领域,食品的生产、加工、运输和零售都来自不同的企业。每个企业都管理着自己的数据库,维护着自己关心的数据。比如:生产方关注产品生产的原料消耗、制作时间、制作成本等;加工方关注产品的采购价格、采购时间、加工价格、加工时间等;运输方关注产品的运输时间、预期交付时间、运输位置、温度等;零售方关注产品的销量、进货时间、销售时间等。
当各方拥有的数据分开,会带来两个问题:
1.数据造假追责较难。谁都有可能修改自己的数据库。一旦修改,各方难以达成共识找出足够的证据证明具体是谁改的;
2. 数据生态难以形成。由于各方的数据彼此隔离,想要使用这些全方面的数据实现更高的数据价值就非常困难。
为了克服以上问题,这里提出一个方法:每个业务的参与方都维护同样的数据库,而对于这项业务的每次状态变更都记录在所有方的数据库中。当做到了所有数据库的一致性,那么也实现了数据的共享,能直接核对出数据库的篡改方。
但是,如果完全开放数据库的增删改查权限给每一方,这无形地成为一个分布式数据库,只做到数据共享但无法保证数据可信,无法确定哪些操作是合法以及谁进行了某些操作。
智能合约克服了以上问题。比特币的转账逻辑是一个简易的智能合约。以便了解智能合约。再举食品供应链的例子:生产方说自己生产了一个产品,准备发送给加工方。当他想对数据库里的产品数量进行+1操作时,他必须通过大家公认的智能合约里的create方法来增加产品数量。操作方必须先用自己的私钥签名才能进行操作,保证数据可追溯且可信任。
假设生产方想要作恶,他只生产了一个产品但却写入了2。此时在区块链中,每个参与方都必须执行一遍以下合约。当大家运算结果都是1,并对1达成共识,那么私自改为2的节点自然无法达成共识,导致账本不被认可。再加上所有的操作都必须先由操作方进行签名,因此可以追溯到作恶的操作方。
—区块链的起源——比特币—
2008年10月,一个自称为中本聪的人在一个密码学邮件列表中发布了一篇论文。论文描述了一种称为比特币的数字货币,但在当时并未得到学术界或者企业界的太多重视。
2009年1月,中本聪发布了比特币软件0.1版,比特币系统正式开始运行。几天后,第一笔转账发生。
2010年5月,第一笔比特币支付的真实交易产生:一个弗罗里达的程序员花1万比特币(当时约25美元) 买了两份披萨。
2010年7月,第一个比特币交易所在日本成立。
区块链的核心思想其实是一种分布式记账。
比较中心化与分布式记账。中心化记账:
• 数据的存储和计算都在中心进行
• 交易依赖于对中心的信任
• 中心受到攻击后会造成很大的损失
• 中心本身可能会作恶
分布式记账:
• 不需要可信任第三方
• 每个人的账本保存所有交易信息
• 通过类似民主投票的方式保证数据一致
• 大部分记账人诚实,系统则正常运行
值得一提的是,目前很多公司使用了集群数据库解决中心化记账的问题。但这些数据库仍然由一个机构所管理,没有本质上的改变。
有了区块链,这里出现了两个重要的问题:1.节点为什么愿意帮助整个网络维持账本?2.如何防止交易过于频繁导致的网络账本不一致问题?
第一个问题:为了激励用户参与到区块链中,公链(有别于联盟链)会采用第一个记账者奖励、交易手续费和MEV激励用户。以比特币为例,奖励的实现如下:
我们将这种方法称为工作量证明。这种共识算法的记账规则为:
• 一段时间内只能有一个人记账成功。
• 通过竞争解决数学问题来获得记账权。
• 其它节点复制记账结果。
计算规则为:
• 找到随机数Nonce,使得Hash(上一个区块的Hash值,交易记录集,随机数)的值小于目标值。
• 难度根据全网算力。动态变化:diff_new=diff_old∗(k∗10)/cost(k), k=2016
• 奖励逐步减半,目前6.25个比特币的奖励。
• 由于以新发行比特币作奖励,因此被称为“挖矿”。
对于第二个问题:需要通过某方法保证账本一致。
区块由区块头和区块主体构成,区块头负责实现区块链的基本功能,区块主体包含了交易信息。区块间为链式存储,每个区块都包含前一个区块的哈希值,相当于把上一区块的指纹放在下一区块里,彼此串在一起。
可想而知,一旦有人篡改某个交易信息,所有的区块都需要进行修改,否则哈希验证无法通过,节点数据就出现问题。此外,如果哈希算得很快,那么节点可以推倒重新算一遍。反之如果算哈希需要几十分钟的时间,那么想要修改数据可谓是难比登天。这里的时间就是难度,是后面会讨论的问题。
区块链系统中节点包含以下几类:
• 钱包,存储地址和私钥,允许用户交易。
• 账本,记录所有交易历史。
• 矿工,通过记录交易和解决数学难题来生成新的区块。
• 路由,将其他节点传输的交易数据等信息进行广播。
对于节点,它们的行为模式包括:
• 监听, 网络中每个节点都在监听正在发生的交易。
• 加入交易池,一旦节点监听到交易并验证为合法,就加入到自己的交易池,准备打包进新的区块。
• 挖矿,所有节点都会做数学题 (挖矿) 来争夺记账权并获取收益,先解出者可以向全网广播区块。
• 验证区块,当且仅当区块中所有交易均有效且首次出现,其他节点才认同该区块的合法性,并将其加到自己的区块链末尾,一笔新的交易一般需要经过6个区块的确认才算有效。
—区块链的分类—
并不是所有区块链都和比特币一样。根据节点的准入规则,可以将它们分为公有链、联盟链和私有链:
•公有链对所有人开放,任何人都能参与,如比特币、以太坊、PlatON等。
•联盟链对特定的组织团体开放,如Fabric、BCOS、百度超级链等。
•私有链对单独的个人或实体开放,通常由公司或个人内部使用。
几个著名的公链项目介绍
比特币(Bitcoin)是一种基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的加密货币。比特币由中本聪(网名)(Satoshi Nakamoto)于2008年10月31日发表论文提出。
以太坊(Ethereum)是一个去中心化的开源的有智能合约功能的公共区块链平台。以太币(ETH)是以太坊的原生加密货币。截止 2021 年 8 月,以太币是市值第二高的加密货币,仅次于比特币。
PlatON 是专注于可扩展性和隐私保护的高性能分布式计算网络,通过可验证计算、安全多方计算、零知识证明、同态加密等密码学算法共同组装的下一代计算架构,为全球人工智能、分布式应用开发者、数据提供方及存有计算需求的各类社区、机构、个人,提供开源架构下的公共基础设施软件开发、咨询、运营服务。
各类区块链对比
公有链:
•任何人都可加入网络访问/写入数据
•每秒3-20次数据写入
•需要给挖矿者激励
联盟链:
•授权公司和组织才能加入网络
•每秒1000次以上数据写入
•机构间互利共赢,无需激励
私有链:
•单个公司和组织管理的网络
•每秒1000次以上数据写入
•无需激励
点击“阅读原文”,观看完整视频
👇👇👇
https://www.bilibili.com/video/BV1th411b7qM
登陆Bilibili,关注THUBA
END
文稿&视频 | 卢光宏
编辑| 杜立恒
排版 | 杜立恒 Celia
审核 | Zeo
本文转载自https://mp.weixin.qq.com/s/AeRV2tru6tVS3BArssVFfg