区块链学习(四、1.0,比特币)

    

继续看图来进行学习


比特币作为区块链的首个广为人知的产品,我们首先得知道它是什么,用来干什么

   比特币英语:Bitcoin)是一种去中心化,非普遍全球可支付的电子加密货币

   然后,比特币有那些特性?用来解决哪些问题?

    特性:

   1、所有人可以进行监管,流通信息公开的

   2、发行周期固定,不受人为控制,总数固定,无法增发

   3、去中心化的交易验证

   4、安全

    解决哪些问题:

    其实总结的话就一句话:解决实体货币的弊端,分开来说的话大概是以下几点

    1、便携

    2、易于防伪

    3、易于辩伪

    4、节约资源

    5、发行不随意


   然后,我们可以看到,比特币除了基本的区块链特性以外,还有有三大主要组成部分

闪电网络、数字钱包、挖矿

在说以上万个概念之前,我们得对比特币运行的一个流程有一个认识,就是比特币是如何运行的?


这三个概念,我们得从挖矿说起

1、挖矿

相信在比特币中,最需要了解的就是挖矿了,在我看来,挖矿有以下几个意义

1、货币发行

2、增加区块以及算力

3、记账

挖矿说明:

挖矿是参与维护比特币网络的节点,通过协助生成新区块来获取一定量新增的比特币

1、矿工们在挖矿过程中会得到两种奖励:创建新区块的新币奖励(货币发行),以及区块中所含交易的交易费

2、当用户发布交易后,需要有人将交易进行确认,写入到区块链中,形成新的区块

3、挖矿的同时还保护着比特币系统的安全你,防止欺诈交易,避免“双重支付”,“双重支付”是指多次花费同一笔比特币。矿工们通过为比特币网络提供算力来换取获得比特币奖励的机会

比特币的挖矿过程:

参与者根据上一个区块的hash值,10分钟内的验证过的交易内容,再加上自己猜测的一个随机数X,进行hash,让新区块的hash值小于比特币网络中给定的一个数,hash出来的值大于给定数时则重新生成随机数进行hash,这个数越小,计算出来就越难。系统每隔一段时间会根据上一周期的挖矿时间来调整挖矿难度,来调节生成区块的时间稳定在10分钟左右。未来避免震荡,每次调节的最大幅度为4倍


POW、POS、DPOS

而在上图中,挖矿又包含来三个概念,分别是:POW、POS、DPOS

这不得不提到我们之前说过的问题:

如果某个人或者组织持有了51%以上的区块,那他是不是就可以篡改数据?(这里涉及到分叉,之后详细说明)

而POW、POS、DPOS就是为了解决这个问题而出来的解决方案

这三个概念的诞生,是有其目的的,就是:

无论是POW/POS/DPOS,还是其他的几十种技术,简单说都是在解决“谁有资格写区块链”的问题。如果区块链只有一个人有资格写入,那就个普通的本地数据库一样了。目前比特币使用的是POW,即工作量证明,以工作量来证明自己有资格写入区块链


POW:

POW,即工作量证明,以工作量来证明自己有资格写入区块链。通过穷举寻找一个符合要求的HASH,目前全网算力1.6EHz的情况下,平均每10分钟会出现一个符合要求的答案,谁先找到这个答案的,谁就可以向比特币区块链写入一个新区块。如果你的机器的算力大,你就有比别人更多的机会先找到符合要求的答案,而获得写入区块的权利。区块允许写入区块的那人人给自己增发12.5个比特币做为奖励。在这个模式下,获取区块奖励的成本主要来自于设备和设备的耗电。如果币价稳定,这个成本会被众矿工逐渐推高至接近于区块奖励,成为低盈利的工作。由于成本高昂,攻击者难以在短时间内组织压倒性的算力,(即传说中的51%攻击,但其实51%25依然远远不足以发起攻击),掌握区块链的走向,完成区块回滚的动作为自己牟利。&oq=POW,即工作量证明,以工作量来证明自己有资格写入区块链。通过穷举寻找一个符合要求的HASH,目前全网算力1.6EHz的情况下,平均每10分钟会出现一个符合要求的答案,谁先找到这个答案的,谁就可以向比特币区块链写入一个新区块。如果你的机器的算力大,你就有比别人更多的机会先找到符合要求的答案,而获得写入区块的权利。区块允许写入区块的那人人给自己增发12.5个比特币做为奖励。在这个模式下,获取区块奖励的成本主要来自于设备和设备的耗电。如果币价稳定,这个成本会被众矿工逐渐推高至接近于区块奖励,成为低盈利的工作。由于成本高昂,攻击者难以在短时间内组织压倒性的算力,(即传说中的51%攻击,但其实51%25依然远远不足以发起攻击),掌握区块链的走向,完成区块回滚的动作为自己牟利

