Bitcoin and Cryptocurrency Technologies 学习笔记: 2 浅析比特币去中心化原理

这里结合上一节的简单加密货币讲一讲,比特币的工作原理,其实主要就是比特币如何实现去中心化(decentralization). 如果你看过上一节1.5 ScroogeCoin 一个简单的加密货币设计实现,你会发现我们已经实现了一个可以工作的加密货币,唯一的缺点是他是有一个中心机构Scrooge控制的, 所以这一节讲一讲比特币的去中心化原理,你可以将其当做如何对Scrooge 实现去中心化。当然没有看过上一节并没有关系.

这里我们主要解决如下几个问题:

  • 谁维持交易仓库
  • 谁去验证交易的正确性(双花,签名)
  • 谁创建新的比特币

回顾

我们知道上一节的简单的加密货币系统是这样的,首先他有一个区块链,是交易仓库:
这里写图片描述

每一个区块(block) 都包含了许多次交易,每个区块都是形如

包含接受者的公钥,和货币(称为out)和消费者的货币来源(称为in)以及签名。消费的货币是合法的,意味着他肯定是没有花过的,我们怎么知道他没有花过呢? 简单的,会有一个为交易的货币的池子 unTxPool, 里面存放了未使用过的货币的来源区块和数目,以及所有者ID。,也就是说每个in都来自于一个为消费过的货币:

我们根据这个指针就能找到in的ID,也就是公钥,从而验证签名。然而谁来验证这笔交易的有效性呢?这是我们要在比特币中解决的问题。也就是比特币的去中心化

比特币交易机制

首先我们要说简要说说分布式共识 (decentralization),也就是一种机制,在纯粹去中心化网络中能够同步数据,我们说这里是没有一种方法设计一种这样的机制的,现行的分布式系统都不是纯粹去中心化的。都是一种结合,所以如你所料,比特币系统中安全机制也不完全是技术的,而是一部分是技术,而另外一部分是激励(incentive)

为什么 这种共识在去中心化的系统中这么难呢?下面是一些原因

这里写图片描述

当然这对于我们了解BTC的交易机制并不是很重要

比特币的交易机制简单来说是这样的,首先P2P网络中的每个节点都有如下数据,一个是共有的区块链,也就是我们前面回顾的简单货币的区块链(下称为共识链(consensus chain)),这对每个节点都一样,还有一个就是每个节点都维系着他所监听到的未完成的交易信息(也就是还没有加入到区块链上去的)

然后每一次交易的过程满足下图的协议(简化版,并不完全是):
这里写图片描述

  1. 首先新的交易比如说, Alice -> bob 付款,这个消息会被广播到全网 并且附上他的签名。由于网络并不是完全图,再加上网络有延迟,等等,有些节点能听到这个消息而有的不能。

这里写图片描述
2. 每个节点都将其收到的新的交易加到他自己做区块(还没有添加到共识链)中
3. 每一轮,(BTC中大概10分钟)会选择一个随机的节点(,这里我们先假定我们有一种方式能够随机的以不低于 50% 50 % 的概率找到一个诚实的节点(服从BTC协议),其实后面我们看到这和BTC挖矿有关。)提议下一个区块,也就是将他做好的这个区块广播到全网
4. 其他节点接受这个区块当且仅当其中的所有的交易都是有效的。
5. 节点表达他们的接受仅仅是将这个区块的hash添加他所创建的下一个区块中去。

有以下两个地方需要注意:

  1. 可以看到,BTC系统中,只会将最长的链作为共识链,也就是说只有交易的区块在最长的链中,才会被最后确认为是一个有效交易。
  2. 区块的提交完全是匿名的,也就是提交节点没必要公布他的,位置或者说是 IP地址。整个系统来说都是无身份的,如前面所说,你仅需要创建一对公钥私钥对就可以交易了。二将公钥发布个别人就能收到比人给你的会款。

我们看一看这个系统是否安全

安全性

我们做如下假设,假设有一个敌手,我们来看一看他所能做的攻击手段。

  1. 偷币 ,假设alice要偷走别人的比特币,比如说bob,他唯一能做的手段就是,广播,bob付钱给Alice这条交易信息,然而,我们知道,这条消息上一定要有bob的签名,这个签名是不可伪造的,所以交易是无效的,会被诚实的节点拒绝。
  2. 拒绝服务攻击 假设Alice和bob 有仇,那他听到关于bob的交易信息之后他能拒绝将其加入到Alice所创建的区块中吗? 答案是肯定的。 然而我们说,这是没有意义的,应为,网络中的其他人也会受到这条消息,只要在下一轮遇到一个诚实的节点提交区块就好了,然而基于我们的假设,这是 50% 50 % 的概率存在的。所以这虽然能成功,然而却是没有意义的
  3. double-spent 这是BTC系统最大的问题。也就是说我们假设现在Alice 向bob开的网站买一个软件,用BTC付款,然后,他又将这个BTC用于支付到其他的地方,这能成功吗?

    这里写图片描述

也就是说如上图所示,同一个BTC,用于两次支付。这能成功吗?从密码学的观点来说这两次支付由于没有任何先后顺序(可理解为基于网络延迟或者其他原因),而且都具有Alice 自身的签名,显然是有效的,也就是这两次支付在密码学验证上来说是完全有效的。关键最终是否有效是看那个区块能最终进入共识链。下面我们从Bob 作为商人的角度来看待这个问题。

这里写图片描述

