出品 | 智识神工官方博客
贪污腐败、走私和非法贸易、偷税漏税、网络诈骗、生产销售假冒伪劣产品等行为是人类社会与经济系统的顽疾,这些问题造成了许多负面影响。每一起社会资源的暗箱交易都损害着公众的信任,不可追溯的不法金钱流动让受害者苦不堪言,人们期待着一个更加公平、透明、安全、高效的社会与经济系统。
在这个期盼之下,人们强化法律和执法、尽力提高透明度和公开度、完善举报制度、加强宣传教育。纵使如此,不法资金流动仍无法杜绝,社会根据被发现的问题不断地总结经验教训,不断改进和完善措施,没被发现的问题则只能期待后人的智慧。
由人组成的系统难免有疏漏,因此区块链想把分配的方法交给代码与机器,把交易记录和验证方法公开给所有参与者。在这种理念下,第一条区块链比特币发布了,作为一种“去中心化的分布式账本”被人们熟知。
公链——去中心化
比特币是一种用于记录交易的账本,去中心化是它显著的特征,即没有第三方公信机构来记录交易,每个参与者都可以获取这个账本,都有机会成为一笔新账的发布者。比特币属于区块链中的公链,即任何个体都可以随意地加入或退出。实现这样一个分布式账本有以下几个问题:
- 如何确定发布新账的人
- 如何保证新账是正确的
- 如何保证账本不被篡改
- 如何保证所有人的账本是一样的
弄明白这几个问题,就明白了比特币的原理。这几个问题涉及到共识算法、哈希函数、数字签名等方法,下文将分别介绍。
- 如何确定发布新账的人(也被称为“挖矿”)
谁来当发布新账(创建新区块)的人,显然需要取得群体共识。取得共识可以粗略地分为两种方式:先询问所有人,大多数人同意之后再发布;带着某种凭证直接发布,该凭证能被所有人确认。
比特币选择了第二种方式(公链都属于第二种),使用的是被称为PoW(Proof of Work,工作量证明)的共识算法。而PoW的核心在于哈希函数,这里简要介绍一下哈希函数的特性。
哈希函数是一种映射,能把任意长度的输入转换为固定长度的输出,通常记为。一个良好的哈希函数要求:对于任意的输入
,计算
都相对容易;从
推导出
在计算上不可行;当
时,