1
用简单地表述来说,比特币就是一种数字货币。你可以以美元、欧元或日元换取比特币,或者通过“挖掘”来获得比特币。你获取及随后拥有比特币的行为以一个或多个条目的形式存在于一个公共账目(即区块链)中,在这里面你的身份通过匿名的“安全密码”来认证。每次你使用比特币新交易被记录的同时,账目也会增加一个条目。
很多人对比特币的关注都集中在它成功地创造了一个没有政府背景的货币,或是比特币相对传统货币的价值随时间波动很大,或许还包括比特币的商业运用被许多政府认为是非法的。
2
去中心化点对点市场的许多重要构件都部分类似比特币的思想。假设你想要你的朋友发送数字货币,你最好这样表述:“我从一笔交易中能够获得至少一个单位的货币,然后我将给他一个单位”,这就确认了三件事:你有钱、你将进行这项交易、你的朋友将获得钱。在真实世界中,就相当于你将钞票给了你的朋友。
建立一个数字化的等效体系首先需要使用“数字签名”。建设有两个独特的数字(成为“密码”,类似于解锁的钥匙)与你有关。一个只有你知道,或者存储在你自己的设备上,被称为密钥。另外一个可供任何人查找,被称为公钥。如果有人用你的公钥“锁上”消息(或使用加密算法进行编码),那么这种加密消息只能用你的密钥才能“解锁”。反过来也一样—如果消费是用你的密钥加密,那么它只能用你的公钥进行解密。这就有了一个简便的方法,创建一个“签名”:因为你是密钥的唯一拥有者,一个加密消息只能来自你。又因为你的公钥是公开的,所以任何人都可以确认这是你的签名。
3
在真实世界中,可以通过将银行票据制造的难以被伪造。另一方面,在淘宝等系统中,一个受信托的第三方(比如支付宝系统)——每次有人向其他人付费时,就追踪每个人有多少钱及不断更新每个人自己的数字“账目”。相反,比特币使用公共账目,即区块链。每个比特币的用户都有这个区块链的副本,它包含了每一个比特币自诞生以来的交易情况。当你说“我从上一笔交易中获得至少一个单位的货币,然后我将给他一个单位”时,你的朋友可以通过你的数字签名来验证消息真伪,他也可以检查他的区块链副本去确认你是否真的有比特币可以支付。
但是这种方法会导致一个问题。假如你只有一个单位的货币。现在,假设你给你的朋友和他的朋友同时发送带有签名的消息,告诉他们你要给他们每人一个的单位货币。如果他们两个都检查过了当前的区块链副本,他们会找到之前的交易,它似乎会显示你是有钱的,同时他们都会更新他们的账目,从而导致出现问题。
一个可能的解决方案是委托“大众”来维护账目的完整性。上例中你的朋友收到你的消息后检查他们的区块链副本,以确认你是否有钱,然后向整个网络的用户广播这次交易。那么这笔交易将进入“未决事务”的列表,只有当网络足够多的人将此次交易与自己的区块链副本进行比对并表明它没有问题时,这笔交易才能被“确认”。在等待确认期间,可能会有人发现你试图用该单位货币支付两次。
这有点像真实世界中的支票。如果你给人一张个人支票,虽然他们现在拥有这张支票,但实际上他们当时收不到钱,直到银行“确认”这张支票。在上面的例子中,用户网络(拥有个人的区块链副本)共同提供银行的服务。
4
但是,是什么阻止了你创建数百万的网络账户并通过控制大多数的账户来“接管”网络呢?如果你能在大多数区块链副本中植入假的交易信息表明你有钱,这会不会使你有能力创建“假冒”的货币呢?
比特币用一个巧妙的方法解决了这个问题:继续依赖基于大众的交易确认方法,但人为的增加了验证过程的复杂度。如何实现?为什么有效?当一个用户,检查待交易的列表并确认其有效性,用户还必须解决一个非常具有挑战性的计算问题。解决挑战有点像将一个很复杂的多项式因式分解——通常解出因数是非常困难的,但一旦分解成功,证明它们相乘就是原来的数却很容易。也就是说,比特币的挑战是非常困难的,但是一旦解决,检查答案是否正确却相对简单。
联系客服