POS:

POS,即权益证明,是用“拥有的币龄”来证明自己有资格写入区块链。币龄可以理解为币量乘以时间,如果你有一个币,在这个地址上放了100天,你就拥有100币龄。当你挪动这比币,这100币龄就消失了,或者说你“毁灭”了100币龄。因此,无论你持币多少,你可以“毁灭”的币龄都是有限的。当然,大户会每天可以攒出更多的币龄。如果说POW是烧电来抢“记账权”,那POS就是烧币龄来抢“记账权”,币龄是随时间自然出现的,环保不费电,并且人人都可以有。同样POS也会给记账的人奖励币,鼓励大家都“毁灭”掉自己的币龄来参与记账的争夺,保障账簿不被随意写入。由于币龄的有限性,只要进行一些限制,POS机制中也很难获得压倒性的币龄来控制区块链。&oq=POS,即权益证明,是用“拥有的币龄”来证明自己有资格写入区块链。币龄可以理解为币量乘以时间,如果你有一个币,在这个地址上放了100天,你就拥有100币龄。当你挪动这比币,这100币龄就消失了,或者说你“毁灭”了100币龄。因此,无论你持币多少,你可以“毁灭”的币龄都是有限的。当然,大户会每天可以攒出更多的币龄。如果说POW是烧电来抢“记账权”,那POS就是烧币龄来抢“记账权”,币龄是随时间自然出现的,环保不费电,并且人人都可以有。同样POS也会给记账的人奖励币,鼓励大家都“毁灭”掉自己的币龄来参与记账的争夺,保障账簿不被随意写入。由于币龄的有限性,只要进行一些限制,POS机制中也很难获得压倒性的币龄来控制区块链。

DPOS:

Delegated Proof of Stake(委托股权证明) 是 PoS 的进化方案,在常规 PoW 和 PoS 中,一大影响效率之处在于任何一个新加入的 Block,都需要被整个网络所有节点做确认。DPoS 优化方案在于:通过不同的策略,不定时的选中一小群节点,这一小群节点做新区块的创建,验证,签名和相互监督,这样就大幅度的减少了区块创建和确认所需要消耗的时间和算力成本。


而比特币的共识机制就是:POW

2、数字钱包

数字钱包这个概念,我们可以从比特币的数字钱包来入手

其实也很简单,比特币钱包其实就是“私钥、地址和区块链数据的管理工具”,比如说,私钥这个随机数得生成吧?生成之后得计算出地址吧?相关的区块链数据得维护吧?收到的、花出的账目也都得列出来吧?得能用来收款,也得能进行付款吧?

毫无疑问,所有这些都得通过工具来完成,这类的工具我们统称为“比特币钱包”。

在这里面提到了三个概念:私钥、地址、区块链

私钥:

其实很简单,只需要记住这么一句话就够了“私钥就是个代表你身份的随机数”,这个随机数的概率空间很大(256位,也即是2的256次方),2的256次方是个什么概念呢?比宇宙中的分子还要多,也就是说,别人是不可能和你生成一样的私钥的(1/2^256的概率),这个数就代表了你的身份

地址:

说完私钥,我们再来谈谈地址,我们不去谈那些诸如“公私钥对儿、椭圆曲线、数字签名、SHA256”等密码学概念,只谈地址这个比特币世界里最常用的东西。地址是通过私钥计算而来的,具体怎么算的,大家不用去管,只需要知道私钥能计算出地址,地址不能反算出私钥,这是前提。比特币地址是1开头的,从一个私钥计算出其对应的地址之后,您就可以往该地址上转比特币了,转入的比特币只有私钥的持有者才能花,就这么简单