Bob 可以等待,等他发现包含给他BTC的交易进入共识链,然后在让Alice下载,由于共识链是最长的那条链,他只需要等待,等到足够多的确认(后面又多了几块)之后,他认为肯定能进入共识链了才会让Alice下载,BTC系统中选择,6次确认作为交易完成。 也就是说,BTC没有一种技术手段来保证双花,问题,然而随着确认的增加,最终没有进入共识链的概率也会随着指数级递减,所以这还是一个不错的保证。

接下来我们谈谈,刚才所做的假设,随机挑选一个节点,如何随机挑选的,这里面涉及激励措施。

激励与工作量证明(proof-of-work)

前面我们曾提到,BTC是一部分靠技术,一部分靠激励政策。这一节我们就好好讲讲BTC的激励

区块奖励

这里写图片描述
怎么去激励这些节点都按照bTC协议规定的方式做呢? 惩罚那些错误提交的节点吗?这肯定不可能,因为我们并不知道,他们的地址。同理奖励那些正确操作的节点也会存在这样一个问题,我们也不清楚他们的地址。BTC系统是这样做的,每创建一个区块,会产生一个区块奖励 (block reward), 这笔钱(就是BTC) 会发个一个创建者填入的地址。而且这是系统唯一产生新的货币的方式。这笔钱不是一直不变的,每210000 个区块(大约4年)会减半,所以BTC最多有 21million个(在当前规则不变的前提下)。

下面是btc补给图

这里写图片描述

当然这就产生一个问题?那所有人都想要这个区块奖励,被挑选为提议下一个区块的节点岂不是咱了很大的便宜?这太不健康了。所以这就产生了BTC挖矿系统。

BTC mining

不同的加密货币系统所采取的工作方式不一样,有的采取,按货币占有量的方式,而有的则是采用工作量方式,也就是谁的计算能力强,谁就更有可能获得下一个区块的提议权。
BTC 系统中采用了我们之前提到的 Hash Puzzle,也就是提交者需要去无脑算一个随机数。

具体来说,每个提议下一个区块的人需要计算一个随机数使其满足:

H(nonce||prevHash||tx||||tx)<target H ( n o n c e | | p r e v H a s h | | t x | | … | | t x ) < t a r g e t ,也就是说基于Hash函数的可靠性,找到这样一个随机数的概率大概是 targetoutSize t a r g e t o u t S i z e .

这里写图片描述
并且这个 target t a r g e t 是与整个 P2P的hash算力有关的,也就是说每两周自动调整这个target,使得,你说占地hash算力越强,你就能越有机会找到这个随机数。这就是BTC mining 而参与者称为miner。

transaction feee

然而由前面的知识我们知道,这个BTC是会产生完的,大概到 2140年就没了,没了之后怎么运行呢,这里还有一个激励措施,就是交易费用,也就是你付给别人的钱和支出的钱的差值也会成为,miner的收入

总结

首先我们要说BTC是一个自举(bootstrap)的系统

这里写图片描述

首先我们看什么情况下,有人会傻到干这种消耗资源的事情呢?必须得满足,挖矿的花费要有利可图才行。也就是以BTC衡量的美元价值,要大于挖矿所花费的价值
这里写图片描述

也就是BTC的货币价值决定了挖矿系统的稳定性,而什么让人们认为BTC有价值呢,当然,BTC越安全,价值就越高了;显然,越多的人投入挖矿,BTC就越安全。因此这是一个自举的系统。

51% 攻击

我们看看如果有人占有 50% 50 % 的挖矿资源他能干什么。

  • 偷币 这是不可能的,我们知道这一环是基于密码学安全的,他不可能办到。诚实节点不承认这个交易就行了。
  • 阻止某些交易 从区块链的角度来说,这是可能的,他有更多的机会提议下一个区块,他都能控制这个共识的过程了,显然这是可能的。然而从P2P网络来说,他不可能阻止,这个交易信息传播到其他节点。
  • 摧毁掉BTC系统的信用, 显然这是可能的,因为大部分节点被他控制,相当于中心化,这样估计就没跟他玩这个BTC游戏了吧。所以从这个角度来说BTC肯定贬值,那这个攻击还有意义吗?更别说要占据 50% 50 % 的计算资源是多么困难了
相关推荐
Blockchain_Understanding the Technology of Bitcoin and Cryptocurrency-Branden Lee(2018) Congratulations on downloading this book and thank you for doing so. The following chapters will discuss all that you need to know about investing in cryptocurrencies. Cryptocurrencies are relatively new, with the first one being developed in 2009, but they have taken off like crazy. Bitcoin was once worth just $1 for each coin, and now it is worth more than $11,000 per coin in just a few short years. Many other digital currencies are seeing the same kind of increase in value and many people now prefer to work with these currencies rather than their traditional currencies. Because the love for digital currencies has grown so much, now is the right time for investors to get into the market. The value of most digital currencies will continue to grow, and getting in at the right time and learning how to read the market, will ensure that you see a big return on your investment in no time. This guidebook will provide you with the information that you need to get started as an investor and see some good results. Inside, we are going to touch on all the basics that you should know to become an expert at investing in digital currencies. In addition to talking about some of the best strategies for trading in cryptocurrencies, we are going to talk a bit about what these currencies are, how to choose the best one, how to store the coins and keep them safe while you are investing, and even how to avoid scammers along the way. With the help of this guidebook, you will get all the tips that you need to effectively use your digital currencies without having a lot of questions along the way. As a beginner investor, there are a lot of things you may be wondering about when it comes to getting started. Let this guidebook help you to answer some of those questions so you can get started on the right track in no time. There are plenty of books on this subject on the market, thanks again for choosing this one! Every effort was made to ensure it is full of as much useful information as possible. Please enjoy!
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页