邱宜干
摘 要:与传统的电子货币相比,比特币具有去中心化、匿名化、存量有限、代码开放、可追溯、不可逆等特点。在阐释散列、工作量证明、密钥、交易、区块、挖矿等基本概念的基础上,分析比特币的生成机理。比特币每个账户的余额都可以通过对主区块链进行计算得到,因而不需要单独记录。因此,比特币账户安全管理的关键就是用户私钥的管理。
关键词:比特币;生成机理;工作量证明;主区块链
中图分类号:F820 文献标志码:A 文章编号:1673-291X(2018)18-0071-01
比特币(Bitcoin)是一种用户自治的、全球通用的加密电子货币,2008年由中本聪(Satoshi Nakamoto)提出,其建构基础是P2P网络。与传统的电子货币相比,比特币具有去中心化、匿名化、存量有限、代码开放、可追溯性、不可逆性等特点。
一、几个重要的基本概念
1.散列(Hash)。散列函数的功能是将任意长度的不同信息转化为长度相等但内容不同的二进制数列(由0和1组成)。以比特币采用的SHA256为例,任意长度的信息输入通过这个函数都可以转换成一组长度为256个二进制数字,以便统一地存储和识别。256个0或1最多可组合成2的256次方个不同的数,输入信息的任何微小变动都将会导致输出数字的巨大变化,同时也不能由输出数字逆向推出输入信息。这样,就确保了输入信息与输出数字的一一对应。
2.工作量证明(Proof Of Work)。工作量证明就是对挖矿者的工作进行确认,防止其他服务滥用。对于比特币而言,挖矿就是要求挖矿者通过一定量的运算,使用随机数进行工作量证明。比特币系统中使用的工作量证明函数就是SHA256,SHA是安全散列算法(Secure Hash Algorithm)的缩写,是一个密码散列函数家族。
3.密钥。在信息传递过程中,发送方的信息是通过密钥来加密的。密钥分为公钥和私钥,公钥需要向其他人公开,私钥则由自己保存。在传递信息过程中,公钥和私钥配合使用,既可以验证发信息方的身份,又可以确保发信人对自己所发出的信息不能抵赖,发送方将信息传给接收方以后,接收方通过配对的另外一把密钥解密信息,这样保证了信息传递的安全和私密。
4.区块(Block)。为了便于统计全球比特币的交易情况,系统创造了区块这一概念。每个区块包含以下三要素:(1)本区块的ID(散列);(2)若干交易单;(3)前一个区块的ID(散列)。比特币系统大约每10分钟创建一个区块,全球范围内的所有交易都包含在这个区块内。因此,比特币的交易主要靠主区块链来呈现。比特币所有的交易都记录在主区块链上,以每10分钟增长1个节点的速度扩展。而且,主区块链新增1个节点后,系统会在全网广播,每台参与比特币交易的电脑就会记录下来,保存主区块链信息。
5.挖矿。由于比特币使用的是P2P网络,网络上每个节点都是平等的,因而参与比特币交易的每个挖矿者通过完成工作量证明的难题和对交易的有效性进行验证后,解决彼此之间的信任问题,从而确保新区块所记录的交易信息的真实。挖矿,是指产生新区块并计算随机数的过程。具体包括以下步骤:(1)输入最后一个区块的内容,计算散列值;(2)组合之前区块没有包含的交易,并纳入一个新区块;(3)任意猜一个随机数,大小和长度不限;(4)将前三步产生的数据输入SHA256散列函数,得到一个长度为256的二进制数;(5)检查这个二进制数的前n位是否符合要求;(6)如符合要求,则该轮挖矿结束,新区块和随机数在网上广播,并等待其他人的校验和全网的接受。否则,就进行下一轮的挖矿,直到自己成功或收到别人发来的新区块。挖矿的报酬是每个成功建立新区块的人都将获得相应数量的比特币的奖励,第一个四年奖励50个比特币,第二个四年奖励25个比特币,规律是每四年奖励数减半,最终比特币数量将达到上限2 100万个,至此不再增加。
二、比特币的生成机理
1.比特币的信用。比特币的信用是以P2P的网络环境为基础的,参与比特币挖矿和交易的用户通过大量的计算,需要花费时间和电力及人工等成本,花费的成本越高,对比特币的认可程度也越高。比特币的信用体系和其他的信用体系不同,不用个人或者机构的担保,也不需要之(下转73页)(上接71页)前的信用记录,理论和技术是其信用的基础保障。
2.比特币的账户管理。对比特币而言,建立账户就是生成一个地址。地址是由公钥通过一系列数学计算推导出来的,账户、地址、公钥均是公开的。有了地址就可查询比特币账户的余额。与银行账户不同,该地址的余额并没有特意记录在某个地方。这是因为比特币每个账户的余额都可以通过对主区块链进行计算得到,因而不需要单独记录。在传统银行交易里,储户只通过户名是不能查询账户余额的,还需要与户名对应的卡号。但是比特币账户查询余额的话,通过计算主区块链即可。这是因为比特币账号是以匿名形式存在的,每个人可以拥有多个账号,仅通过分析个人账号是不能获得个人信息的,保证了比特币拥有者的个人隐私。比特币的所有公开信息都保存在主区块链中,而主区块链在P2P网络运行比特币软件的计算机上都有完整备份。因此,用户的私钥管理就是比特币账户安全管理的关键。私钥是独立存在的,是由许多数字组成的,没有规律,是用户对账户所有权的唯一证明,从而通过其他方式不能将私钥反推出来,从而保证了用户账户的安全。出于方便考虑,很多用户把私钥保存在文件中或网络钱包中,这就意味着私钥有遗失或失窃的风险。为此,可通过采用“纸钱包”或“脑钱包”的方法进行防范。纸钱包,是指把私钥写在纸上或打印出来的方式进行保存。脑钱包,是指把私钥转化为一句话或一幅图片进行保存。
3.比特币的交易确认。传统银行账户间的交易通常在短时间内即可完成,间隔时间可能只有几秒。但是,比特币的交易需要得到全网的确认,进入主区块连才能生效。在挖矿过程中,只有有效的交易才会进入区块,失败的交易就直接被丢弃掉。在挖矿过程中可能在同一时间段生产多个有效区块,最终哪个有效区块能够成为当前时间段的正式区块而进入主區块链,就会存在分歧。因此,比特币的交易存在一定的缺陷,交易过程有很长的时间间隔,一般需要5—6个月。基本流程是在包含某个交易的区块产生以后,需要等后续的区块生成才能确认当前的区块是否进入了主区块链。