【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义】
1.3加密数字货币的通俗故事
还记得电影《大空头》中有这么一句话:金融就是将简单的人人都懂的理论包装得富丽堂皇然后讲给你听。其实比特币的运行原理也并不难。
今天我们来讲讲加密数字货币的通俗故事。首先看图。
故事到此并未结束,由此引出了三个值得思考的问题。
记的账在后面会不会被篡改?
村民有什么动力帮别人记账?
这么多人记账,万一记的不一致岂不是坏了,以谁记的为准呢?
比特币的系统巧妙地解决了这三个问题。
第一、比特币采用两种策略保证账本不可篡改
人人记账。电影《三剑客》中有一句著名的台词,“人人为我,我为人人”。众人仿佛被一条链条牵引,大家都有同样的方向,或者说是利益一致。比特币系统也在保证大家公平的同时,人人为系统,系统为人人。比特币的系统中,每个村民手上都维护一本账本,这样即使某个人改了自己的账本,他也无权修改其他村民手上的账本,修改自己的账本相当于掩耳盗铃,别人是不会认可的。
采用“区块+链“的特殊记账结构。在这种账本结构中,每一个区块保存着某段时间内所发生的的交易,这些区块通过链式结构连接在一起,形成了一个记录全部交易的完整账本。如果对区块内容进行了修改就会破坏整个区块链的链式结构,导致链条断了,从而很容易被检测到,这两个策略保证了从全局来看整个账本是不可篡改的。
比特币科普之账本真的不可能篡改吗?
可能,那就是发起51%攻击。大家都知道比特币中通过多劳多得的竞争从而取得记账权,但如果一个人能掌握系统中51%的“劳动”(算力)呢?他就能重写区块链中的数据,从而让自己获利。就像是电影《头号玩家》中,大家在游戏的世界中公平竞赛,赢得胜利,但是影片中的IOI公司通过控制大量玩家取得了丰厚利润与游戏中的控制权。但想掌握系统中51%的算力是很困难的,这个人需要完全控制系统中记账和计算“封印密码”花费的耗能和电力,这将是巨大的成本。
举个例子,我们假设有10个玩家,如果这些玩家中的某个人试图欺骗大家,修改某页账本中的内容,他就不得不修改很多页的内容并重新计算这些页面上的封印密码。我们都知道计算封印密码有多难!从他修改的那页开始,他就得在网络中重新建立另外一条链。但是这条链永远追不上另外9个人维护的那条诚实的链的,因为一个人的工作能力和速度是赶不上9个人合在一起的工作能力和速度的。因此,保证了最长的那条链是“诚实的”链。在这局游戏中,1个不诚实的家伙是打不过9个诚实的玩家的,他是不可能修改成功的。但如果不是一个人,而是六个人串通好了呢?细思极恐。要让六个人的利益关系完全一致且配合默契才行,这背后的成本可想而知。
注:本示例来自万向区块链
第二、合理的激励机制
前面一条中提到了人人参与记帐,大家肯定会问“凭啥要我帮别人记账呢?我比特村“村草”,为什么要帮隔壁老王记账?“这就涉及了比特币系统中的激励机制。参与记账的村民,被称之为“矿工”。这些村民中,首个记账被认可的人将得到“大礼包”。
其一、获得一笔奖励,这笔奖励就是若干个比特币。这也是比特币发行的唯一来源,这种奖励措施使众多村民积极参加记账。
其二、谁在某一块账本被认可,其他人都会分别拷贝这一块账本。从而保证所有人维护的账本是完全一致的,这两点保证了比特币的自动安全运行。
第三、工作量证明机制
问题又来了。既然有了激励,大家就会争抢着记账并努力让自己的记账被认可,怎么确定以谁记的为准呢?
为了能够确定以谁记的帐为谁,村民们想到了一个公平的办法:对每一块账本(类比为我们现实账本上的一页),他们从题库中找了一道难题,让所有参与记账的“矿工”都去破解这道难题,谁若最先破解了,该页/块就以他记的帐为准。
这个破解难题的过程,就被称为“挖矿”,即工作量证明的过程。这就是比特币中的工作量证明机制(POW),这里需要说明的是,这个难题的解题过程需要不断地尝试,较为困难,但是找到答案发给别人后,别人是很容易验证的。
因此,比特币通过“区块+链”的分布式账本保障了交易的不可篡改,通过发放比特币的激励措施激励了“矿工”的参与,通过计算难题(矿工挖矿)解决了记账一致性的问题。这样,完美地形成了一个不依赖任何中间人即可完成记账的自动运行系统。
比特币科普之POW是中本聪原创吗?
POW算法是比特币系统良好运行的保障,很多人是从比特币中认识了工作量证明机制(POW),那POW是中本聪的灵光一现吗?
显然不是。工作量证明概念最早由Cynthia Dwork和Moni Naor于1993年的学术论文提出,而工作量证明一词则是在1999年由Markus Jakobsson与Ari Juels所发表。
并且POW在比特币之前就已经被广泛使用,其中比较知名的是Google邮箱的反垃圾系统。原理如下:如果你想给Google邮件服务器发邮件,首先得先“干活”(一定量的计算工作),计算工作可能会耗时2-3秒,如果是普通发邮件,这个耗时是可以接受的。但如果是垃圾邮件的脚本程序,2-3秒的延时将是“致命”的。
点宽课堂第1-3讲今天就讲到这里啦,从下节课开始课程的难度会提升一点点,将详细解析比特币的交易。
首先要了解比特币地址的概念。要参与比特币系统中的交易过程,需要一个类似于现实世界中银行“账户”的实体。比特币交易即为从一个比特币地址向另一个比特币地址进行转账的过程,每个交易可能会包含多笔转账。比特币系统如何实现点对点的支付呢?我们下期讲述,敬请期待~
本教程内容选编自教材和互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。
【区块链与密码学】课堂回顾:
点宽课堂第1-1讲:比特币的诞生
点宽课堂第1-2讲:“疯狂”的比特币
-- 完 --
关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。