中本聪想要建立的是一个什么样的货币系统?
中本聪在这个白皮书中提出了一种完全通过点对点技术实现的电子现金系统。 最强大的功能就在于,这个系统使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。
而且这个系统通过给交易加上时间戳的方式防止双重支付的问题,并且将交易合并入一个基于随机散列的工作量证明的链条上,这个链条上的数据是不可更改的。
为什么会想要建立这个系统
现状:互联网上的贸易,几乎都需要借助金融机构作为第三方可信赖机构来处理电子支付信息。
这个系统存在的弱点:内生性地受制于“基于信用的模式”
什么意思呢,我的理解就是这个系统天生就依赖于第三方机构为消费和销售者搭桥,那么你必须要依赖这个系统,而且充当第三方中介的机构必须是双方都可信任的。
目前的难点:在这个机制下,因为金融机构不可避免的会出面协调争端,使得双方的交易实现不可逆变得很困难。
金融中介的模式存在的几个问题
1、增加交易成本
2、限制了实际可行的最小交易规模
3、这个系统中交易可更改,使得交易双方必须是可信任的,而这就是中介存在的必要性了。
提出解决的设想办法:
1、设想一个电子支付系统,它基于密码学而不是基于信用,使得任何达成一致的双方,都能够直接进行支付,而不需要第三方参与。
2、这个系统是支持交易不可逆的,也就是杜绝回滚支付交易的可能,这就可以保护特定的卖家免于欺诈,对买家来说,这个环境下设立的第三方担保机制也轻松愉快。
对这个系统简要的概括:通过点对点分布式的时间戳服务器来生成依照时间前后排列并加以记录的电子交易证明,从而解决双重支付问题。
交易
定义:一枚电子货币是数字签名(它是一条加密的记录或数据),即每一位所有者通过对前一次交易和下一次拥有者的公钥签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币末尾,电子货币就传递给下一个所有者。而收款人通过对签名进行校验,就能够验证该链条的所有者。
交易中的难点:如果保证没有发生双重支付?
传统做法:引入第三方权威机构,对每一笔交易进行验证,防止双重支付。
传统做法的坏处:最终还是变成中心化系统
中本聪的做法:交易信息应该被公开宣布,需要整个系统的所有参与者,都有唯一公认的历史交易序列
解决双花问题的本质,中本聪认为是这句话“从逻辑上看,为了达到目的,实际上我们需要关注的只是于本交易之前发生的交易”。如何理解,我感觉我是不太懂。中本聪签名提到产生一条交易记录永远有先后顺序,所有发生双花也是有先后顺序的,不可能同时创j造两笔交易,所有我们只需要证明其中一条是有效的即可。
而要证明一条有效,那就是发动所有人参与这个活动,所有人都做证明。
时间戳服务器
时间戳服务器通过对以区块形式存在的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻或世界性新闻组网络的发帖一样。
工作量证明
目的:为了在点对点的基础上构建一组分散化的时间戳服务器
如何构建:工作量证明
具体做法:工作量证明机制引入对某一个特定值的扫描工作,比如在sha-256下,随机散列值以一个或多个0开始,那么随着0的数目上升,找到了这个答案的难度就指数上升。
解决的问题:
工作量证明机制的本质是一cpu一票,大多数的决定表达为最长的链,因为最长的链包含了最大的工作量。
修改成本高:假设大多数的cpu是诚实的节点控制,那么城市的链条将以最快的速度延长,并超越其他的竞争链条,如果想对现有的区块进行修改,攻击者要重新完成该区块的工作量外加该区块之后的所有区块的工作量,这个成功的概率是很低的。
设置难度:工作量证明的难度将采用移动平均目标的方法来确定,如果区块生产的速度过快,那么难度就会提高。
对于攻击者来说,攻击成本太高,所以他们不会攻击。
网络
1、新的交易向全网广播
2、每个节点都激昂收到的交易信息纳入一个区块中
3、每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明
4、当一个节点找到了一个工作量证明,它就向全网进行广播
5、当且仅当包含在该区块的所有交易都是有效且之前没有存在过的,其他节点才认同该区块的有效性
6、其他节点表示接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以演唱该链条,而将被接受区块的随机散列值视为先于区块的随机散列值。