Py学习  »  区块链

读懂比特币白皮书,等同看懂半本区块链!

微墨紫 • 5 年前 • 348 次点击  

没有喧嚣,没有问候的“沉默”,请安静听完这段征途故事!


 透



“对标参照—BTC,事半功倍”

(网络不详/图源)


“读懂比特币白皮书,等同看懂一半区块链知识” 这是区块链KOL主流观点,事实也是如此。


第一份真正意义上的区块链的白皮书,始于2008年中本聪发表的《比特币:一种点对点的电子现金系统》论文,后继者的区块链应用都是参照比特币的技术及经济模型特征去设计,所以读懂比特币白皮书里的内容后,遇到其它的区块链项目就能很好的去解读、辨别真伪。



为了照顾部分微友便于理解,微墨紫只摘取《比特币:一种点对点的电子现金系统》白皮书的主要构成部分内容。展开介绍的八个部分结构:


  1. 交易(Transactions)双重支付;

  2. 时间戳服务器(Timestamp server);

  3. 工作量证明(Proof-of-Work);

  4. 网络广播;

  5. 激励Token;

  6. 隐私(Privacy);

  7. 计算攻击;

  8. 结论。



1.交易-双重支付


咱们现在使用的 “信息互联网” 特征,同一信息可以被无限复制传播,例如同一张图片,可以复制粘贴发送给不同的接收对象,电子货币搭建在信息物联网就面临同一笔交易重复支付给不同接收对象的问题,也就是专业术语说的 “双重支付或双花” 问题。


那么,像支付宝、微信支付这些电子支付系统如何解决双重支付这问题,就是使用 “中心化记账” 方式解决,简单的说:你存一笔钱进支付宝,中心的数据库就会做加法记录,取出一笔钱,支付宝的中心数据库就会记录这笔减法。整个过程完全由一个中心,也就是支付宝来完成。


因为,中心平台时常会出现监守自盗,被黑客攻击,数据混乱被盗风险,中本聪想到去中介化 “分布式点对点” 记账,并且使用加密算法数字签名来解决双重支付的难题。


数字签名验证交易,解决双重支付难题(下图)。

(比特币白皮书/图源)


数字签名验证交易,这个原理好理解。因为每一笔交易,都是节点(也就是矿工)共同参与记账,这时你向 A 发送一笔打款交易,这笔交易包含一串数字签名,记录之前的历史交易记录和收款方的公钥,将你要交易的信息广播给全网矿工,矿工在验证这笔交易公钥签名信息是合法后,会把这笔钱记到A账户,交易完成。


当A想要动用这笔钱时,使用他的私钥签名并生成公钥,然后广播给全网,说明他想转到哪就行,操作的步骤跟你原来发给他一样的。


很简单的排序结构:私钥数字签名,然后生成公钥,公钥发送广播全网节点(矿工)记账,交易完成。私钥是只有你自己才有的,别人是不知道的,但公钥是公开给全网的节点看的,公钥包含的就是数字签名交易信息给矿工验证看的。




2.时间戳服务器


那么问题又来了,我们经常在微博、知乎发文章,都记录有发文的具体时间记录,如果没有时间显示记录就会出现这样的问题:A发布一篇不错的文章,B看到A的文章不错复制粘贴然后署名是自己的,C同样看到B的文章不错一样复制粘贴署名自己的......  最后,很难证明这文章是谁写的。所以,有了时间的记录,就可以容易溯源最早的时间证明是原创,用专业术语称呼叫 “时间戳证明” 


中本聪就是使用时间戳证明解决矿工挖矿问题。比特币网络每10分钟就出一区块,每个矿工挖出的区块都会被打上时间戳证明,10分钟一到,系统会选出那个用时最短挖出区块的矿工,把挖到的比特币奖励给他。这样,就不存在大家相互扯皮是自己先挖出来,归属谁的问题。


(比特币白皮书/图源)




3.工作量证明POW


