区块链-比特币运行原理

目录:http://www.javashuo.com/article/p-nitsjfvy-ey.html node

交易机制

在比特币的交易中,比特币的拥有者须要先拥有一个地址,这个地址就至关因而比特币的钱包,比特币就是钱包里的钱。每一次的比特币交易其实就是比特币从一个钱包转向另一个钱包,即从一个地址转向另外一个地址。数据库

这个地址的生成同咱们在现实世界的身份没有任何关联,也就是说在比特币交易中,尽管知道交易者的地址,但并不能仅仅根据地址找到地址背后的人。这种交易身份匿名性,也是比特币吸引黑客的一个缘由。正如前面提到的勒索病毒,尽管黑客公布了本身的收钱地址,但并不能直接根据这个地址找到攻击者。网络

交易过程

做为一种虚拟货币,比特币的转帐并不能像现金同样实现从一个钱包到另外一个钱包的物理位移,其交易过程的实现是依靠比特币系统中帐本的记录来完成的。若是在系统帐本中记录了“小明向小红转让了100个比特币”这件事情,就能够认为小红收到了小明转来的100个比特币。区块链

中心化帐本(银行).net

银行是一个中心化帐本,帐本存储在银行的中心数据库,上面写着:blog

张三的A帐号余额3000元,李四的B帐号余额2000元……get

当张三想要经过A帐号转帐1000元给李四的B帐号时:比特币

  • ① 张三到银行,向银行提交转帐要求。
  • ② 银行经过银行卡密码等方式确认张三身份,并检查张三的A帐号是否有足够余额。
  • ③ 检查经过后,银行增长一条转帐记录:A帐号向B帐号转帐1000元,
  • 并修改余额:A帐号余额=3000-1000=2000元,B帐号余额=2000+1000=3000元

去中心化帐本软件

假设有这样的一个小村庄,你们不是靠银行,而是本身用帐原本记录谁有多少钱,每一个人的帐本上都写着:密码

张三的A帐号余额3000元,李四的B帐号余额2000元……

当张三想要经过A帐号转帐1000元给李四的B帐号时,

  • ① 张三大吼一声:你们注意啦,我用A帐号给李四的B帐号转1000块钱。
  • ② 张三附近的村民听了确实是张三的声音,而且检查张三的A帐号是否有足够余额。
  • ③ 检查经过后,村民往本身的帐本上写:A帐号向B帐号转帐1000元,
  • 并修改余额:A帐号余额=3000-1000=2000元,B帐号余额=2000+1000=3000元。
  • ④ 张三附近的村民把转帐告诉较远村民,一传十十传百,直到全部人都知道这笔转帐,以此保证全部人帐本的一致性。

去中心化帐本(比特币)

比特币用户在电脑上运行比特币客户端软件,这样的电脑称为一个节点(node)。

大量节点电脑互相链接,造成一张像蜘蛛网同样的P2P(点对点)网络。

当张三想要经过A帐号转帐1比特币给李四的B帐号时,

  • ① 张三向周围节点广播转帐交易要求:A帐号转帐1比特币给B帐号,并用A帐号的私钥签名。(A帐号的私钥可简单理解为A帐号的密码,只要知道A帐号的私钥就能使用A帐号上的比特币)
  • ② 张三周围的节点经过A帐号的公钥检查交易签名的真伪,而且检查张三的A帐号是否有足够余额。
  • ③ 检查经过后,节点往本身的帐本上写:A帐号向B帐号转帐1比特币元,
  • 并修改余额:A帐号余额=3比特币-1比特币=2比特币,B帐号余额=2比特币+1比特币=3比特币。
  • ④ 节点把这个交易广播给周围的节点,一传十十传百,直到全部节点都收到这笔交易。

比特币的去中心化公开帐本称就为区块链