本文介绍比特币的运作概况与设计原理,以及其所产生的效应,并提出相关建议,希望能使大家对比特币有更清楚的认识。
比特币(bitcoin)一开始就是个有心设计的电子货币,因为发明人后来神秘消失了!电子货币(或称为数字货币)是种可以在真实世界使用的虚拟货币,不过比特币最大的特性是去中心化(decentralized); 其目的在于交易双方不需要透过第三者(如金融机构)的帮助,而能直接以「对等」 (peer-to-peer, P2P)方式进行安全的线上付款。「peer-to-peer」常有人翻成「点对点」,因为易与「point-to-point」(点对点传输)混淆,本文采用对等与缩写P2P。P2P 方式使得用户可以随时随地自主交易,任何个人或组织都无法干预,所有纪录都匿名公开,只透过数位签章与串连,不加密就可以保证不容易导致重复花费(double-spending), 也不容易被窜改。
自从化名「中本聪」(Satoshi Nakamoto) 的发明人在2008 年发表了比特币的白皮书,他(或是她、它、他们)就积极地实作比特币系统,并在2009 年1 月3日首次发行了50 元比特币。2011 年4 月,在中本聪发出「要去忙别的事」的通知之后,就消失无踪,而他本人自始就从未现身过。不过,比特币自2010 年5 月首度以一万元交易了约25 美元的披萨后,到2013 年全球已有十多个地方设立了比特币交易所与自动柜员机,其中最先成立的日本交易所Mt.Gox,其比特币兑美元汇率从年初的13.3 到年底涨成806.01,甚至最高在11 月29 日达到1242。香港企业家李嘉诚也在同年底投资了跨国比特币支付公司Bitpay,利用Bitpay,台湾第一个接受比特币付款的购物平台Wmall 则在2014 年1 月1 日开始营运,而台湾央行却在2013年12 月30 日禁止银行与第三方支付公司交易比特币。
由于安全、自主、限量、与即时全球流通,比特币应该比任何货币更适合当国际货币,不过,发明五年多来陆续经历乏人问津、恶意攻击与仿制、洗钱查封,到一元比特币价格接近一盎司黄金的疯狂炒作……等等事件。因为价格变动太大与怕扰乱金融秩序等因素,各国对比特币的定位差异很大。目前表态的三十多国中只有少数国家承认比特币是合法货币或商品资产,也有部分国家正式课税与立法限制、甚至完全禁止,而大部分国家可能因为比特币流通的规模还不算太大,采取不承认也不禁止的态度;台湾央行总裁则认为它是相当于产量有限的贵金属商品,例如黄金。比特币目前全球每日交易额最高将近3 亿美金,但交易数每10 分钟平均只有数百笔。至于未来的发展如何,我们必须先从比特币的基本运作与原理看起。
比特币的运作概况
比特币用户首先要取得一个或多个电子钱包作为交易的工具。电子钱包是可加密的,其中包含多个帐户,每个帐户包含多个私钥。公钥与私钥是密码学中必须配合使用的成对数字,常用其中一个加密,而用另一个才能解密,公钥常公开发布,私钥则由私人保管。比特币位址由公钥得出,其中采用了Base58 编码(58 个字母和数字组成)来去掉容易看错的「0OiI」等字元,一般是以1 开头,透过私钥就能使用,以3 开头的则要透过多个私钥才能使用,相当于要人背书。转帐是针对比特币位址,而帐户只是管理工具。每个位址只会被用来转帐一次,只要私钥丢掉了,相对位址的比特币就会永久遗失,所以发行过的比特币只会越来越少,遗失也不能补发,目前估计约已遗失50 万元比特币。每个钱包会预先产生100 个比特币位址,所以备份后只有接下来的100 次位址使用才安全。
每次交易可能会用到多个比特币位址,而比特币位址约有2160 个,相当于如果每秒用4.6×1032 个可以连续用一亿年,所以不用担心重复或是用完,而且该私钥与位址可以离线自行产生,非常自主。不过为了减少遗失,最好经常备份。为了安全,有将私钥用实体复制出来而将电子形式钱包删除的纸钱包,以及为了防止实体私钥也遗失而用人脑比较容易记忆的语句来再加密过的脑钱包等技术。不过因为所有交易纪录都公开在网路上,只要记得位址就可以查到该位址里有多少比特币。遗失了私钥,比特币还是「看」得到,却用不到!
交易可以透过交易所或私下进行,是指用比特币交换其他货币、实物、或服务,例如看广告收比特币、用比特币买房子、赌博、或环游世界等。如图一,用户可以到交易所交易来换得比特币,也可以参与挖矿或矿池营运获得比特币,有了比特币就可以转帐进行更多的交易。称为挖矿是因为比特币的产生是透过电脑运算「猜」出来的,就像挖矿一样要猜哪里有矿石。为了要控制挖矿速度与安全考量,设计需要大量运算猜到特定的数字才算挖到矿。参与挖矿的用户称为矿工,挖矿所用的电脑称为矿机。矿池集合矿工的运算能力一起挖矿,也接受资金参与。每一笔交易资讯都要广播给所有矿工(与矿池)确认,矿工要根据上次挖到矿的部份资讯与所收到的交易资讯来挖矿,也要帮忙检验这些资讯是否正确。
所谓广播就是以P2P 方式进行,是透过网际网路中继聊天(internet relay chat, IRC), 以一传十、十传百的方式进行。因为网路传递速度不一样,所以各个矿工所收到的交易资讯也可能不一样。因此,每次挖到矿的矿工必须要将上次挖到矿的部份资讯、新矿资讯,与所收到的交易资讯打包成一个区块(block)再广播给其他矿工检验。矿工会拒绝接受太迟(前11 个区块生成时间的中位值)或太新(两小时后)的区块。矿工若有把握可选择继续未完成的挖矿,不然就从已搜集的交易资讯中剔除所收到区块内的交易资讯,然后接着在此区块重新挖矿,这样表示接受并确认了此区块。
挖到矿的矿工可能会获得一些比特币当区块奖励与手续费奖励。当然,电脑的运算能力越强越容易挖到矿,所以目前是以每挖出2016 次矿,系统会调整挖矿的难度使得平均约每10 分钟可以挖到一次,也就是约两星期调整难度一次,比特币白皮书中是调整每小时平均挖到矿的次数,但却没有定义数值。挖矿时每猜一次就是执行一连串的杂凑(hash)函数,每秒一百万次杂凑称为MH/s,十亿次杂凑称为GH/s,一般电脑桌机大约能执行少数个MH/ s。难度1 大约是7 MH/s,2014 年1 月1 日的难度是11 亿8092 万3195, 已挖出了超过27 万8050 次矿,当时杂凑率(hashrate)约为1072万1481 GH/s,也就是整个比特币系统运算能力的总估计值,预估下次挖到矿的难度约增加18%。
每挖到矿会广播一个区块,所有的区块先后会串连起来形成一条有分支的区块链(blockchain),其中,每个区块都可以回溯到第一个区块(格子花纹),也就是可以从第一个区块找到之后的所有资讯。会有分支的原因是矿工不可能同时收到所有的广播区块,只能选择最先收到的一个来串连,再继续挖矿。将来如果选择其他区块的矿工挖得比较快,可以再调整回来,而被超过的区块(深色)还是会被保留。从第一个区块到各分支末端中所有区块难度总和最高的分支称为主分支,通常也是分支长度最长的。区块要再经过100 次挖到矿后才被认为成熟,只有主分支上的成熟区块才能获得奖励。每笔交易被包在区块中广播出来就相当于一次确认,该区块之后每多串连一个区块也多一次确认。一般交易所或电子钱包的交易都会要求6 次确认以上,因为假设在网路畅通下,不诚实的矿工有杂凑率10%的运算能力,这样被骇的风险会在0.1%以下。若是网路不畅通,则成熟与确认所需的次数都要增加!
新加入的矿工会下载一份最新的区块链,从主分支末端开始挖矿。除了少数未成熟的区块外,所有矿工的区块链资讯都应该一致,电子钱包也会下载区块链资讯来检验交易资讯。区块链的大小随着挖矿与交易持续成长,已经超过12 吉位元组,光是开一个新的电子钱包就可能要一天的时间,之后也要定时去更新区块链。有心作弊的矿工除非拥有超过杂凑率一半的运算能力才有机会主导尚未成熟的区块生成,但是还是没办法窜改已广播过的资讯。虽然有机会暂时扰乱交易资讯,但是隔一段时间还是会被查出来,所以相当可靠。
区块奖励从2009 年开始是50 元比特币,检验确认后可以立即发行与交易。每四年减半,所以2013~2016 年是25 元比特币,这样到最后全部能挖到的总额是有限的,不会超过2100 万元比特币。因为比特币最小单位是10-8 元,所以2140 年之后区块奖励就会小于最小单位,也就是挖矿奖励只有剩下手续费。事实上,比特币头四年就挖出了一半,目前已挖出约1200 万元比特币,接近全部的60%,在2022 年中就会挖出超过90%。
由于比特币协定是公开的,软体也是开放源码(open source),所以只要能上网,任何人都可以免费使用或提供包括电子钱包、开户、挖矿、与转帐交易等服务,不过,也有要付费的服务,譬如说可以更快也更安全地确定完成交易。因为比特币交易虽然快,但还是需要时间透过P2P 方式相互检验,只要有不诚实的用户,还是会有不安全的疑虑。开户一般都是免费的服务,只要能提供计算能力的电脑就能参与挖矿,手续费与交易汇率原则上是双方约定即可,但是有系统内建的交易规则防止有人乱用,例如无手续费的交易处理优先权比较低,交易资讯太大,也就是包含很多笔转出转入,转出金额又小会要求最少0.0001元以上与资讯大小成比例的手续费,金额小于0.0000546 元不准交易等。
重要原理
比特币运用了许多密码学与P2P 网路的技术,最主要的是杂凑函数。所有资讯,包含文字与数字等,都可以用一个整数来表示。如图三(a),杂凑函数可以看成是将一个整数m 中的资讯打乱混合出另一个整数n(称为杂凑值)的函数。其特性是不同数字之杂凑值重复的机率相当小,从杂凑值不容易推算出输入数字,而且输入数字稍微有点不同,其杂凑值就会非常不同。
如果杂凑值的范围比输入数字要小很多,杂凑函数可以达到「摘要」的功能,也就是用较少资讯的杂凑值做为摘要来代表原来较多的资讯。如果有一笔一笔前后相关的资讯,我们可以将前一笔资讯或其摘要加上该笔的部分资讯做杂凑而得到摘要,再将整笔资讯或该摘要传给下一笔资讯做摘要,而形成紧密关联的资讯串连。这样一来,确定了每笔资讯产生时间的先后顺序,而且只要中间有任何窜改,除非重做该窜改位置之后的资讯串连,否则很容易会被发现。比特币不采用传统的RSA 加密演算法而采用椭圆曲线数位签章演算法(ECDSA)来制作公钥与私钥,其中签章也用到了杂凑函数;ECDSA 中由私钥很容易算出公钥,但是公钥不容易算回私钥。公私钥的长度越长越难破解,一般相信,相同长度的ECDSA 比RSA 更难破解。
GPU多显卡挖矿的简单教学(上)
这几天当了矿工学徒,这四天弄出了一台四卡机,回想时发现这些细节很琐碎,不分享很浪费,加上面对要新加入矿工行列的朋友,每次重复解释名词和流程很累,趁我记忆犹新
每笔交易包含多笔转入资讯与转出资讯,不同于白皮书中转出只有两个。如图三(b),一般转入资讯包含该转入交易的摘要、该转入位址公钥与该私钥做的签章等,转出资讯包含转出金额(最小单位)与位址等。透过转入资讯可以查到并检验该笔转入金额,就像收到支票验证真伪,不过要花掉时需要背书签章且不准转让,并且要换成新支票(转出资讯)用掉,若需找零时则特别要将零钱转支给自己。钱包软体根据优先权设定选择帐户里的转入金额与相关资讯,并制作转出资讯,然后合成交易资讯广播给大家检验,其中转入总额不能小于转出总额,差额就是手续费。该检验是用脚本(script)写成的,所以有很大的弹性,例如要另设密码才能提取,是钱包或用户可以自行增加的功能。这些交易资讯形成资讯串连的交易网。
区块链也是一种资讯串连,如图三(c),区块i 中将前一区块中的摘要与一个特殊数字nonce 和其他资讯合成本区块的摘要。其他资讯中也包含了所有交易资讯的摘要,交易1 就是自己挖到矿的交易资讯,所以就算是不同区块使用相同nonce,其摘要也不容易重复。交易1 跟第一次花区块奖励的交易资讯与一般的不同,有一些没有使用的栏位,保留了将来扩充的相容空间。所谓挖到矿就是要猜到一个nonce 值让该区块的摘要值小于一个会根据难度而线性调整的目标值,这就是白皮书里所说的工作量证明机制(proof-of-work)。
工作量证明机制提到要猜到一个nonce 值使得摘要值前面有一连串的0,其实越多0 越难猜。由于电脑不会真的猜,所以只好一个一个试所有可能的nonce 值,因此需要相当的运算能力,不过检验其正确性却很简单。但是并不是纯粹算有几个前导零,否则每次难度的调整就只能以2 的次方倍数来进行。实作上采用小于目标值的方式能更精确地调整难度,更能接近每10分钟挖到一次矿的目标,再加上摘要也不容易重复,使得运算能力与挖到矿的机率更接近成等比例的线性关系。第一个比特币是以难度1 挖出来的,五年后难度变成11 亿8092 万3195, 相当于是整个比特币系统运算能力的成长倍数。
大家多投入的运算能力浪费在猜更难的nonce, 并没有多挖出任何比特币,相当不环保!原本个人矿工用一般桌机就能挖到矿,利用显示卡的绘图处理器(graphic processing unit, GPU)可以加速数十到数百倍,做成「场式可程式闸阵列」(field programmable gate array, FPGA) 的硬体更可以加速一级,最后做成特殊应用积体电路(application-specific integrated circuit, ASIC)的矿机甚至可以达到数百GH/s。不过,个人矿工还是难敌难度增加的速度,而矿池可以利用分配nonce 的范围,让辖下矿工的运算能力得以完全整合,所以最大矿池最高已经超过40%杂凑率,而且前两大矿池合起来也常常超过51%。若是前两大矿池联手作弊就能主导区块链的生成,甚至制造不实的交易资讯,造成信心破产,系统就会崩解。
这就是著名的赌徒破产问题:如果赌徒有一些筹码,假设庄家赢率较大,一直赌下去,赌徒一定会输光;就算是庄家赢率较小,赌徒还是有机会输光。因为比特币是以主分支上的区块赢得奖励,所以如果以不诚实矿工落后最新的区块之个数作为筹码,不诚实矿工挖到矿筹码减1,没挖到筹码加1,筹码个数为0 时便是赶上诚实矿工,也就是诚实区块会被不诚实区块所取代,于是形成赌徒破产问题,所以诚实矿工总会有机会输光。虽然输光的机率很低,所以相当安全,但是安全并不是造成比特币炒作的主要原因。
炒作的主要原因
2008 年的全球货币流通量(circulation) 总计已经超过4 兆美元,其中最多的是欧元, 占24.3 %, 其次是美元,占19.97%。2013 年底美元流通量已经超过1.2 兆,假设现有的1200 万元比特币取代美元一半的流通量,每元比特币平均会是五万美元。目标价如此之高,难怪大家知道了这种货币或商品之后会争相买入,要不是因为种种疑虑与使用不方便,史上最高汇率会更高。既然是货币或商品的公开自由交易,就是一个愿打一个愿挨,不算是庞式骗局(俗称老鼠会),更有助于炒作!
虽然比特币是匿名电子货币,从使用行为上还是可以估计所拥有者的分布状况。2013 年12 月的统计是在超过2300 万的比特币位址里,所属用户中估计有120 多万户拥有超过0.001 元比特币、28 多万户超过1 元比特币、930 多户超过1000 元比特币,其中一户(可能是中本聪)超过98 万元比特币,最高价时超过十亿美金!这样分布悬殊的状况,再加上早期挖矿的成本低,炒作对既得利益者更有利,对眼红者也更有吸引力。比特币目前垄断在少数人手中,虽然已经有人另起炉灶、另建比特币区块链,不过因为对双方都有利,后来应该是被「吸收」了!各种山寨币也不少,汇率超过一美元的就有十多种,不过,大家还是习惯炒作比特币。
虽然工作量证明与奖励机制可能真的是为了鼓励用户投入挖矿,同时帮忙检验,让P2P 系统行得通。但是自从资本大量投入,引进更强的矿机与矿池后,就变成典型的资本垄断问题,只要资本能得利,循环投入之后就会贫者愈贫、富者愈富,直到无利可图为止。其实发行电子货币的成本应该是很低的,目前较费「劳力」的交易手续费平均通常占不到奖励的0.5%,比信用卡的抽成还高,大家也没有太大兴趣,因此显然挖矿有利可图,也还不用开始作弊。有能力挖到矿的人自然会想办法炒高比特币汇率,甚至会炒高矿机的价格。于是,一般人就不用挖了,不放弃就只能投入矿池,让矿池继续剥削,也让矿池越长越大,越能兴风作浪。
建议
电子货币要真正全球流通,限量发行与汇率波动太大都会形成障碍。比特币遗失不能补发,会造成通货紧缩,政府无法干预或课税也是不能稳定汇率。让政府或银行组织先根据流通量或人口数掌握发行权来稳定汇率,等到大家习惯了再实作一个线上虚拟组织来稳定汇率可能会更好,也可以消除政府疑虑与比特币垄断的问题。比特币协定也有很多研拟中的改进方案,例如转帐金额可以换成不同单位,像交易「一斤米」,也就是变成虚拟的以物易物。
目前比特币的规模与交易量不大,真的普及之后,还是要广播所有区块链与交易资讯的作法势必是一大负担。当然,很少用到的旧资讯可以让少数用户储存就好(如交易所或政府),不过,更可以采用类似分散式杂凑表(distributed hash table) 的方式来广播,既能维护安全也能降低各种额外负担。
最重要的是改变工作量证明机制中运算能力与挖到矿之机率间的线性关系,才不会让资本主义的弊病丛生。其实,应该回复到利用必要的运算能力就可以维持机制运作,例如让运算能力的对数与挖到矿之机率呈线性关系;这样运算能力强的还是较有利,只是不符资本家的盘算,普罗大众于是才能踊跃参与,不过还要防止资本家利用人头,采取人海战术。有人甚至考虑把比特币持有时间加进工作量证明机制,以防止短期炒作。如此一来,也许不用政府或银行介入就能稳定汇率,一举实现P2P 的精神。
比特币交易虽然可以即时,但是确认还是需要一段时间。目前的机制还是有可能产生暂时的重复花费,所以还要加强交易资讯重复花费的检验与警告。与其用更复杂的机制来防堵作弊,倒不如立法保障赔偿来得简单有效,甚至可以让司法机关有实名调阅的权利,注册后遗失也可以补发。这样一来更能鼓励各种可由商家担保的衍生商品,如发行实体比特硬币或纸币,不然连悠游卡都不能普及到夜市,电子钱包怎么可能普及?
结语
无论「中本聪」是有心还是无意,比特币在历史上已经奠定了重要的地位。其设计虽然不尽完美,但是P2P 方式已经证明资讯公开透明的力量与网路乡民当家自主的可行。虽然现行比特币很可能无法普遍与永续,但已经有许多人或组织发展更好的电子货币来抢食这块金融大饼,比特币本身也可以逐渐进化。有智慧的读者也许将来可以化名「上源慧」,发明更上乘的开源金融改革工具,以对抗不义的剥削与炒作,甚至把P2P 精神应用到其他领域为世界带来更大的福祉。让我们发挥集体的智慧,支持比特币但停止炒作,去忙别的事吧!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
挖矿奖励减产前的提前套利模式
当前加密货币市值排名前20 名的列表中,采用PoW 机制的币种可以分成四大类别: A :比特币体系,包含BTC 与其分岔币BCH 、BSV,总市值达加密货币整体市值的60 %。 B :以太币体系,包含
原创文章,作者:掘金K,如若转载,请注明出处:https://www.20on.com/109420.html