矿工这活不是谁都能干的,也是有门槛的。中本聪在比特币系统设置一道数学题,规定必须在10分钟解出这道题,谁先解出奖励的比特币就是他的,这一过程叫做 “工作量证明(POW)” 


这道题可不是1+1=2简单的数学题,是 “哈希函数” 算法,比特币使用的是SHA-256哈希算法,矿工需要在这道散列值中最快找出前32个为0的值(关于哈希函数、散列值这种复杂的东西只有搞技术的才懂,微墨紫的表述能力有限)16^4次方运算庞大的计算量,并且快速运算,一般的机器计算是难以满足的,这也是为什么,早期比特币挖矿是电脑cpu,后边升级到GPU,最后到专业的ASIC芯片矿机,拼的就是速度也就是算力,谁算的快,就能提升最新挖到区块的概率。



说到这,微友们应该明白中本聪设置工作量证明的巧妙之处了吧! 工作量证明还可以解决粉尘攻击、51%算力攻击的风险。


哈希现金是亚当·贝克(Adam Back)在1997年发明的,被微软应用到抵抗邮件的拒绝服务攻击及垃圾邮件网关滥用,它的原理是,每发出一封邮件电脑需要运算一定的工作量才能发送,目的就是让垃圾邮件、粉尘攻击因为不断上升的成本,而无法成功攻击。


后来,哈希现金被哈尔·芬尼改造成可重复使用的工作量证明(RPOW),最后聪明的中本聪把这一技术应用到了比特币的工作量证明中。




4.网络广播


网络广播这个就太好理解了,你要发送一笔交易给你朋友A,私钥签名生成公钥后,广播告诉全网节点的矿工:“老铁们双击666!我要转10000个比特币给我基友A” ,矿工收到你的广播并验证你公钥信息合法无误后,就会记账到区块打包,帮你完成交易。


上面说的是你个人的转账交易广播,矿工们谁最先挖到比特币,也是需要向全网节点矿工广播:“嗨!各位老铁矿工们双击666!我挖出了比特币,你们记录并验证下,我是不是最先挖出的,并且是合法的”  ,矿工们各自查看账本验证你的广播信息,就能确定谁最先挖出,当验证承认后,这笔交易最后一步由你来打包完成。


网络广播,顾名思义全网广播让所有人都知道,妇孺皆知的事情,没人能在篡改,这就是咱们经常听到的:什么是区块链? 它是一种公开、透明、不可篡改的分布式数据大账本




5.激励Token


看到这,可能你又会疑问,没有中心化,都是大家一起来记账,没有回报谁会傻帽去干? 劳动=收获,这是永恒不变的经济模型,所以中本聪设计比特币时,就引入 “Token(代币)” 经济模型,激励矿工参与到维护比特币网络系统的运转。


这个激励分有两部分:

1)挖矿收益:比特币总量恒定2100万枚,这2100万枚需要矿工从零开始去挖,中本聪设定每10分钟挖出50枚BTC,如何保证每10分钟都能让矿工按时挖出50枚币,系统会根据算力的情况自动调整解题的难度。


这样,矿工谁最先挖出这50枚比特币,这个奖励就是他的。同时,中本聪设置,每四年挖出比特币的产量就减半(达到规定区块高度时减半),每四年减半就是50、25、12.5 ...... 以此类推,同时解决了通胀的问题。


2)手续费收益:手续费收益是,用户之间来往的每笔转账交易,是需要支付给矿工手续费的,矿工有利可图当然乐意干了,想想挖出一枚比特币 20000美金,多大的诱惑。



最后,问题又来了,有的微友会疑惑,矿工挖矿收益和客户转账交易又是什么关系,打包区块又是什么原理?  步骤是这样的,每10分钟比特币网络就会生成一个区块,这个区块包含矿工挖出的比特币和用户转账交易的信息,那么哪个矿工最先在10分钟挖出比特币,这个区块就由他来打包并广播给全网,意味着这个矿工的收益除了挖出的比特币外,还有用户的交易手续费,全部都归他的。