区块链:

其实前几篇下来我们对区块链已经有一个认识了,不过现在这里还是需要一个总结

其实区块链这个词也是被很多人给神化了,本质上,区块链其实是中本聪为了比特币所设计的一个“用来去中心化的存储比特币账目”的数据结构,所以,本质上,区块链就是个“账本”,区块链上记录的都是 A 给 B 转账了 5 个比特币这类的信息,就这么简单。但是为了能做到去中心化,还得能进行自我验证(账目都得验证,不能做假账),因此,① 这个账本被设计成了区块的结构,每过一段时间就会生成出一个新块,把账目做到新的区块中,做进区块的账目就不能再被修改了;② 这个账本中的账目还别设计成了链表(既前后链接的数据结构),这样,每一笔账目都能最快的查询到上一笔来进行验证,一笔一笔的沿着链条向前验证,最终,任何一笔交易都能验证到最初的原始交易(也就是最初挖矿的那笔交易);这样就做到了去中心化及自我验证,这就是区块链这个数据结构的目的。


了解了以上三个概念之后,您就应该理解如下事实:

1.私钥决定了比特币的产权,如果想花掉一个地址上的比特币,很简单,您得有私钥,没私钥?抱歉。

2.一定要保管好私钥,私钥丢了,币就花不了了,私钥被别人看到了,币就丢了。所以,请做好备份,请做好加密,如果可能的话,请尽可能的“冷”(也就是保持离线、断网),记住,被别人看到了,钱就没了,一定不要让别人看到。

3.地址是公开的,请广而告之,如果您拥护该地址的私钥,任何转入该地址的比特币都只有您能花。

4.账目都是去中心化的存储在区块链上的,也就是存储在比特币网络的每一个节点上的,并不是存储在私钥或者地址上的,所以,一个地址当前的余额是多少,这类的问题需要问区块链,区块链上有着比特币历史上的全部账目,账目都是公开的。

这,就是比特币


3、闪电网络

既然说到了闪电网络,那就不得不从更高的纬度来讲解一下几个概念:

见证隔离、闪电网络、雷电网络

那么这些概念的意义是什么么?为什么会有这几个概念呢?

这里主要涉及到一个问题,就是

比特币中,区块的硬编码限制为1兆字节,而区块又是平均每10分钟生成一个,导致这个账本可以承载的数据量不够,在面对当前如此火热,交易量如此巨大的情况下,一笔交易可能需要等待几小时才能得到确认,随着网络规模的扩大,交易强度也随之增加,但区块容量限制则保持不变,这就意味着问题会不断恶化

基于以上的问题,就有了之后的见证隔离、闪电网络、雷电网络,他们的本质都是为了解决这个处理速度的问题

一、见证隔离(通常简写为SegWit),从鉴证信息隔离以扩容

隔离见证是对整个设计缺陷的一个修改方案,原理说起来挺简单,它允许交易把没那么必要的“见证”部分“隔离”在区块外面,这就是隔离见证的意思了

隔离见证就是把脚本签名(scriptSig)信息从基本结构 (base block) 里拿出来,放在一个新的数据结构当中。做验证工作的节点和矿工也会验证这个新的数据结构里的脚本签名,以确保交易是有效的。

那么重点来了:当审核统计区块大小不能超过1M的时候。脚本签大小不会被计算在内。

这简直是一个数学计算上的巧思!

下面我们来说一个非常浅显生动的例子,你瞬间就能明白了。

比如我们有一个交通法规,说一条大路上只能容许总面积是100单位面积的车辆。

每个车我们有30个单位的面积。大马路上一次只能跑3辆车。


这时候把车的结构重新调整下,把拖车放到了顶上。每个车的面积单位变成了14个单位. 这时候大马路上一次能跑7辆车了。


好我们现在把刚才浅显易懂的比喻换一下。马路 = 1个区块 车 = 每一笔交易


问题1: 脚本签名是不是和每笔交易在一起?

如图所释:车顶上的那个方块(脚本签名 ScripSig) 是属于车的一部分。验证交易的时候签名当然会被一起验证。


问题2:见证是不是在区块链上?

