(这是一篇旧文,2017年比特币第一次高潮时写的, 贴在了文学城。 最近这两年在这里潜水, 看到学到不少好东西, 总觉着无以为报,恰逢比特币又一波惊天巨浪,琢磨着或许有人有兴趣看看, 就原汁原味的贴到这儿, 也算我的博客开张了) 一个没注意,比特币又一次热得一塌湖涂了,一个比特币的价格从几年前最初的几美分,飙到了7月25日最高达到两千七百多美元。 随着比特币价格近期高歌猛进,网上关于比特币讨论又热闹起来,连微信群里不知长啥样的美女们也开始打听比特币了。 俺四处转悠转悠,瞜了两圈,发现尽管比特币这么热,其实真正明白比特币是个什么东东的人还真不是太多。要说理解比特币这个东西,说难确实也难,说不难也真没那么难。真想了解的话,不仅能找到很多书,而且网上随便一搜,都能找出不少介绍比特币东西,再顺藤摸瓜往前走走,成为一个专家也不是啥不可能的事。那么为什么很多人,包括一些浓眉大眼,常在电视节目中出头露面的大咖也说不清楚呢? 道理很明显,现代人普遍时间紧,任务重,没时间读书,只喜欢读微信文章这类的东西。 就拿我们吃瓜的小伙伴们来说,肩负着围观各种热闹的重任,未必能有时间研究这个问题。但不明白这个东东吧,眼前这大好的热闹又看不出个门道,着实有点可惜啊,瞅着这个情况,我就有那么一点点于心不忍了。 我就琢磨,看看能不能花点我那没啥可宝贵的时间,写个适合微信微博上阅读的东西, 尽量把话说的接地气点, 聊一聊比特币这个东东。其实小伙伴们自己上的话, 肯定比我整得强啊,只是小伙伴们都是喜欢币,却未必有这份耐心。所以这脏话累活就由我来干好了。唉,我这也是和自己过不去啊,写长了深了肯定没人看,写短了浅了又说不明白。 不过说不明白也请大家伙多多担待,不懂装懂嘛,装得不象是正常的,装得象就算超水平发挥了。 好吧,让我来试试。 关于比特币的历史,我看往前追溯到哈耶克就行了,这老头是个经济学大牛啊,连诺贝尔奖都拿过的,号称“20世纪最杰出之一的自由主义经济学家和思想家",他晚年出版了一本书,叫《货币的非国家化》。这本书真是让人脑洞大开啊,为什么这么说呢? 老百姓都知道,国家家才有权利发行货币,这是天经地义的。但这位可爱的老头儿就是不服气,他认为, 既然在一般商品市场中,自由竞争是最有效率的,那为什么不能在货币领域引入竞争机制呢?换句话说,谁规定货币一定得由国家中央银行发行?凭什么私人不能发行货币呢?在私人货币自由竞争的过程中,那些流动性最好的,使用最方便的,制作成本最低的,最能抗通胀的最优秀的货币,就会脱颖而出,从而大大降低货币的使用成本,提高货币本身的使用效率。 哈耶克的这套理论为比特币的诞生奠定了理论基础,《货币的非国家化》这本书也被今天的比特币粉视为圣经。 不过哈耶克的理论老百姓还是没当回事儿啊,脑洞开一会儿又慢慢闭上了。 各国央行也纷纷瘪瘪嘴摇摇头,对老百姓说,别听他的,这老头儿说的是疯话。 然而,还是架不住有明白人啊,另一位经济学大牛,米尔顿·弗里德曼(Milton Friedman), 提出了一个非常大胆的构想:有没有可能通过计算机程序设置一套自动化装置,让程序自己来发行货币,这就可以避免各国央行人为的随意开动印钞机,引发通胀问题。我看弗里德曼的言外呢,有这么点意思,私人印钱这事儿,要杀头的,没人敢印? 咱让机器去印。 然后,一位的数学家、密码学家,计算机天才,化名叫‘中本聪’(Satoshi Nakamoto)的大牛,读懂了哈耶克的神思,领会了弗里德曼的妙想。2008年11月,中本聪在metzdowd.com网站的密码学邮件列表中发表了一篇论文,题为《比特币:一种点对点式的电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System),在这篇堪称比特币宣言的白皮书中,中本聪阐述了,他为什么要发明比特币,比特币系统应该尊受的协议和规则,以及实现这些协议和规则的技术和方法。有兴趣的小伙伴可也在(http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system)找到中本聪比特币白皮书的中译版。随后中本聪独立开发了一款软件,2009年1月3日,挖出第一笔50个比特币,建立比特币账本的第0个区块,所谓创世区块,然后2010年底就从因特网上彻底消失了。
哈耶克提出货币可以非国家化,弗里德曼构想让机器发行货币, 中本聪甚至在观念上也比他们走得更远。他的比特币不仅是非国家化的,是机器发行的,而且是在多个层面上是分布式的,去中心化的,这些层面包括货币的发行,整个系统的账户管理等。 而且,更为神奇的是,他真的把比特币给’造’出來了! 比特币之父取了个貌似日本人的化名, 中本聪(Satoshi Nakamoto),那么这个日本名字的背后,到底是谁呢? 是一个人,还是一个组织? 虽然经过好事者和媒体多年的调查,至今仍然是没有定论。几乎被认定就是中本聪的,是澳大利亚人克雷格•斯蒂文•赖特(Craig Steven Wright),他自已也曾承认他就是中本聪,不过经多方查证,人们还是不能十分确定这个人真的就是发明比特币的中本聪,比特币之父,是迷一样的存在。 比较好玩的是,有种说法说比特币是中国人发明的,中本聪就是’中国人本来很聪明’的意思.不管怎么说,能在互联网这么发达,人肉技术这么强的今天,发明比特币的同时又能成功的深藏功与名,真的是很厉害啊,而且,这里面能不能演义出吃瓜群众喜闻乐见的阴谋论,大棋说,也是件可以观察的事儿。 我们说中本聪发明了,或创造了比特币,指的是他完成了这么几个方面的事情,首先提出了构建点对点的分布式记账货币系统的想法,其次整理出了为实现出这样的系统,各个节点之间需要的遵守的完整协议 再次,提供了解决若干个具体问题的切实可行的方案, 这些问题涉及到这样的分布式记账货币系统的各个环节, 最后,开发出一套可运行在每个节点的,程序, 实现了所有这些协议和要求。可以说,中本聪就是传说中’神一样存在!’ 他凭一己之力缔造了一个货币系统,这个系统足以抗衡以国家之力为之背书的国家货币接着, 中本聪顺手挖出100多万个比特币,然后,轻轻的, 他走了,不知道是不是也带走了他的比特币。 打开比特币官网,第一页你会看到“比特币是一个重新的支付网络,一种新的货币。”按现在民间流行的说法,比特币是一种虚拟货币。听到货币这个词儿,小伙伴们可能没那么激动,觉着那是经济学家的事,其实那就是咱们可以用来买大西瓜的钱哪,哈! 关于什么是货币,说起来话就特别长, 按照不同的分类标准,什么实物货币,称量货币,信用货币,数字货币,货币数字化, 等等,在这儿就不扯那么远了, 那些问题让经济学家去伤脑筋吧。 咱就记住,能被人们普遍接受的交易媒介或支付手段,它就是钱,这就够了,这种意义上比特币它就是钱。有越来越多的个人,机构、公司认可用比特币交易和支付。 比较有名的是李嘉诚几年前就一个猛子冲上去抱住了比特币,华尔街大黑帮高盛的忍不住宣布要投资比特币。当然也很多人,包括从老百姓和牛如郎咸平之类经济专家的人, 都说比特币是庞氏骗局, 视之为蛇蝎, 唯恐避之不及,至少表面如此。 还有呢,不同国家官方对这个东东也有不同的说法,德国政府最敞亮,认可比特币的法律和税收地位,视为合法记账单位。一向随和的法国这次比较耿,宣布比特币违法,战斗民族俄罗斯一如既往的粗暴,直接宣布全面禁用比特币,美国则有多种说法,主要是把比特币看成大宗商品,就象黄金,白银,咖啡,黄小玉(黄豆,小麦,玉米)等。日本人再次显得职责分明, 央行和财务省都说监管比特币不属于其职责所在。 天朝的官方的态度则显得相当的灵活和变通,说比特币应当看成一种特定的虚拟商品,不具有与货币等同的法律地位,不能且不应作为货币在市场上流通使用,不在政府监管范围,并告诫民众比特币有多方面的风险,另一方面又说要开发自己的数字货币。 搞成现在这个既热闹又混乱,莫衷一是的局面,原因倒是很简单,就是绝大多数人,包括很多经济金融方面有话语权决策权的人物,现在还没整明白比特币到底是个甚么东东。俺呢,自然不是什么专家,顶多是个喜欢泡网拍砖的砖家,俗话说,世上本没有楼,拍的砖多了,也便成了楼。 忘了哪儿听来的一句话上: ‘心念一动,震动乾坤’, 我这两天也是心念一动,不过没敢想震动什么,只是想跟坐地吃瓜的小伙伴们一块唠一唠这出好戏的剧情,不过后面还有些重要的剧透不想让别人听到啊,小伙伴们注意一下,看看你周围有没有浓眉大眼的家伙,蹲在地上,捧着块西爪偷听。 好了,就此算是码完了作为引子的部分,你还在读么? 下面要进入比较艰难的部分了,我要尝试着说说比特币的技术部分, 你还继续读下去么?
从古代的贝壳,到金银,到纸币,到我们银行账号上的数字,这些东西能做为货币的理由,已经被经济专家们分析了个底儿掉,无非是实用性,稀缺性,国家信用,法偿性,强制性等等,凭良心,咱不能说这些是‘事后诸葛亮’,不过某些专家在比特币是不是货币, 比特币将来会发展成什么样子等问题上,还是真有那么点‘事先猪一样’的意思, 因为以前那些东东能作为货币的理由,套在比特币身上显得特别不合身儿。经过比特币粉和比特币黑这些年的争论,比特币粉,不管是不是真的明白,有了一个比较一致的说法: 比特币能作为货币靠的是它背后的技术, 如果你再追问一句,比特币后面的技术到底是什么? 为什么这么厉害? 恐怕十有八九要掉链子了。 比特币之所以这么猛,这么强,说实在,它背后还真是有点硬东西在支撑。咱先把几个唬人的核心概念抛出来, 然后再慢慢把它们掰拆掰拆。首先也是最重要的,比特币是一种公共记账货币。其次,支撑这个公共记账货币系统主要有这四项关键技术,曰:分布式共识机制,有了这个就可以使去中心化权力结构成为可能;区块链技术,这个用来记录便于验证且不可更改的公共历史;非对称加密技术,这个保证了比特币安全,保密;最后一个是工作量证明机制,哈,这个最好玩,后面再细说。 对大部分人来说, 看到这几个唬人的名词,直接就跳过去了。不过,俺和广大小伙伴们一样,喜欢‘八卦体’远胜于‘八股文’,所以俺在这里尽量用老百姓自己的话说,没准还真有小伙伴能捏着鼻子(有耐心)读下去呢。 从古至今支付手段都是处于不断的发展和变化之中,大致上经历了以物易物、实物货币(黄金,白银)、符号货币(人民币、美元等)、中央系统虚拟货币(银行、支付宝、微信支付等)。 在最后这个中央系统虚拟货币里,一切都是围绕着用户的银行账户的里的数字及其变动。这种形式的货币被称为记账货币,银行管理控制着所有账户的钱和相关信息,这样的系统叫有中心的记账货币系统,银行就是那个中心。比特币也是记账货币,不过它去除了那个中心。 常有人问,什么是比特币? 这个还东西真不太容易用以前熟悉的语言解释明白,你还是得学点新东西才能理解。 咱先来一个最简单的版本。 可以这么理解,比特币系统是一个巨大的、不断更新的账本,每一页都叫做一个区块,按照时间顺序连起来,就叫做比特币的区块链。每10分钟新增一个区块,里面的内容是过去10分钟系统内发生的一些交易。每一笔交易都会完完整整记录在这个账本里,比特币就是账本里记录的钱。比特币与银行、支付宝有所不同的是,比特币的交易信息不保存在中央服务器的数据库中,而是保存在所有连接到比特币网络的电脑里。 接下来要唠一个啰嗦的版本。 比特币是这么个系统,它有一个软件,谁愿意下载这个软件都可以,下载这个软件到你的电脑上以后,你联网并启动这个软件,你的电脑就成为比特币系统的一个节点,比特币系统就是由成千上万的这样的节点构成的。运行这个比特币软件,它首先到网上寻找到最新的历史记录,并同步到你的电脑上, 所以每个节点上就都有一份整个比特币系统从0开始的所有账户的全部账目记录, 这个软件会自动记录更新验证,保证每个节点上的备份是一致的, 这个系统上记录的账户里的数目就是比特币。 比特币是一个去中心化的记账系统,去中心化有几重意义,其中之一就是没有银行这样一个中心去管理人们的账户。另外在比特币系统中,它还意味着没有货币发行中心。 我觉得,也许去中心化不应该看成一种技术,而应该看成是系统构建方法或方案,或者干脆就是一个理想。想想银行漂亮的大楼和西装革履趾高气扬的银行男女, 你就知道,一个去掉这种中心的货币系统能为我们节约多少财富。 也能知道,银行的上上下下,男男女女们对比特币是多么痛恨。 所谓公共记账就是用户们或比特币节点自己记账,整个系统的账户余额和转账接受等信息记录在成千上万的计算机上。 这些账户记录通过最初由中本聪设计好的软件系统, 它能记录,更新,检查,验证所有交易, 它也能防止各种可能的欺诈,攻击,同时又能在全球各地之间瞬间传输。这样复杂的东西是如何实现的呢? 这就要用到前面提到的那些些精心设计的技术。这些技术涉及和使用到数学,密码学,计算机科学,网络的多方面的知识和技术, 这里只能力求把这些东西介绍的简单能懂。 下面是一个有技术含量的版本。
首先介绍有一个很重要的一个工具叫哈希(Hash)函数,也叫散列函数,不同的输入值,可以是单词,语句、文章、 整页账单等,把一堆这些东西打包成一个整体,经过哈希函数处理,就能得到一个输出值(函数值),这个输出值是一个固定长度(64位)的字符串,有时我们称其为消息摘要,或直接叫哈希摘要。 哈希函数有三个非常重要的特点,第一,同样的输入消息经过哈希处理,任何时候都得到相同的信息摘要,第二,不能从函数值倒推出输入值,也就是运算是不可逆的,第三,输入值微小的变化会造成输出值巨大的变化, 如增减一个空格,或改变一个标点符号,哈希处理之后得到的信息摘要是完全不同的,在密码学中,人们称这个为雪崩效应。 哈希函数是密码学中的一个非常重要的工具,有多个种类。在整个比特币系统的不同环节,都用到了哈希函数。 有些人甚至把哈希这个词用作动词,比如说,把这个信息包哈希一下。 大概了解了哈希函数以后,下面介绍区块链技术.,前面我们说过,比特币是一种记账货币,我们用纸笔账簿记账时,是一页一页的记。比特币系统则被设计成每10分钟对整个系统发生的事件记录一次,可以形象看成每10分钟记录一页账目,这一页的账目记录在电脑中就是一个数据块,叫做区块。把区块链接到一切就是区块链,从数据的角度看,区块链是一种便于在去中心化的系统中使用的数据结构或存储方法。 用哈希函数处理每个区块,可以得到个区块的摘要,记录每一个区块时,系统要把在这段时间发生的交易,连同上一区块的哈希摘要放在一起作哈希处理, 处理得到一个这个新的区块的哈希摘要,这样每个区块记录都包含上一个区块的哈希摘要,这样就形成一个链状数据结构,即区块链。有力这样构成的区块链,要验证核对两个账簿记录是否一致就很容易了,不管有多少区块,不管每个区块多复杂,只需比较最后一个区块的摘要是否一致就行。这样就使得保持整个比特币系统的一个不可更改的历史记录成为可能。顺便提一下,区块链技术现在很热,越来越多的应用到了比特币之外的很多领域。 下面再稍微说说非对称加密技术,这个技术是现代密码学里的很重要,细节上很复杂,但我们在这里不需要深究。这个东西主要用在把账户和它的主人联系起来。对我等吃瓜小伙伴来说,只要类比电邮的用户名和密码理解一下就差不多了。当然要比电邮系统的安全行保密性高得多。另外,这种技术也用来确保和验证支配一个账户内比特币的人确实是账户的主人。这里用到的一些名词有地址(相对与用户名),密钥(相当与密码),还有公钥匙,签名等。大体上这里的关系是,谁知道某一个地址的私钥,谁就能支配该账户里的比特币。由私钥经过计算,包括哈希处理,可以推出公钥匙,公钥经过计算可以推出地址,但反过了不行。密码学天才中本聪在设计这些的时候,考虑的很周全,你能想到的中本聪都想到了,你没想到的,他也考虑到了,请放心用吧。要特别强调的是要保护好你的私钥匙,丢了私钥,就等于丢了账户里的一切。 最后一个技术,也是吃瓜小伙伴们最感兴趣的: 工作量证明机制。我要这么说,你肯定嗤之以鼻,"工作量证明机制? 这是个什么鬼? 这有啥好感兴趣的? ”好,让我换一个说法试试,‘挖矿!’ 怎么样? 立马不瞌睡了吧? 比特币挖矿? 挖什么? 怎么挖? 为什么要挖?
说起为什么要挖矿, 小伙伴们都知道,为了钱呗! 可是为什么比特币系统要让你挖矿,还发给你钱? 这就有必要聊聊那个有名的拜占庭将军问题了,这是大牛Lamport在研究分布式系统容错性的时候编出的一个故事。今儿有兴致,俺来随手编一个中文版。 话说十八路诸侯伐董卓的时候,十八路诸侯把董卓给围了, 诸侯们反复掂量双方实力,皆十分忌惮吕布的方天画戟,若非半数以上的诸侯一起进攻,决计敌不过奸贼董卓。诸侯们欲商定何时一起动手进攻,派出的流星探马和信使在个诸侯的营寨间来往穿梭,不停的传送消息和约定,但诸侯们个个都有小算盘,有想打的,有想撤的,有看风使舵的,消息是真真假假,虚虚实实,诸侯们都不敢轻易相信别的诸侯的诺言,不知该如何定进攻方略,诸侯们甚是为难啊,无奈这才推选袁绍任十八路诸侯总盟主,统一指挥。 这个就是中国版拜占庭将军问题,反映的事实是在没有中心的分布式系统中,达成某种共识实在不是件容易的事,有时实在不得已,还得弄成有中心的。 如何才能真正解决拜占庭将军问题,保证这种分布式系统一致性和可用性? 这个问题,让前面几十年的研究者伤透了脑筋。 要设计和构建一个可以信赖可以使用的分布式记账货币系统,必须解决在缺少可信的中央节点和可信任的通道的情况下,分布在网络中的各个节点如何达成共识的问题。这个问题具体到货币系统来说,就是在人人平等的分布式货币系统中,理论上每个人都可以记账,但人人记账的话铁定会出乱子,那么让谁来记账? 怎么记? 别人凭什么相信你记的账? 要不怎么说中本聪简直一个是神一样的存在呢? 在别人试图用数学,密码学的方法解决这个问题而陷入泥坑的时候,中本聪另辟蹊径想出一个神奇而巧妙的方法,漂亮的解决了这个问题。他把这个问题从了数学,密码学的框框中拎出来,把它放在了人性的层面,于是,问题立刻迎刃而解。他的办法是,为了鼓励人们记账,规定记账的人有赏;为了避免人人记账造成混乱,规定一次只能有一个人记账, 记账的人得先付点代价,得干活,干得最快最好的人才有权给大家记账; 为了防止记账的人不负责,瞎记或有意捣鬼,规定记录的账目要让其他人验证,如果验证发现有错,没收奖金,让你白辛苦,然后另找他人重记。当然了,中本聪在解决这个问题的时候借鉴了前人(Adam Back的)的想法,这个得提一下。 关于比特币,大大小小的矿工和吃瓜群众最为关心的是挖矿。现在我们清楚了,实际上就是比特币系统中,竞争记账权的争夺过程。争抢记账权的人就是矿工,抢到记账权并成功记账的矿工,便得到比特币作为奖励。这就是矿工和挖矿在整个比特币系统中的角色和定位。 那么,具体是怎么挖矿,怎么争抢记账权呢?
这个可以从两个层面上理解,如果只想挖矿挣钱,懒得动脑筋了解它背后是怎么实现的,那么你只需准备好挖矿设备,联上网,下载好挖矿软件,启动挖矿软件,保证机器供电。让它跑就行了。所谓挖矿设备,可以是电脑,用CPU或GPU挖矿,也可以是专门设计的挖矿机。现在用电脑挖矿已经没戏了,必须用强大的专门挖矿机,否则电费也挖不回来,更不用说靠干这个发财了,而且还不能单干,要在矿池里挖矿,否则可能一辈子白辛苦。关于这个层面上挖矿的介绍,网上很容易找到,就不多耽误功夫了。
如果想稍微深入了解一下挖矿背后的过程,就需要用到前面介绍的区块链介绍和哈希函数。中本聪的方案是,挖矿的矿工,也就是每一个正在运行的比特币节点, 首先要保证和网上最新的账目同步,找到最后一个区间极其哈希得到的摘要,然后收集上次记账以后还没有记录在案的交易,就是发送和接受比特币的转账情况,验证每一个交易合乎规则的,不符合规则的不予记录。然后把这些信息打个包,这个包内的信息是这个区块里真正有用的东西。 前几年,由于使用比特币交易比较少,这个收集验证交易信息和打包的过程并不耗费多少计算资源,最近情况发生了改变,比特币交易日益增加,这个过程也需要占用相当的计算能力和时间,这个正在引起一个威胁到比特币生死存亡的大问题,关于这个事儿,先按下不表,请看后面分解。 下面到了关键的地方,说说比特币好是好,可为啥比特币挖矿竞争那么激烈,耗费那么多电力等资源,既不绿色,又不环保? 挖矿的过程是这样的,本来呢,一个矿工(他的节点)把过去大约10分钟全网发生的转账等信息收集、验证、打包好, 形成一个交易信息包,再把上一区块的哈希摘要加上, 就可以对这堆东西做哈希处理得到本区块的哈希摘要了。单纯从记账的角度看,这已经够了,他就可以把这些东西广播出去,让其它节点验证了。 但这里有几个问题,首先,这种事情每个节点都会做,而我们无法保证每个人都能做到诚实地记账,实际上比特币程序是开源的,一个矿工愿意的话可以改动程序,这样他肯定有诱惑给自己的账上多记几个币。其次,每个矿工这样轻易的打包,哈希,然后把区块广播出去,比特币系统之间的网上会有数据包满天飞,节点会有无数的区块要验证,也就是说,这样的构建的系统肯定会遭遇拜占庭将军问题,系统立马就崩溃了,一定的。 就像前面提到的,中本聪在这个环节引入了被称为工作量证明的竞争方法,巧妙的解决了这个问题。具体说来,他是这样做的,不是把本区块的交易信息包加上上一区块的摘要就直接做哈希处理,而是要把这堆东西再加一个8位随机数(叫Nonce)。然后再对它们做哈希处理,这样就能得到一个64位的字符串值形式的摘要,如果这个摘要满足一定的要求,它就真的能被当作本区块的信息摘要,如果信息摘要不满足要求,矿工就不得不再用一个新的随机数去试,这里面没有技巧可言,就是一个笨办法,不停的试。 这里说的一定要求或条件,就是字符串形式的信息摘要必须满足的形式,中本聪规定,合适的摘要的前几位必须是0,后面的位数则可以是任意字母或数字,前几位要求的0越多,找到的难度越大,也就越费时间。对于每一个区块的摘要,具体要求前面有几个0,也就是调节挖矿难度,是系统跟据网上节点算力情况确定的,大体上要保证以当前全网算力,10分钟才能找到。中本聪找到的创世区块的摘要是000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f,前面有10个0,那个随机数(Nonce)是2083236893。 到了第40万个区块就前面就要有17个零了。 你运行比特币节点软件,其中的挖矿功能就开始工作,同时很多其他人也在做同样的事情,谁先找到,谁就得到这个个区块的记账权,和新发行出来的比特币。找到这个随机数的人,把信息包和这个随机数广播出去,接收到的人,会马上验证,如果通过验证,就被记录到那个整个比特币账本中作为新的一个区块,同时停止自己矿机上的寻找,开始在新的区块上的重复这套打包挖矿的过程。 如果你挖矿成功,争取到记账权,你就可以给自己发奖金,具体方法就是你可以在一个你指定的地址中凭空记入一定数量的比特币,最初是50,每4年减半,现在是12.5。 按照中本聪的设计,比特币的总量是2100万个,大约到2140年挖完。如何你不傻的话,你肯定会指定那个地址为你自己的钱包地址。 为什么比特币总量是2100万,而不是其它数? 这个有多种多样的说法。首先,这个总量是有限的而非任意发行的是好理解的,比特币诞生于08年,正是金融危机之后,各国央行开足马力印钱,大搞量化宽松(QE)的时候,也就是FED的伯南克用直升飞机撒钱的年代,老百姓担忧恶性通货膨胀会稀释自己辛苦挣来的血汗钱,所以一个限量发行的货币更得人心。 关于为什么是2100万,一个比较靠谱的说法是考虑了这个数字在不同计算机语言中的表示和存储方便。 到目前为止,大约挖出了1600多万比特币,还有400多万没挖出来,挖矿也越来越难,收益越来越小。按中本聪的设计,早期,为奖励比特币矿工记账,竞争到记账权的矿工会得到新发行的比特币作为奖励,到了后期,比特币挖完的时候,比特币记账仍然是需要的,那个时候,为鼓励矿工挖矿,就需要从比特币交易中抽取一定比例的手续费作为奖励,除此之外,收集、验证和打包交易信息,反复尝试并寻找合适的随机数(Nonce) ,找到后将区块信息广播出去,其它矿工做验证等等,和现在挖矿的过程是完全一样的。只不过那个时候,有可能矿工就不再是一个合适的词了。 说的这里,我们就可以顺手纠正一个广为流传的,先是似是而非,后又以讹传讹的错误,在网上能看到一些介绍比特币的文章中说,中本聪设计比特币的时候,‘搞’了一个非常复杂的数学方程,这个方程有2100万个解,挖矿就是求这个方程的解,谁找到一个解, 谁就能得到若干个比特币,2100万个解全挖玩后就没了。现在你看到到了, 这种解释是非常牵强的。 大体上,如果你读到这里,你就应该对比特币系统本身有了相当的理解,或许你的水平已经超过不少人了。 这些东西说起来很复杂,的确也挺复杂,需要精心设计,考虑到方方面面每一个细节。但如果你只是想挖矿,其实很简单,你只需启动你的电脑或挖矿机,联网,下载比特币挖矿软件,启动这个软件。背后的收集转账信息、验证、打包等等,你的电脑或挖矿机都知道怎么做了, 你只需花的是电费, 关于具体怎么挖矿,网上有无数的介绍,这里就不说了。 哦, 一不小心把这个又啰嗦了一遍。 了解了比特币分布式记账系统的大概轮廓,下面再看看比特币的一些问题,同时尝试展望一下比特币未来的发展前景。 比特币设计的很巧妙,也取得了空前的成功。那么有没有什么问题和隐患呢? 答案是:有! 这个问题可以从多个方面来考察,先说来自外部的挑战。 首先是这个比特币的发行和分配问题,早期,在大家还不知道比特币的时候,中本聪等创始人轻易的挖到了很多比特币,粗略估计,在总共2100万的比特币中,早期的不到1000人,拿到了大约1000万个比特币,中本聪自己就挖到了差不多100万个比特币,按今天的汇率,价值差不多25亿美元。尽管有这样的说法,中本聪发明了比特币,没有申请专利,自己拿这些钱也是可以接受的,另外那些早期的挖矿人,承担了比特币可能失败的风险等等,但是,无论怎么说,早期1000人拿到了全部比特币中的半数这个事实,还是让老百姓们觉得很不爽。 其次,丢失问题,根据比特币协议,如果一个人忘记或丢失了他的私钥,那么他对应账户中的比特币就死了,谁也无非支配了,相当于彻底退出流通了,能流通的总数就不到2100万枚,中本聪本人的100多万比特币,就从来没有进行过交易。随着时间的流逝,这样丢失的比特币会越来越多,最后有可能会造成流通量不足的问题。当然从正面意义上讲,你也可以理解为比特币越来越值钱了。 第三,前面说了,比特币是之所以能被被发明出来,并混得风生水起,一个重要原因是,08年金融危机之后,美国的QE和各国央行滥发货币,造成货币贬值,老百姓不愿意看着自己辛辛苦苦挣来的血汗钱,一点一点被滥发的货币冲淡。但是,一个固定总量的货币,肯定会引起通货紧缩的问题,这也是为什么不可能恢复金本位的主要原因。虽然老百姓喜欢自己的钱越来越值钱,但对整个社会,整个国家来说,通缩比通胀更可怕。如果大规模使用比特币,肯定会造成螺旋式的通货紧缩所以, 经济学家对此尤为担心。
第四,比特币骨子里是一种无政府主义货币,是反央行和反政府监督的。其原始动机就是反各国央行滥发货币,用通货膨胀的方法剥削人们的财产。中本聪在他比特币白皮书中说,他设计这种系统的目标就是排斥央行对货币发行和支付转账的管理。同时精心设计的比特币的账户保密技术也使得政府监督,税收等非常困难。世界各国目前对这个的态度有限混乱,也在不断变化中,所以尽管到现在人们还在讨论用比特币取代通用货币的可能及后果,我觉得只有国家形式存在,比特币根本不可能的全面取代法币,反过来国家也不能完全消灭比特币。央行发行的货币仍然是主流,比特币是补充。政府在逐渐认清比特币的方方面面的同时,学会和比特币相处。逐渐发展出监管比特币的政策和手段。 也有一种观点认为,因为比特币无政府主义的天性,会招各国政府和央行的痛恨,世界各国政府会联合起来,把比特币掐。理论上这个是一种可能性,但梦想成真可能性非常小,因为各个国家在比特市上的的利益不一致,有些国家还指望用比特币搞点阴谋,去祸害别的国家.退一步讲,就算全球各国能联合起来,也不可能把比特市彻底掐死,比特币会转入地下,成为一种黑社会的货币。 这里俺要夹带点私货,俺的看法是,比特币不会取代通用法币,但从长期趋势看,它会与法币共存,价格会大起大落,但总趋势是不断的上涨,可能会涨到让今天的人目瞪口呆的地步。如果它越来越贵,潜在的升值潜力,使得人们不愿意用比特币支付和交易,如果交易太少,它就会慢慢自动推出货币市场,成为一种类似收藏品的东西。 第五,山寨币,讲比特币的故事,必定要捎带讲讲比特币的模仿者,天朝人称山寨币。比特币的空前成功,着实让一些人羡慕嫉妒恨啊。于是纷纷琢磨着怎么能模仿一下呢,因为比特币所有的东西都是公开能找到的,这帮人回家仔细研究了一下,发现这个东东很容易模仿嘛,于是把比特币的一些东西(如币的总量,加密方法等)稍微改一改,起个自己觉着酷酷名字,就算造出一种新币来,先关起门来自己挖个不亦乐乎,觉着挖得差不多了,就公开出来忽悠别人来挖,然后等着发财。短短几年间,造出了近千种这样的山寨币。这些山寨币大部分是简单模仿,我觉得你不用浪费时间去鼓捣它们,只需注意一下莱特币(Litcoin) 和以太币(以太坊,Ethereum)就行了。需要注意莱特币是因为它是虚拟数字货币的老二。以太币呢,则有它的独到之处,它进一步发展了区块链的技术和理念,使得人们可以扩展区块链中的东西,并可对区块链中的记录编程处理。 这个发展在虚拟数字货币之外的其它领域会有重要的应用,以太币有可能是比特币的有力竞争者。 这些就是主要的来自外部的挑战,面对来自外部的攻击,比特币是个坚强的堡垒,俗话说的不错,堡垒最容易从内部攻克,所以比特币要死的话,死于内部的可能性最大,比特币体系内部确实有一些问题,下面在说说比特币来自内部的危机。比特币有没有可能死呢?有的, 那么可能是什么死法? 分叉,确认拥堵问题。 如果最后比特币死了,那么最大的可能是死于分叉。分叉有几种,最简单而又无害的分叉是这种情形,在记录某一区块的账目时,两个比特币节点,几乎同时找到了满足条件的随机数,就是说都挖到了比特币,这两个节点分别把自已的区块记录结果广擂出去,并且分别得到了其它一些节点的验证和承认, 这种情况就出现了分叉,相同时间段的转账事件,有了两个区块的记录,这种情况下,比特币系统会暂时容忍两个叉,然后继续往下发展,再过几个区块就会发现,前面分开的两个叉长度不同了,这种情况下,系统的节点会放弃短的那个链,而把新的区块连接在长的上,短链上的所有记录作废。这种分叉是一种无害的暂时性的分叉,虽然会耗费一些资源,但不会威胁比特币系统本身。 除了这种小的无害的分叉,有时侯比特币系统还会发生大分叉,大的分叉又可分为硬分叉和软分叉两种,这两种大分叉都会对比特币造成非常大的威胁,下面以确认拥堵问题为例,说明一下这个问题。 除了前面提到的来自外部的挑战,比特币体系内部也有一些问题,目前遇到的一个问题就是所谓的交易确认拥塞问题。这个问题虽然还算不上迫在眉睫,但也是相当紧迫了,亟待解决! 这个问题的背景是这样的,最初中本聪设计比特币时,考虑到比特币的交易量比较小,所以规定每10分钟左右记录一个区块,每个区块不能超过1MB。近一两年来,比特币交易日益增大,10钟内发生的交易记录超过1MB,且有继续急速增大的趋势。这就造成一个拥堵和延迟的问题,一段时间内发生的比特币交易不能在10分钟内得到整个系统的确认,为了尽快得到确认,交易者有时不得比增加手续费,如果不愿增加手续费,就得等待较长时间才能得到确认,这无疑增加了使用比特币的成本,降低了效率。这样会让一些本来打算用比特币支付的交易离开,长久看来无疑会影响比特币的生存发展,甚至生死存亡。有些山寨竞争者就是从这个角度对比特币发起进攻的。 面对这个问题,如比特币基金等核心组织,在积极商讨如何解决这个问题的对策,目前主要有三派,他们是各执己见,争执不下。 一派可以算比特币原教旨主义者,以拥有一些比特币的小散户为主,他们的态度比较保守,主张一切都不要变,比特币只进行大交易就好,小交易让莱特币,通用货币等去做就好,这种做法从系统内部看相当安全,但它不解决问题。 另外一派比较激进派,他们主张修改比特币的共识规则,关于改什么,怎么改,这个里面又可以分为若干小派,其中影响较大的一派认为,可以去除区块链大小限制,现在的比特币共识规则中,一个区块不得大于1MB,如果去除这个限制,让比特币一个区块可以任意大小,就彻底解决了确认拥堵问题,可以及时的完成每个区块所有交易的确认,这一派叫比特币无限(Bitcoin Unlimited)。 这样的方案的确可以解决确认拥堵问题,但问题是,这样对比特币共识规则的修改,一定会造成硬分叉,运行新的共识规则的节点上产生的区块,以及挖出来的比特币,得不到运行旧的共识规则的节点的承认。这样比特币就会分叉为两个链,两个链上的比特币的价格会是不同的,旧币可以送到新节点,新币不能送到旧节点,这样会造成巨大的混乱,最轻的后果是,比特币的总量会增加,不再是2100万,可能会是3300万甚至4200万,这样肯定会影响比特币的价格,而且也无疑会影响老百姓对比特币的信心和接受度。另一种严重的后果是,比特币就此分为两种,各自成为一个系统,这样后来的这个比特币就相当于一个山寨币了。比特币能有今天傲视众山寨币的局面,靠的是先入为主的优势和人们对比特币的信念,比特币最大的价值是其品牌和知名度,失去了这些,比特币的接受度无疑会下降,政府再乘机打压,比特币就真正的在劫难逃了。 除了这两种保守和激进的主张,还有一些改良主义的派别,其中一种是用所谓的’见证分离’的办法来解决问题。 具体来说是这样的,比特币的每笔交易都包含两部分信息,一部分是交易的双方的地址和交易数量,另一部分是确认这个交易确实是由支付一方的主人发送的,包含通过私钥而生成的签名等信息,这部分叫见证信息。那么,见证分离是怎么做到的呢? 改良主义者认为,我们可以不改变比特币共识规则,也就是还保持每个区块1MB的限制,但我们让每个区块中只包含支付信息,不包含见证信息,这样每一个区块就可以包含更多的交易,从而解决确认拥堵问题。 这种’分离见证’和类似的改良主义的方案,其本质是用某种技巧或方法,巧妙的骗过旧节点,这样新旧节点生成的区块和比特币还能互相承认,但区块包含的信息却是不相同的,这是一种利用软分叉解决问题的方案。这种方法现在看来是可以解决当前的确认拥堵问题,但是也只是个权宜之计,它只能’扩容’约40%左右,如果比特币全网交易量在现在的基础上再增加一倍,确认拥堵问题就又回来了,而且更危险的是它有损害比特币的安全性潜在可能。 那么,面对这个紧要的问题,比特币社区最终将采取哪种对策呢? 比特币是一个去中心化的货币系统,不幸的是它去中心化去得太彻底了,连系统自己的领导中心也去掉了,比特币社区真正成了一盘散沙,在遇到确认拥堵这样的问题,需要决断的时候,连个拍板的人都没有。当社区内出现争执时,一些核心组织会提出一些解决的建议和方案,至于整个社区会不会接收,或者社区会不会因此而分裂,取决于社区成员的投票选择,投票的办法就是选择使用哪个版本的比特币节点软件。2013年3月曾有一次未曾预料到的硬分叉,原因是0.8版本使用的数据库与0.7版本不同,导致某些0.8版本确认的块因过大而不被0.7版本认可,最后的解决方案是整个社区接受了0.8版本的节点退回0.7版本的方案。
51%攻击,只是个传说? 目前,人们只是看到了分叉可能带来的风险,其实可能还有另外一些问题,会带来更大的威胁。不过到现在还没有看到网上有人讨论,既然我想到了,就在这里简单分析一下,希望不要砸了某些人的聚宝盆。 比特币系统是去中心化的,它没有一个中心数据库来存放系统的交易数据,而是用区块链的方式存放在每一个比特币结点上。到现在为止,这些数据已经超过了100GB, 随着比特币交易的日益增长,这个区块链会飞快的增大。一般小矿工,小散户的节点是放在家用电脑上的,家用电脑的硬盘容量是1TB左右,如果比特币区块链越来越大,占用越来越多的硬盘空间,人们就不再愿意在家用电脑上安装和运行比特网节点了。在网络的流量和带宽方面也非常类似,在比特币节点间交换信息的流量会越来越多,会严重影响网络流速,再加上用家用电脑挖矿已经根本挖不到比特币了,在无利可图的情况下,越来越多的小矿工会停止挖矿,这样会造成比特币全网上运行的节点日益减少。 另一方面,可以说是众所周知,挖矿活动越来越集中到了一些大矿场,大矿场主控制的节点越来越多,在整个比特币全网中所占的比例越来越大。这样的趋势和后果是,或者大矿场主们本身,或者黑客,或者某些怀有敌意的国家的政府, 发动51%攻击的可能性就越来越有可能。 所谓的51%攻击指得是,如果有人控制了50%以上的算力,他就有能力利用他的算力优势和比特币使用算力作为竞争条件的特点,随意决定比特币区块的内容,比如撤销交易或者制造虚拟交易等等,所以,如果有人控制了比特币全网算力的50%以上,他就可以控制全部比特币资产,这也就意味着,整个比特币系统就此崩溃。 51%攻击对所有的去中心化的分布式系统都是致命的! 除了可怕的51%攻击,还有一个弱一些的威胁,叫”25%漏洞”。这个问题的根源也是存在于比特币固有的货币体系之中,主要和现在矿工们都是在矿池中挖矿有关。所谓矿池指的是一种合作挖矿的形式,如果一个人单干挖矿, 那么他有可能挖到发一笔大的, 不过一辈子什么也挖不到白辛苦的可能性也很大, 如果把大家组织起来挖, 不管谁挖到,大家分钱,一年到头白干的可能性就小得多,这种把矿工组织起来挖矿的形式就是矿池。 25%漏洞说的是,如果一个矿池算力达到全网算力的约25%以上, 那么这个矿池就有能力以某种手段决定比特币挖矿力量和收益的分配比特币定价等,这样比特币系统将不再是一个去中心化的系统。51%攻击绝对是致命的,但发生几率比较小,25%漏洞危害要小一些,但发生几率比较高。 事实上,比特大陆旗下的蚂蚁矿池(Antpool)的算力已经达到全网算力的20%以上了。 最后,比特币未来会发展前景怎么样? 能成功的取代现有的由各国央行发行的,基于国家信用的货币么? 还是作为一种交易和支付媒介与法币共存? 或者走向自我崩溃,或被取缔, 灭亡的道路我想,我可以带给小伙伴们一个好消息和一个坏消息,好消息是比特币是一个打不死的小强,坏消息是它经常会被打,有时还会被打的很惨。 |