矿工挖出的比特币,可以拿到二级市场去卖,也就是我们常说的交易所,就可兑换成现金。比特币的最大价值就是类天然的黄金属性,除此外还有其它价值,经济学、货币学这种远的就不扯了。




6.隐私(Privacy)


比特币并起不到完全匿名的作用,因为它的所有交易记录都被记录在全网上,这些信息以公钥的方式公开,人人都能查看。


我们都知道,我们的银行账户是由主体信息生成的一个 632xxxx 这样的账户,一转账时就能看到对方的姓氏后的名字,和其它的开户信息,中心的银行则掌握客户所有的开户信息,包括流水记录。


而比特币是去中介化的,都是全网节点矿工来广播记账,都是公开透明可差的,但并不需要像银行需要个人信息开户才能使用,任何使用比特币的都可以生产一个收币地址如:1DTm1DipgYM8bWJ3gqQ5dzDb1N56xDtTyP 这样的。交易信息公开的是交易的金额、转账时间、转账历史记录等,并不能看到背后拥有者是谁,所以起到了隐私保护的作用。


(比特币白皮书/图源)


比特币可以起到保护隐私的安全,但无法起到真正的匿名,因为我们只要知道其中一个交易地址背后的主人是谁,就可以反推查出之前交易记录背后的拥有者,换句话来讲,就是法币现金的匿名币比特币更强,才是真正的匿名。


那么,有没有真正匿名的数字应用资产,当然有。之前在《31小时,读懂区块链》介绍的达世币、门罗币就是完全的匿名,采用混币和环形签名来完全实现信息隐匿。




7.计算攻击


计算攻击,就是常说的51%攻击风险,由于时间关系,微墨紫简单说下就行。要实现51%的攻击目的,需要你掌控比特币全网的51%的算力,这些算力就是矿工手中的矿机一台台累积的算力,所以要实现51%攻击,要么你能收买全球51%矿工手中的算力,要么你自己购买矿机运算跑达到全网51%的算力。


不管何种方式,51%攻击的理论,用在比特币身上都无法实现,为什么? 比特币目前市值几万亿了,51%算力计算下需要多少资金,并且就算你有资金没有矿机也不行,要购买大量矿机也不可能实现,比特大陆新出矿机每次一上市就直接售罄,在退一万步讲弄到51%算力量的矿机,你刚跑起来,新出算力更强的矿机又出来了,其它矿工又会更换算力更强的矿机,这是一场永无止境的算力竞赛。


即使,实现51%算力攻击,攻击者也只能改掉自己已发出交易的那笔钱,它篡改的速度跟不上更长链区块出块的速度,并且矿工是不会承认那个是最长的有效链的。


基于这么一个经济模型原理,51%理论攻击,已经很难在比特币pow护城河外发起有效攻击了,比特币的安全、高明,就是在于此,全球无数的节点来保护它的安全性。


(网络不详/图源)




8.总结


基于上面的七点,讲明白了《比特币:一种点对点的电子现金系统》如何解决双重支付的问题,实现原来信息互联网做不到的 “价值传递” ;时间戳服务器就是证明先来后到的记录证明;网络广播让所有人都知道,实现信息分布多节点记录,达到无法篡改、公开、透明的特性;用经济模型去激励劳动力维护系统网络运转;隐私与安全实现拦截攻击的防火墙。


一种基于区块链技术的应用,比特币就是这样诞生出来的。区块链的技术可能是抽象的,但它的逻辑原理,只要稍微细细揣摩就很容易理解它结构设计。


读懂比特币白皮书,毫不夸张的说:等同看懂半本区块链,目前现阶段确实如此,但在往下发展,更多的区块链技术不断延伸出来,要读懂就不光光是一份比特币的白皮书,而是不断与时俱进的学习。


每天都是雷锋日,不谢!



声明:欢迎原文转载 篡改原文法律追责


将您揭露材料发至 | 曝光邮箱(fcxlmbg@sina.com)

将会根据微友线索爆料|  ©微墨紫


扫码关注「微墨紫」爆料


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/vndPStBO8i
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12205
 
348 次点击