所有货币都需要通过某种方式控制供给,并需要实施各种安全属性以防止欺骗行为发生。就法定货币而言,中央银行这样的机构控制货币供给,并在实体货币上加上防伪标识,这些安全属性提升了攻击货币的门槛和难度,但并非不可能伪造。最终,执法部门仍需要介入,以防止货币系统规则受到破坏。
加密数字货币也必须采取安全措施,以防御破坏系统状态的行为,同时加密数字货币还需要防止“混淆”,即对不同的人说出相互矛盾的话。例如,如果爱丽丝(Alice)让鲍勃(Bob)确信她向他支付了一个数字币,她就不能再说服卡罗尔(Carol),也给她支付同一个数字币。加密数字货币与法定货币的不同在于,其安全规则需要完全通过技术手段实现,而非依赖于中央机构。
顾名思义,加密货币着力采用密码技术。密码学提供一个将加密货币体系规则编码到系统本身的机制,我们不但可以利用密码学防止对系统的干扰,并且能够避免混淆,也能用其将新货币单位创造规则编码到数学协议中。为了能够深刻理解加密数字货币系统,我们需要首先探究该系统所依赖的密码学基础。
密码学是一个高深的学术领域,用到了很多不被大众所知的数学理论,并且其理论也比较复杂。幸运的是,比特币只运用到了密码学中少量相对较为浅显的一些理论。在本章中,我们会特别讨论一下密码学中的哈希算法(Hash)和数字签名(digital signature)技术,这两个基本概念对构建一个加密数字货币系统非常关键。在后面的章节中,我们会介绍一些更复杂的密码学理论,例如零知识验证(zero-knowledge proof), 这个概念被应用到了对比特币网络的拓展和改进之中。
在学习了必要的密码学基础之后,我们将讨论如何用这些密码学基础构建一个加密数字货币系统。在本章末尾,我们会列举一些简单的加密货币案例,来阐明我们在设计中遇到的挑战。