比特币是什么东西(比特币怎么获得)

 词语解释     |      2021-05-11 21:44
我们说一个人“是个什么东西”的时候,通常这个人都不是个东西,没错,我这里说比特币也是这个意思。最近一段时间比特币突然又火爆了起来,其币值冲到了历史最高点,一群人赚钱赚到疯狂的同时,也有无数的悲剧在上演着。
今天我就来聊聊这比特币究竟是个什么东西。
因为这篇文章要从最基本的原理开始讲起,所以会比较长。

比特币怎么获得
哈希
哈希这个词是个音译词,原本的单词是Hash,可以翻译为“散列”或“散列函数”。这个东西对于计算机专业的同学来说应该不陌生,但是对于行业外的人而言会觉得摸不着头脑。
简单来说,哈希是个函数集,用来把输入的数值转换为另一个数值,转换得到的数值往往具备输入值的某些特征。例如我们构造这样一个函数函数,取一个十进制数的个位:
h(x) = 取x十进制下的个位
这样我们就得到了一个简单的哈希函数。我们可以往这个函数代入任何的自然数,比如:
h(3) = 3
h(18) = 8
h(5684) = 4
聪明的小伙伴应该已经注意到了,这个哈希函数有个很明显的特点,就是很容易出现相同的输出,比如:
h(2) = h(12) = h(902) = 2
这就引出了哈希函数的两个特征:
值域有限性
哈希函数的输出值(我们称为哈希值)一般都是有限的,但是输入通常没有任何限制。所以在足够多的输入之下,肯定会出现两个不同输入产生相同输出的情况。这种情况我们称之为“碰撞”。碰撞是必然发生的,但是我们可以尽量让碰撞更少发生,一般采用两种方法,其一是设计足够好的哈希函数,让它输出的值尽可能均匀,其二就是扩大值域,让输出更加分散。我们上面的哈希函数值域是0到9十个数字,所以非常容易发生碰撞,如果我们把函数改成取个位到万位的值,那么一下子把值域扩大了一千倍,碰撞的概率也就大大降低了。在比特币中采用了一种叫SHA-256的哈希函数,这个哈希函数值域范围是0到2的256次方(准确来说是2的256次方减一),也就是大概有10的77次方个值。这个值有多大呢?根据科学家的估计,我们当前可观测宇宙的范围内,原子的数量大概是10的80次方个,也就是说如果均匀地分下去,大概每1000个原子能够分到一个独立的值,嗯……省着点勉强够用。
不可逆性
哈希函数的另一个特征就是它的计算不可逆。比如我们上面的哈希函数中,如果已知输出结果是2,我们没有办法知道输入的值是多少。这样的特征使得哈希函数的计算具备一定的安全性。例如在一些网站的账户系统中,就不会直接保存我们输入的密码,而是将密码进行哈希后保存,这样即使保存的密码泄露了,别人也无法从已经哈希的密码中反推到原来的密码。
记住这两个特征,我们一会就会用到。
区块链
区块链作为比特币的核心技术,也是在宣传中被提及最多的词语。看着非常高大上的东西,其实也没有那么高深。
区块链其实是一种分布式数据存储技术。分布式的意思就是很多人(计算机)参与其中,所以这个技术实际上就是把原本需要存储在一台计算机上的数据分散到很多计算机上。这些数据会被分割成小块,每一块数据之间都会有切不断的联系,使得别人无法随意篡改数据。那么这切不断的联系是怎么来的呢?答案就是哈希函数。
在区块链中,首先会构造一个最初的区块,称为创世区块,在创世区块中,可以随意填入一些信息。我们假定这个区块是零号区块。
然后,就可以开始存储数据了。
首先,我们将需要存储的数据构造成一个区块,例如说我们放一句话:
接着,对它的前一个区块,也就是创世区块计算一个哈希值,在这里我们计算得到了这样一串数字:
33e1993f774074d4777c5ef8668656362da04147b0a4f34524596ad46ef19054
把这串数字放到当前区块的前面:
这样我们就得到了第一个保存了数据的区块了,我们可以叫他一号区块。如果需要保存下一个数据的时候,只需要重复上面的动作就可以了。例如我们又需要保存一句话:
这时候,我们需要把前一个区块的所有内容,也就是包含那一串数字的内容也一起计算一个哈希值,然后放在这个区块的前面:
这就得到了二号区块。然后就能把这三个区块串起来啦。
这样有什么好处呢?假如,某个心怀不轨的人希望把马云同志说过的话改成这样:
然后我们重新计算这个区块的哈希值,然后把结果跟原来的比较:
可以发现,值已经完全不一样了。所以立刻就能发现,后面的区块存储的哈希值不对了:
区块链的核心思想就是后一个区块的内容会依赖前一个区块,而前一个区块又会依赖更前面的一个区块,前后区块之间的依赖性就成为了他们切不断的联系。前面说过,我们会把数据存储到很多计算机上,当有一个人把数据修改之后,就会立刻有其他人发现,后面的区块内容完对不上了,也就能有效防止数据被篡改。
这只是有三个区块的情况,当后面有千万个区块的时候,如果试图修改任何一个区块,都要对后面的所有区块进行修改,这些区块很可能分散在千万台计算机上,这个难度可想而知。
这个技术就构成了比特币的基础。当然,在实际应用中区块链不仅仅是这么简单的东西,里面还涉及到很多很复杂的技术,这里仅仅介绍了一个基本的概念。
比特币
讲了这么多,终于轮到我们今天的主角了。那么比特币跟区块链又是什么关系呢?
简单来说,就是比特币使用了区块链技术。前面说到,区块链技术是用来存储数据的,那么在比特币中,使用区块链存储了什么呢?答案就是交易记录。在比特币的系统中,一个区块大致上长这个样子:
开始是区块头,里面保存了哈希值、时间戳、幸运数字等等内容,然后会跟着一块数据,也就是区块体,里面是比特币的交易记录。填入数据之后的区块大概长这个样子:
有小伙伴可能注意到,在比特币的系统里面,跟我们通常涉及的银行、股票等账户的形式不太一样:账户的余额在哪呢?这其实就是比特币特殊的一个地方。由于比特币账户理论上来说是近乎无限的,如果每个账户都要保存余额的话,会让这个系统变得非常巨大,但是这个系统中所有的交易信息都是公开的,而且前面说到,交易信息只要被保存下来了就没有办法被篡改,所以系统的设计者就想出这样的一个办法:不是要查某个账户的余额吗?简单,每个账户最开始一定是没有钱的,比特币又不允许赊账,只要在所有区块中查找这个账户的交易信息,然后把转入的钱减去转出的钱就能得到当前余额了。
通过这样的方式,比特币巧妙地避免了记录每个账户余额的工作,并且不会因为存在一些僵尸账户导致数据量快速膨胀——只要这个账户没有交易活动,就不会出现在后续的区块当中。
那么比特币中的“挖矿”又是怎么一回事呢?我们在前面说到比特币区块的时候有一个很神秘的部分没有提到,就是“幸运数字”。这个数字就跟挖矿密切相关了。我们前面说到,如果要维护完整的区块链,必须要有足够多的计算机保存区块信息,并且需要不停地计算哈希值。在通常情况下,这显然是一件吃力不讨好的事情。而比特币的设计者为了鼓励大家参与建设比特币,就想出了一套奖励办法:对于参与计算哈希值且作出最突出贡献的人,每次奖励若干枚比特币。这样大家就都会积极参与其中了。那么问题来了:如何判定最突出贡献呢?答案就在那个幸运数字里面。
文章的第一部分说到,哈希函数的值域是有限的,对于比特币使用的SHA-256而言,这个值域非常大,所以就会相当多的组合情况出现,例如说有可能从个位到万位全都是零的情况(当然计算机中通常用二进制表示,我们这里为了描述简单,按照十进制来举例)。而为了评估每个参与者的贡献程度,比特币的设计者引入了“难度”这样的一个概念。这个“难度”就是指当前的区块计算出的哈希值的最后包含几个零。
在文章的一部分我们已经展现了,改变区块内容的时候,哈希结果会变得面目全非,也就是说我们无法预测结果会是什么样子的,并且哈希函数不可逆,也就是说我们无法利用结果反推输入,所以只有算出来之后才知道结果。在比特币这里,通过改变幸运数字的值就能让哈希结果不断改变,直到某个值能够符合“难度”的要求。而为了能够获得这个幸运数字的值,就必须不断地尝试,在一定时间内,能够尝试的次数越多,也就意味着这个参与者的贡献越大(他的计算能力比其他人更强,也就能更好地维护区块链)。这个尝试次数就是挖矿者常说的“算力”。而在比特币的系统允许挖矿者在参与挖矿时,往账本上添加一条记录,就是往自己的账户上增加若干枚比特币,当他挖矿成功(也就是找到特定的幸运数字)时,自己账户上就能多一些比特币了。所以比特币挖矿大概就是这样的一个过程:
首先在账本上添加一条往自己账户转规定数额比特币的记录,然后开始变换不同的幸运数字并对整个区块计算哈希值,当尝试到某个特定数字的时候,计算出的哈希值最后恰好有若干个零,那么这个区块就生成成功了,挖矿者账户上也就多了10个比特币。
挖矿的难度会根据前面区块产出的时间进行调整,也就是说越多人参与挖矿,算力越强,难度就会越大。比特币的区块产出时间被控制在大约每十分钟一个。而挖矿的过程直接给出的奖励会随时间的增长变得越来越少,最终比特币的总数量会控制在2100万枚左右。在这之后,参与挖矿的人允许在每一笔交易中抽取一定数额的手续费作为奖励。
代表未来的货币?
比特币的鼓吹者常说比特币是去中心化的货币,代表了货币的未来云云。但是真的是这样吗?
我们首先来复习一下经济学知识:在比较通俗的定义中,货币是一种一般等价物。什么是一般等价物?就是说任何一件商品,都能够折算成特定数额的货币,来方便市场的交易。在上古时期,人类尝试使用过贝壳、石头等物品作为货币,这是一种原始的信用体系。后来变换成贵金属,直接利用了贵金属本身的价值。再后来变成了法币,利用国家的信用背书,支撑着货币的价值。那么比特币具备这样的特性吗?
有了解过比特币的小伙伴可能都知道,比特币在短短十余年历史中,经历过数次的大涨和大跌,一天之内的涨跌幅超过了10%,在这样剧烈的波动下,根本不可能成为一般等价物。想象一下,某一天你花了若干比特币去商店买了一斤猪肉,过两天这些数量的比特币就能买一头猪了,又过了两天这些钱只够买个馒头了,你愿意用这样的钱去买卖商品吗?
美元之所以能够称为世界货币,一方面源于美国的军事霸权,让他能够有足够的信用作为担保,另一方面还有美国承诺美元直接与黄金挂钩,从而锚定了美元的价值(虽然现在已经不要脸地开动核动力印钞机了)。
同时,前面说到,比特币的系统中每十分钟才会产生一个区块,也就意味着每一笔交易平均需要等待五分钟才能被确认,再加上币值的剧烈波动,用在大宗交易里面,能亏到裤子都不剩。
另外一点,账户的余额需要在所有区块中查找交易信息才能确定,也就意味着如果需要确定自己账户上还有多少钱,需要把全世界的人的所有交易都下载下来才能知道,我想各位的手机、电脑存储空间和网络流量还没有充裕到这种程度。
想问问那些鼓吹比特币的人:比特币的价值在哪里?来源于它的稀缺性?我的头发也极度稀缺,掉一根少一根,一根一万美元卖你不过分吧?你买吗?
所以比特币本身并不存在任何价值,也不具备成为货币的潜力,你跟我说它是商品,是一种特殊的股票,我都可以认,唯独不能说它是一种货币。
比特币能够到这么高的市值,只能说完全都是资本的炒作。当然要说我是酸葡萄那也没问题,我就是酸葡萄怎么了?要是把投在比特币、以太坊等各种奇怪的数字货币上的算力转投到人工智能上面,说不定现在我们已经找到新冠特效药了。
区块链本身是个好技术,可以运用在很多的领域上。但是对于比特币——资本游戏就是资本游戏,请别披着高科技的外衣就以为自己真的是高科技了。
  
  • 上一篇:各自为政的意思和典故
  •  
  • 下一篇:灯火阑珊是什么意思