首先我们来看看比特币能给我们带来什么,和是怎么做的
完全去处中心化,没有发行机构,也就不可能操纵发行数量。其发行与流通,是通过开源的p2p算法实现。
匿名、免税、免监管。
健壮性。比特币完全依赖p2p网络,无发行中心,所以外部无法关闭它。比特币价格可能波动、崩盘,多国政府可能宣布它非法,但比特币和比特币庞大的p2p网络不会消失。
无国界、跨境。跨国汇款,会经过层层外汇管制机构,而且交易记录会被多方记录在案。但如果用比特币交易,直接输入数字地址,点一下鼠标,等待p2p网络确认交易后,大量资金就过去了。不经过任何管控机构,也不会留下任何跨境交易记录。
1一种点对点的电子现金系统
a去中心化降并且低信任成本
要大多数的CPU计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(nodes)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生的交易的证明。
b通过pow解决双花问题
该网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。我们需要整个系统内的所有参与者,都有唯一公认的历史交易序列。收款人需要确保在交易期间绝大多数的节点都认同该交易是首次出现。
c.激励机制
每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者拥有的新的电子货币。另外一个激励的来源则是交易费(transaction fees)
2没有什么比特币,只有UTXO 未输出的交易
a 要理解UTXO,最简单的办法就是把一枚比特币从诞生到在商海中沉浮的经历描述一下。我们假设一个这样的场景:张三挖到12.5 枚比特币。过了几天,他把其中 2.5 枚支付给李四。又过了几天,他和李四各出资 2.5 比特币凑成 5 比特币付给王五。如果是基于账户的设计,张、李、王三人在数据库中各有一个账户,则他们三人的账户变化如下图所示:
b 交易(Transactions)
我们定义,一枚电子货币(an electronic coin)是这样的一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥(Public key) 签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行检验,就能够验证该链条的所有者。
c 支付确认
SPV:Simplified Payment Verification.是一种客户端的替代解决方案,用这种方案可以实现轻量级的钱包客户端,像我们常用的MultiBit这样的轻量级钱包都是用的这种模式,这种模式的客户端不必下载完整的区块链数据,只需要下载每个区块的区块头(header),每个区块头的大小大概是80字节,非常小,所以不管区块扩展到2M还是8M, 使用这种模型的轻量级钱包都会非常的小,大概每年增加4.2m的空间。spv钱包可以从区块头中的默克尔根推算出二叉树的支链,这样可以为一个完整节点中存在的交易做证明,它发起一个交易时要向全节点发起请求,一旦根据默克尔根推算出的二叉树验证了一个交易的存在,这个钱包就可以在相应的难度上做为一个交易验证和安全的代理。
spv的缺点:1.容易遭到全节点的拒绝服务,所以要保证较多的与全节点的连接,而且要保证这些节点是诚实的。
2.spv客户端向全节点请求的交易必须与它的密钥一致,这样全节点会看到该客户端的相应用户的公钥,造成隐私泄露。
d.回收硬盘空间
如果最近的交易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数据,以回收硬盘空间。简单的说,就是丢弃早期的的交易数据,只保留交易结果。之前可能有万亿笔交易,存储需要使用100G空间,但记录这些交易的结果(所有账户的余额),去只需要100M的空间
白皮书链接(原): https://github.com/GammaGao/bitcoinwhitepaper/blob/master/bitcoin_en.pdf
白皮书链接(译):http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system