1. 引言
比特币这一概念最早由化名为中本聪的一位人士在2008年提出。随后,他将密码学原理、对等网络技术和开源软件相结合,开发出免费的、独立的、能够自我完善的比特币应用体系。从技术标准的角度来说,比特币其实就是一种由开源的P2P (点对点)软件产生的电子货币。具体来说,就是利用某种算法通过计算机产生的一组代码,当用户按照算法成功解题时就有可能得到一定数量的比特币,网上通常将这一产生过程成为“挖矿”。有趣的是比特币并不会无限量地增加下去,它的数量从一开始就被创始人设定了最高上限为2100万,每十分钟会产生一个新的节点即区块,成功挖掘出这一区块的“矿工”则可以获取50个比特币作为奖励,这个奖励在此后每四年就会减半,直至全网的比特币总数达到设定的上限为止。
由于比特币发币机制的独特性和先进性,使得比特币逐渐从众多虚拟货币中脱颖而出,进入了大众的视野。比特币被世人认定为真正意义上的“第一个电子货币”和“历史上最危险的货币”,随着其影响和涉及的空间范围愈来愈大,也成为众多学者眼中极具研究意义的研究对象。
其中,争议最为热烈的论题之一就是“比特币到底是不是货币”。李翀认为,比特币只是一种虚拟的投资资产,并不具有价值,所以它不是一种货币商品和信用货币,无法成为国内货币更无法成为国际货币 [1]。王素珍认为比特币是否具有货币的两个基本职能是决定其是否为货币的关键所在,由于比特币暂时还无法具备价值尺度的职能,且在现实中只在有限的范围内起着流通手段的作用,所以比特币无法成为真正的货币 [2]。
另一大热议就是比特币的影响,学者们热衷于研究比特币对不同领域的影响和冲击。姜立文从传统货币角度出发,认为比特币暂时无法撼动主权货币的地位,但它以信奉科技而不是政府信用、信奉自由主义而不是政府权力的特性让现行货币制度的漏洞无处遁形 [3]。而雨果则站在国家的立场上,认为本质上比特币永远是一个政治项目而非经济项目,是关于如何拥有政府的权利和拥有政府无法破解的秘密,不能放任其自由主义的极端发展 [4]。也有人会考虑到比特币交易会带来的税收问题,黄智文认为由于比特币交易的高匿名等特性导致比特币市场的税收面临着极大的挑战 [5]。此外,比特币所依托的区块链技术对传统会计行业的影响也备受关注。樊斌通过分析区块链的运行机制,认为尽管目前区块链在会计上的运用仍然有一定的局限,但由于其在提升会计信息系统的后台工作效率、降低开发维护成本等方面的优势,使得其未来在会计上的应用前景将不可限量 [6]。许金叶等人也认为,区块链技术的许多特点应用在会计系统上,必将能够提高我国的会计监督水平,改善目前国内会计监督弱化的现象 [7]。
综上所述,前人对于比特币的研究重点都放在比特币在其他方面的衍生问题上,却很少会将比特币的技术原理与其衍生问题相结合,即便有结合,但对于比特币的技术和算法的描述也仅是冰山一角。就好比如,随着比特币的区块链技术在会计系统中应用的日渐深入,在讨论区块链对其影响时,还是少有文章能够将区块链技术阐述清楚。比特币作为一种对技术支持有很高要求的电子货币,如果抛开技术原理来谈其它问题,是不够深刻的;如果仅仅探讨其技术,这样得到的结论大多数都是缺少实际指导意义的。因此,本文在具体阐述比特币“挖矿”的算法的基础上,归纳比特币天然存在的四大特性,然后再类比到实际中的会计信息系统,阐述比特币四大特性在解决会计信息系统现状、优化会计信息系统上的启示。
2. 比特币的发币机制
2.1. 重要概念
要想弄明白比特币发币所使用的算法和运行的原理,就需要先弄清楚以下几个重要的概念。
2.1.1. 散列(Hash)
计算机科学中通常会将hash称为“散列1”,比特币每一个区块界面上都会存在的一个要素,也称为“哈希值”。比特币系统使用SHA256算法,可以将任意长度的信息通过这个函数转换为一组长度为256个的二进制数字,以便识别和存储。哈希函数的抗碰撞性使得不同的两个输入通过SHA256算法得到同样的输出的概率是微乎其微的。因此,输入信息的微小变动都会带来输出结果的巨大变化,即保证了输入数字与输出数字的一一对应。此外,由于散列的随机性,想要得到一个特定的结果就只能进行正向的逐个随机尝试,想要通过输出结果进行反推是不可能的。
2.1.2. 工作量证明
比特币运行的哲学基础,就是倾注更多的更复杂劳动的事物具有更高的劳动价值。由上文所提到的SHA256的特性决定,要想生成一个新区块,就必须通过使用随机数逐个尝试的办法,将随机数与信息输入函数,直至输出结果满足要求为止。所以,矿工们的挖矿机器计算哈希函数的速度够快,成功挖到下一个区块的可能性就越大。这就是“工作量证明”,这一过程看似是毫无意义,但是却是解决互联网中信任问题的有效办法。
2.1.3. 公开密钥密码体系
在比特币系统上传递信息,就是发送方通过一把密钥将信息加密发送给对方,接收方接收到信息后,再通过匹配到的另一把密钥将信息解密,一次来保证信息传递的安全性和私密性。更准确来说,就是将称之为钥匙的一串数字与原始信息放在一起通过SHA256算法将其加密转化成另一种格式。通常,一组密钥由私钥和公钥组成,私钥自己保存,公钥则向他人公开。若公钥丢失,可以通过私钥恢复;但私钥丢失,想通过公钥反推私钥,在理论上来说的几乎不可能的。
2.1.4. 交易
交易是指一个用户用比特币向另一个用户支付的过程,其过程并不如常见的交易那般简单。以图1中的交易1为例,用户B想向C支付100个比特币,那么B在交易单上除了要注明金额,还需要注明这100个比特币的来源。姚勇为了将交易过程简单化曾提了一种不太精确但确实是更容易理解的解释,见图1,仍以交易1为例,交易单1中应包含以下六种信息:一是交易单1的地址;二是此项交易资金的来源;三是A对资金的签名,以证明确实是他将100比特币支付给B的;四是资金的去向,即C的公钥;五是该项交易资金的数额;六是B的签名,即B用自己的私钥进行的数字签名。这种形式使得每一笔交易都明确记载了该笔资金前一个拥有者、当前拥有者和下一个拥有者的信息,交易和资金都是可追溯 [8]。

