密码学是保证数据安全性的科学
虽然我们的确永远无法确保一个系统没有任何漏洞——毕竟系统都是由不完美的人类所完成的,但是“任何系统都可以被攻破”这一观点却是错误的。自90年代初以来,我们利用密码技术已经可以实现完全免受黑客攻击。但这一技术在应用时有时会留下被黑客利用的空间。
密码学本身并不会被黑客攻破以生成伪造的数字签名(马上会给出定义),就像数学不能被黑客攻击而使得2+2=5一样——虽然密码学和数学都可能被错误地使用。如果一个使用密码学的系统被攻破,那只可能是因为设计者错误地应用了密码学。
这不是因为密码学不起作用,也不是因为有人“破解”了密码学——就像你的银行错误地处理了你的账户时不是数学的错误、你的妈妈下载不熟悉的附件而感染计算机病毒时不是电子邮件的错误一样。这是一个很重要的特点,因为比特币是一个非常直接的密码学应用。
密码学并不是一种未经考验的新技术。比特币所使用的所有密码学技术自互联网诞生以来一直都在使用着,是每天使用的许多常见互联网协议的重要部分。计算机科学家认为密码学是可靠和必要的,就像NASA(美国国家航空航天局)认为宇航科学是可靠和必要的一样。
公私钥对:密码学的基石
公私钥对是区块链所使用密码学的基石。公私钥对包含两部分:私钥和公钥。这两个密钥实际上只不过是具有特定数学关系的大整数,用于代替密码和用户名。
你会拥有一个公钥,就像你的名字或用户名一样:在大多数情况下,你可以向任意请求者分享你的公钥,而拥有它的人可以用它来引用或联系你。它与你的名声(或者比特币中你的交易历史)绑定,所以你可能会有多个公钥(因此有多个公私钥对)用于不同的目的。公钥可用于引用或查看帐户,但它自身并不能对该帐户作任何操作。