比特币基本原理

in 后端 with 0 comment

比特币基本原理

1.要解决的问题

货币的发行权:国家(央行),货币总量,放水(超发)等 =>技术保障

货币的所有权:宣布作废,银行不承认等,法律保障 =>技术保障

点对点交易:传统的电子货币数字货币交易都有一个强中心来解决信任问题 =>技术保障

2.如何解决

如何设计一个去中心化的点对点的电子现金系统

所有权

公私钥体系

非对称加密:公钥公开,私钥进行加解密,双方不用交换密钥即可进行加密通信

私钥:比特币世界的私钥就是所有权的证明

地址:通过私钥进行一系列的运算得到。

签名:验证所有权,私钥进行签名,公钥验证通过

交易

白皮书这样定义:一枚电子货币(an electronic coin)是这样的一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥(Public key) 签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行检验,就能够验证该链条的所有者。

双花问题

上述的交易过程 收款人没办法确认 付款人是否进行了双花。通常的解决方案,就是引入信得过的第三方权威,来对每一笔交易进行检验,以防止双重支付。

比特币的解决方案:

接下来的所有设计都是为了达成这两个目的

网络,P2P, 节点,工作原理

  1. 新的交易向全网进行广播;
  2. 每一个节点都将收到的交易信息纳入一个区块中;
  3. 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;
  4. 当一个节点找到了一个工作量证明,它就向全网进行广播;
  5. 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
  6. 其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区快的随机散列值。

时间戳服务器(Timestamp server),区块链结构,单节点容易篡改,分布式

image

工作量证明(Proof-of-Work),激励,挖矿

为了增大区块的篡改难度,在区块上引入了一个随机数Nonce,这个随机数要使得该给定区块的随机散列值出现了所需的那么多个0

这样的话只有最早计算出符合要求的区块hash的节点打的包才可以被其它节点节点。

同时这个也解决了投票表决“大多数”问题,能最早算出的节点,一定是投入算力比较大的节点。

3.生态参与方

4.存在问题

51%攻击

当一个节点掌握了超过50%的算力之后,理论上就可以对区块进行重组,篡改。并总是保持为最长链。

分叉

最长链,互相不承认,共识问题

参考文献

  1. 比特币白皮书 https://bitcoin.org/bitcoin.pdf
Comments are closed.