Figure 1. Process of the Bitcoin transaction
图1. 比特币的交易过程
2.1.5. 区块
交易与区块的关系,就如同是内容与容器的关系。因为每一笔交易都是分散的,比特币就创造了区块这一概念,以便更好地进行统计。由于比特币的所有交易都保存在主区块链中,而每十分钟会新增一个节点,形成一个新的区块,该区块记录了这十分钟内全网的所有交易。此外,为了让这些平等的节点能够畅通无阻的连接起来,每一个新形成的区块都会包括这一区块的ID (即散列或称为地址)和前一区块的ID,这样就可以通过前一个节点一直倒推至起始节点,形成一条完整的且唯一的主区块链。这条主链条在每增加一个节点后,都会向全网广播,从而使得每台参与比特币的电脑上都有一份拷贝。只要有一台电脑还可以登进比特币网站,那么存储在这一链条上的所有信息都可以被读取,不会消失。
2.2. 挖矿的算法
前文提到的工作量证明概念,能够有效的解决用户们对一个陌生人产生的新区块的信任问题。简单来说就是,寻找一个随机数,将这个随机数和新区块的交易信息一起输入SHA256函数产生的数字能够满足要求,例如这个数字要达到前n位(比如n = 100)都为0的要求。如果想要达到这一结果那么需要耗费很大的工作量,尤其是随着区块深度的不断增加,需要的工作量就越来越大。那如果有人进行了计算并且成功地达到了这一要求,那就有很大可能性认为其提供的区块是真实的。因为人几乎都是理性的,而花费巨大的力气去作假的收益远小于其放弃作真的机会成本,所以比特币中作假的概率是微乎其微的。
所以,挖矿就是指产生新区块并通过算法计算随机数的过程。解释算法,首先就需要认识到这一过程会涉及到区块中的六个变量:一是版本号;二是前一区块的哈希值(即地址ID),是用来识别一个特定区块独一无二的标识;三是默克尔根,是Merkle树的根节点,树中所有散列对的后代;四是时间戳,即区块产生的时间;五是区块的大小位值(bites),比特币的子单位;六是随机数(nonce),是可通过调整以满足工作量证明的随机值。
挖矿的具体过程可分为六个步骤,见图2。在第六步,若该二进制数符合要求则本轮游戏结束,该新区块和这个随机数会被全网公布,其他人在收到这个区块和随机数时,会进行校验。若结果无误,则全网接受这个新的区块;若产生的结果不符合要求,则重复进行第二至第五个步骤,直至成功或收到别人发来的新区块为止。
同样,当其他计算机接收到区块和随机数时,可使用python等程序进行校验。以python为例,将上文提到的六个变量都转化为16进制,然后分别进行换位排列(如将123456,换位排列为654321),或者倒装两两一组进行倒排(如将12345678,转换成78563412);然后,按照版本号、前一区块的哈希值、默克尔根、时间戳、位和随机数的顺序将六个变量组合起来,对该串数字进行16进制算法,先解码,在加码;然后将得到的数字串通过SHA256函数输出得到的hash值与检验的区块的hash值相同,则证明结果无误符合要求,因此该区块是可接受的。
3. 比特币的典型特征
通过解释比特币发币所运用的算法,大致可以总结出以下比特币的四个典型特征。
3.1. 发行和管理方式的去中心化
由于比特币是使用一套密码学算法和运行一个自由的开放源代码的软件,以及逐个尝试随机数的方法,使得参与比特币主区块链建设的所有用户都不得不付出相当的努力去证明其信用。且比特币的产生过程是开放的,每一个人都可以参与和监督,因此要想骗过全网的用户,那就必须有能够跑过51%计算机的计算能力的计算机作为支撑,这在技术上是不可能的。杨晓晨认为,比特币凭借着密码学手段解决了货币在去中心化发行时面临的问题,使得比特币的发行不需要依靠任何政府和机构的信用和公信力,也不用担心其交易和信息的真实性问题 [9]。比特币的发行、流通和管理权并不属于某一个人、组织和国家地区,而是平等的属于参与其中的每一个人,因此比特币具有去中心化的特性。
3.2. 比特币的匿名性和安全性
一方面,比特币账户的账号的生成过程中无需任何实名认证信息,且其账号只是一串数据地址,账号拥有者只能通过私钥证明其对该账号的所有权,且任何个人、组织和政府机构都无法通过数据地址追踪到拥有账户的个人,同时同一拥有者拥有的不同账号之间无任何关联。另一方面,正是由于比特币SHA256函数中的随机性和隐秘信息的功能,以及使用公私钥这一组非对称性密钥对信息进行加密的方式,使得比特币交易的双方都能够在没有中间机构记录交易信息的前提下,无需提供个人身份证件、电话号码、银行卡号等个人信息就可以完成交易,且该项交易和交易涉及的金额全程可追溯。
3.3. 交易的可追溯性
比特币是依靠特定的算法来完成大量的计算,用遍布整个网络节点的分布式数据库来管理比特币的发行和存储在区块链上的信息。而依托于这种技术,任何一块比特币从被挖矿生成时至当前所经历的全部状态,都会被记录在主区块链上,任何人都可以在主区块链条上追溯每一块比特币,去验证其所经历过的前手和后手。任何特定账户的交易也都可以全程追溯,且追溯过程不需要任何认证,每一个人都可以对任意账号和交易查询以辨真假。这一特性有利于实现全网监督和维护市场的公平和透明。同时可以减少查证的成本和时间,提高交易的效率,毕竟比特币每十分钟就会产生一个新的区块。
3.4. 交易的不可逆性
也正是由于比特币的点对点的区块链接,只有一条成功的主区块链,记录在这一链条上每一区块中的交易信息是不可更改的,一旦某一个区块上的交易信息发生变更,那么前文所述的挖矿的步骤二中形成的信息就会生变动,那么这一区块形成的随机数和哈希值也就会产生变动,然后会导致从这一区块开始后面连接的所有区块节点都会发生改变,其所携带的交易信息等都会荡然无存,相当于这一链条发生断裂。一旦发生这种后果,那么对后续进行交易的用户是巨大的打击,而比特币辛辛苦苦建立起来的信用就会瞬间崩塌,对这一虚拟货币的来说也就迎来了末日。因此,比特币的每一笔交易只有成功和失败这两种状态,且操作是不可撤销的。这种设计可以有效的防止退款时因需重新建立信任关系而额外征收个人信息,同时也可防止因付款方撤销付款而侵害收款方的利益,可以有效的防范信用风险。
4. 比特币系统对会计信息系统的启示
随着技术的不断发展,传统的手工会计也逐渐从会计电算化过渡到会计信息化,并向云会计时代迈进。尽管目前我国的会计信息化已经普及了,市面上常用的会计信息系统和技术也近乎成熟、完善,但是会计信息系统的发展现状仍然存在一些不容忽视的问题,会计信息系统的使用可能使得会计上一些由来已久的问题更为突出。张继德认为会计信息系统赖以生存的计算机硬件设施如硬盘,一旦发生物理损坏,造成某些数据永久丢失,有时是无法通过查阅账簿进行弥补的 [10]。目前绝大部分企业基本上都是使用会计信息系统进行会计确认、计量、记录和报告,依赖于系统存储数据,一般到期末才会输出纸质文档,一旦系统或者电脑硬件发生故障,那么后果不堪设想。此外,由于系统软件可能遭受恶意攻击,很可能被窃取重要数据和信息,这风险比传统的手工会计时代要高得多。邓训雷认为,目前的会计信息系统的整体水平不高、发展不平衡,系统的安全性和可靠性不足,且系统仍然存在着信息失真的风险 [11]。例如,财务人员仍然可以根据自己的需要随意修改电子凭证和电子账套,且与手工会计相比这种修改更难察觉。
因此,改变会计信息系统的发展现状,也是当前的一大迫切需求。郝苏苏指出,会计信息化可利用区块链技术特征,在会计信息化的数据获取、存储、传递、加工等方面进行有效地融合,以解决现有会计信息化在这些方面存在的困境 [12]。因此,该部分会根据前文所述的比特币四大特点来类比分析优化会计信息系统的方向和建议。
4.1. 提高会计信息系统的适用性
当前所有正在使用的会计信息系统中,绝大多数的系统都是被安装在公司电脑上,只有通过特定的端口才可以登入和运行系统,拷贝数据和文件也需要有权限的人员才能够操作。这能够有效降低被窃取、篡改数据的风险,但是同时也降低了工作效率,负担一定的系统维护成本。而对于比特币而言,其去中心化、P2P的特性,就决定了登入比特币系统、查询交易信息和交易等操作对软件、硬件或网络的要求不高,无论何时何地、何种系统、什么类型的电脑,只要这台电脑可以登入互联网即可。因此,将区块链技术应用到会计信息系统上,使得系统的登入和操作将不再受到端口的限制,只需要使用钥匙即可在任意场合登进系统。进行外部审计时,外审人员亦可以通过申请临时钥匙登入会计信息系统,无需进行现场查阅账簿,大大提高了审计效率。
点对网式的分布式账簿的应用,能够使系统及时记录所有通过系统进行的交易和进入系统的数据,且进入系统的人员可以通过手中的密钥或者公钥随时查阅。通过区块链技术,交易信息都会记录在区块上,且完成的交易都会向全系统公布。因此,交易双方可以通过互联网随时进行交易,且相关人员可以随时使用手中的钥匙查看相关节点上记录的交易内容,甚至是向前翻阅交易使用的资金、标的物的来源,交易的进度和结果都会实时记录在系统上。同时将会计信息系统自动对接相关信息系统,如企业的信息子系统ERP系统,存储企业的采购、出库入库等信息,可与企业存货、原材料等账簿相互印证;对接税务部门的纳税申报系统,期末自动申报,实现了自动化税务合规报告,企业的所有交易、经营所得、投资所得等信息都可以通过系统查询,接受实时监控。这样可减少信息不对称带来的成本,提升政府的监督力度,增加系统和数据处理的透明度,代鹏认为这种系统的相互对接有利于建立动态优化的会计信息系统 [13]。
4.2. 通过加密技术提高系统的安全性
大部分企业的会计信息系统都是使用普通的账户名和密码的登入方式,登入系统后用户即可在权限内查看任何内容、执行任何操作,一旦登入的密码被盗取,那么对企业来说将是是一个巨大的隐患。因此,借鉴比特币中的加密和非对称密钥的方法,对存储在会计信息系统上的所有节点的数据都进行密码学加密。信息传递使用手上的密钥将数据或内容和自己的数据签名进行加密,相关人员用自己手上的公钥对信息进行解码后方能获取数据;交易双方使用手上的私钥将信息和自己的数字签名加密发送给对方,然后用公钥解密,获取对方传来的信息。这种传递和记录方式可以有效的防止信息传递过程中被中途截取、监听监视的风险,降低不法分子篡改信息的可能性降至微乎其微,有效减少账户和密码被窃取所带来的损害。
因为比特币的所有交易信息都会被记录在区块上而非某个电脑系统或硬盘,不会随着某一电脑硬件或软件的损坏而丢失,所以应用区块链数据存储技术,可以有效防治传统会计信息系统在硬件、软件方面的安全问题。区块链技术使得系统程序凭借执行代码按照既定规则自行运行,杜绝了人为干扰因素和恶意篡改 [14],使得系统不受任何个人和组织机构的控制,这种特性能够有效防范系统程序员在编写程序时故意设计的“后门”等,进一步增强系统的安全性,同时实现了去中心化,确切来说是分中心后的信用保障机制。
4.3. 保证系统信息的可追溯性
比特币系统点对点的特殊链式结构,使得其每一个区块上的交易都可以全程追溯,而每一个区块成功生成的必要条件就是验证了区块上记录的所有交易的真实性,这为会计在验证会计信息的真实性和完整性上提供了又一参考方向。钟玮认为,区块链实现了在时间轴上对历史的连续追溯和向未来的无限延伸 [15]。应用了比特币的区块链技术的会计信息系统,点对网式的传递信息,在系统上发生的每一项交易都记录到每一个节点上,在验证了记录信息无误的前提下将之对接到上一个对的节点,这就形成了大量的、链式排列的分布式账簿,每个链条上的所有节点都是按照时间序列所排列,提高了数据整理效率。这样的时间序列的节点存储信息,比人工登记日记账要方便得多,且节点上的交易账项都为实时完成的,这几乎杜绝了未达账项的存在,并提高财务效率。
每个节点都独立保留着与交易、事项相关的所有数据信息,这种数据存储方式,为系统带来了强大的纠错机制,每一笔交易都必须经过每个节点的审查,要求记录的每一项内容都必须真实完整,并得到全网的一致公认,保证了会计信息的一致性和真实性。区块链可以让每项交易发生时的所有相关信息都相对透明,例如为成交时的历史成本、公允价值、可变现净值和现值等各种计量属性提供了全面、准确、客观的基础信息,可最大限度地降低个体因素和主观判断对数据的影响,使得价值计量更为公允,也为财务数据和流程标准化的实现提供了技术支持。
4.4. 系统的不可逆操作保证信息的真实性
比特币系统上操作的不可撤销,这就保证了系统上发生的每一笔真实交易都会记录在案,且不能被篡改或删除。司淑娴认为在区块链技术运用下,时间的不可逆性使得试图入侵并篡改区块链内数据的行为很容易被发现,并被其他节点排斥,防篡改的特性使得信息最大程度得到保障,降低会计舞弊和差错的风险 [16]。类比到会计信息系统中来看,目前的绝大部分信息系统都存在一些可撤销的操作,且系统是不留痕迹的,如删除记账凭证、取消过账等行为,这不仅会增加系统的容错性纵容操作人员的不当操作行为,更可能会为一些财务舞弊行为大开方便之门。应用区块链技术的会计信息系统,如果还可以进行不留痕迹的修改,那么维护系统正常的信用保障机制将不复存在,失去了信用保障的系统根本就毫无使用价值。因为,一旦信息被修改,除非该链条上被修改的节点后的所有节点,以及与该节点相关的所有节点都重新修改从而与初始被修改的节点重新形成相互印证,这种可能性微乎其微,否则该节点将会被整个链条、账簿甚至是整个系统所排斥,造成数据丢失或系统瘫痪。若发现操作有误,仅能通过红字冲回,或进行反方向交易等方式弥补,但原始交易仍会永久记录在系统中。因此,区块链特殊的技术和强大的纠错机制和防篡改能力,可以为系统正常运行提供强大的信用保障,以维护系统中数据的真实性。
5. 总结
每一种技术的出现,似乎都会为会计行业带来巨大的变革。比特币的出现使得区块链技术备受关注,已经有很多机构开始在研发甚至是投入使用“区块链+会计”的先进系统,以优化财务环境,提升财务数据的质量,提高财务、审计等的工作效率,以改善、解决当前会计信息系统、乃至是会计行业的现状和问题。在不久的将来,区块链将会重塑传统会计信息系统,一方面,会计信息系统在确认、计量、记录和报告上必将自成一套新的体系,能够实时记录和公布信息、数据存储和传递更加安全、信息质量得到保障、报告标准化和主动化;另一方面,新型会计信息系统促使会计人员的职能发生转变,工作重心逐渐向公司决策和战略管理方向上发展。因此,不断学习新技术,保持与时俱进的步伐,是每一个个体、机构、企业甚至是行业都必须有的觉悟和能力。
致谢
在此,我要由衷地感谢在论文写作过程中帮助过我的每一位人。我要感谢厦门国家会计学院信息管理处处长阎虎勤老师。在悉心聆听了阎老师在《Python财务数据分析》课堂上的内容后,我对Python和比特币的区块链技术有了深刻的认识,这为我完成本篇论文提供了不可或缺的支持。在论文撰写的过程中,阎老师也在选题、文章框架和内容上给我提供了很多宝贵的意见和建议,同时也会细心解答我在算法上碰到的诸多难题。最后,我还要感谢在写作过程中一直鼓励和支持我的家人和朋友们,正是他们的陪伴和关心,给予了我奋发向上的动力和克服困难的支撑。
基金项目
本论文得到了厦门国家会计学院2019年“云顶课题:Python财务数据分析”项目的支持。
NOTES
1Hash函数,即散列函数可以将任意长度的信息转化为相同长度但内容不同的二进制数列,被转化的信息可以是文本也可以是数字等其他信息。