如图所释:只是改变了车的结构,而且整个车还是开在马路上。所以当然在区块链里面!

SegWit的解决方案由两部分组成的。

1、它可以立即将区块容量限制增加到4兆字节。这里就有一点需要注意:4 MB是绝对最大值,而实际区块容量将取决于网络条件。SegWit激活后,专家预测区块容量将在2到2.1兆的范围内,注意,所谓的扩容需要结合上面的说明。

2、解决交易的可扩展性,SegWit消除了以前对于比特币本身来说存在的一个小问题,但对在此之上实施第二层解决方案却是主要障碍。其中一个解决方案就是拟提的闪电网络(Lightning Network)。该方案将大量交易移出区块链进行快速处理,预计将大大增加网络容量。


注:为什么不干脆进行更大的扩容?

第一 ,扩大区块需要进行硬分叉,万一有的用户不升级钱包,就会产生对比特币的分裂,造成混乱;

第二,如果区块变大,以后交易越来越多,普通人的电脑上根本就运行不起这么大的全节点钱包,只有机构的电脑可以运行,就会导致比特币的中心化。

二、闪电网络,从提供一个可扩展的微支付通道网络入手

交易双方若在区块链上预先设有支付通道,就可以多次、高频、双向地通过轧差方式实现瞬间确认的微支付;双方若无直接的点对点支付通道,只要网络中存在一条连通双方的、由多个支付通道构成的支付路径,闪电网络也可以利用这条支付路径实现资金在双方之间的可靠转移。

闪电网络并不试图解决单次支付的银货对付问题,其假设是单次支付的金额足够小,即使一方违约另一方的损失也非常小,风险可以承受。因此使用时必须注意“微支付”这个前提。多少资金算“微”,显然应该根据业务而定。

三、雷电网络,使用链下交易的方式来解决

雷电网络的概念相对复杂一些,不过是与闪电网络一脉相承的

它类似于闪电网络,具有即时到帐,低转账费用,可大规模扩展,隐私保护的特点。使用雷电网络的参与者在互相转账时,不需要通过以太坊主链交易确认,而是通过参与者之间创建支付通道在链下完成。

它具有两大特征

第一大特征:链下交易


如上图所示,A和B在建立支付通道之前,需要先用主链上的资产做抵押,生成余额证明(Balance Proof),拥有余额证明即表明你能做出相应余额的转账。

  在A和B均持有余额证明的情况下,双方可通过支付通道在链下进行无限制次数的转账。

  仅有在完成链下交易,需要将资产转回链上时,才会在以太坊主链上登记主链账户的余额变化信息,而这期间不管发生多少次交易在主链上是不会有记录的。这个特点也可以实现一定程度上的隐私保护。

第二大特征:支付通道的建立

如下图:

  如果A要转账给C,而当A和C之间没有支付通道时,雷电网络会自动匹配网络中的参与者,试图在A和C之间找到一个中介来完成支付通道的建立,显然,B就是A与C之间交易需要的中间点。

  同样道理,当A需要转账给D时,B、E会作为中介来完成支付通道的建立。

以上就是雷电网络的基本工作原理。

  不难看出,雷电网络具有的优势不小。今后基于以太坊ERC20标准的代币会越来越多,而目前代币的转账都在主链上进行,需要消耗Gas,支付矿工费。

  对于某些本身价值就不大的代币来讲,矿工费会显得过于高昂,但是通过把交易搬到链下,可以避免产生矿工费用,雷电网络就可以解决这个问题。

从雷电网络的结构上不难发现,使用者越多,存在的支付通道越多,转账确认的速度就会越快。相信如果真的能在全球范围内普及,会织成一张密密麻麻的P2P支付网络,届时,这个网络处理交易的速度和吞吐量都可以满足所有用户。

  当然,并不是说雷电网络就是完美的。首先,在使用雷电网络时需要用主链上的资产作抵押;而这部分资产作为抵押物,在使用者完成链下交易之前是不能使用的。这也就决定了,雷电交易只适合小额交易。

  另外,在雷电网络建立初期,支付通道会非常少,这就需要有人主动多建立中介点,才能让整个网络有实用价值。


阅读更多

更多精彩内容