~比特币的诞生~
2008年,中本聪发表论文《比特币:一个点对点的电子现金系统》,比特币首次出现在公众视线中。中本聪创建了一个去中心的电子现金系统,根据中本聪的论文,比特币网络经许多程序员修改后,于2009年启动,中本聪挖出了第一比特币,产生的第一个区块被称为创世区块。而中本聪却在2011年4月退出公众视线,中本聪是谁,来自哪里,又去了何处,从此成了一个谜,自此,比特币网络的开发建设就交给了社区成员们。
比特币的发展轨迹图
~比特币是什么~
提到比特币大家第一反应一定是数字货币,而一谈数字货币,大家脑子里首先闪过的也定是比特币。毕竟比特币是在其交易价格飙升创造的价值神话,使得比特币吸引了普通大众的眼球。
比特币是“基于一个数字货币生态系统而形成的概念与技术的集合,在比特币网络中,比特币也作为参与者之间的价值储存和传递。”
比特币是一个分布式的点对点的网络系统,比特币用户主要是基于网络,利用比特币协议进行交流。比特币是通过“挖矿”的过程产生的,挖矿是矿工们(比特币网络的节点)在处理交易获得记账权而解决一个数学问题的竞赛。谁要是先解出获得正确答案,谁就可以获得记账权,打包交易记录在区块中,而奖励就是新生成的比特币,比特币就是这样增发的,其开采总量是固定的,为2100万枚。这个过程是遵循比特币协议的,比特币协议包括了内置算法,该算法可以调节比特币的挖矿功能,使得无论在什么情况下,通过动态调整计算难度,使得每10分钟成功产生一个区块。
~比特币是如何交易的~
在比特币的交易中,有一个重要的概念叫UTXO(Unspent Transaction Output)——未消费交易输出。通俗的讲是指没有被消费过的属于自己的货币,也就是放在你钱包里还未花出去的现金。UTXO巧妙地解决了数字货币的双重支付问题。
我们看看交易是如何被构建的?(假设有笔交易,A要转账给B一笔钱)。
交易是将钱从交易输入移至输出,交易输入指的是币的来源,通常是之前一笔交易的输出,交易的输出则是通过关联密钥的方式将币赋予新的所有人。
交易的构建分三步走。首先获取正确的交易输入。大多数钱包应用包含一个用密钥锁定的UTXO小型数据库,完整的客户端会有网络中所有的UTXO的副本,当收到某个新的交易时,会验证这笔交易输出是否是正确的输入(该笔交易输入就是上笔交易的输出),而正确的输入就是验证上笔交易的转账地址的交易输出是否是其未消费交易输出。当是正确的交易输入时,就可以创建交易输出,而这笔交易输出是以含有你交易数额的脚本形式存在的,这也是为什么会说比特币是一个可编程合约,这个合约约定:谁要是能拿出与B的地址匹配的私钥,谁就会拿到这笔钱。而B的私钥只有B才知道,所以,只有B才能收到这笔钱。这笔交易创建完成就会广播给全网络,比特币网络的各节点都可以获得这笔未被记账的新交易的消息。网络中各个节点都是潜在的矿工,最后由挖矿成功的矿工记录在总账薄里,矿工再向所有的网络节点广播,各节点可以对此验证,并将最新的区块更新在自己的节点。
这种未消费交易输出的机制设计,很好的解决了双重支付问题,因为每一笔交易都记录在区块链上,所有的未消费交易输出可以都被看到,既可以利用这些未消费交易输出来构建交易,各节点也可以根据这些未消费交易输出来验证所有权。
另外,交易实现的另一个最基本的问题是:你要证明交易的这笔钱是你的,这笔钱能且只能转给你要转账的那个人(或地址)。比特币利用非对称加密算法巧妙地解决了这个问题,密钥就是它的应用果实。密钥是由公钥和私钥组成的一对钥匙,在比特币中公钥是由私钥生成的,地址(也就是账户)是由公钥哈希函数计算得到(在此我们可以直接理解公钥就等同于地址)。这个过程都是单向不可逆的,即私钥并不能通过公钥推出。如下图所示。地址是公开的,可以被所有人看到。而私钥只有你自己知道。
当用公钥加密时,只有与其成对的私钥才能解密,当用私钥加密,只有成对的公钥才能解密。因此在交易时,A用私钥给这笔交易进行加密,也是证明了这笔钱属于A(这就是比特币中的确权问题的解决),然后用交易对手B的公钥再进行二次加密,相当于A给这笔交易上了两层锁。将这笔交易发送出去,只有B能收到这笔钱,因为只有B的私钥才能解开B的公钥(打开了第一层锁),再用A的公钥解密打开第二层锁,而这一步也使得B知道了这笔钱是A转给他的。
密钥被保存在钱包里,钱包其实是对接比特币网络的一个应用。它可以抓取区链上的所有交易数据,并可以将属于你的交易呈现给你,你就能看到你钱包里还有多少钱,你的历史交易记录。
领取专属 10元无门槛券
私享最新 技术干货