区块链是怎么运行的

  1. 什么是区块链?
    区块链就是一种去中心化的分布式共享数据库技术。

    去中心化:没有中介机构进入,所有节点的权利义务都一样。

    分布式:将数据和程序分布在多台设备上。

 

    2. 区块链怎么运行?

 

      2.1比特币钱包

      Bob和Alice电脑上都有比特币钱包。钱包是一种文件,可以让用户访问多个比特币地址。一个地址是由多个字母和数字组成的字符串。每一个地址都有自己的比特币余额。

      2.2创建比特币地址

       Bob建立一个新的比特币地址用于接收Alice的付款。创建新地址的过程实际上就是创建一对密钥。私钥保存在比特币钱包,而新建的地址存储公钥。

     可以将地址看成银行账号,但工作方式稍有不同,比特币用户可以建立多个地址,并且鼓励为新的交易建立地址,增强隐蔽性。

      2.3 创建一个支付:

     Alice告诉她的比特币客户端,她要向Bob的收款地址转账。Alice的钱包里有她的每一个比特币地址的私钥。比特币客户端用Alice此次使用的付款地址的私钥,对她的这一交易申请进行签名。此时,网络中的所有人都可以利用公钥来验证这个交易的合理性。(付款的时候是从已有的地址里面挑选一个地址进行交易吗?如果一个地址里面余额没有了,那这个地址还存在吗?要不要删除?如果每一笔交易都建立一个地址,那么钱包里面是不是要存无数的地址,这个地址都在区块链里面吗?一个人拥有的比特币是所有的地址的和吗? )

      2.4验证交易:

      矿工的电脑将过去10分钟内的交易打包成一个新的区块。矿工的电脑被设置为能计算加密哈希函数。

      源数据被转换成哈希函数,微小的变化都能带来哈希值的不同。

     为相同的数据创建不同的哈希值,比特币使用随机数来实现。随机数是在进行哈希计算之前,在数据中添加的随机数字。改变这个随机数会产生极不相同的哈希值。每一个新的哈希值包含关于此前所有比特币交易的信息。

     矿工的电脑基于前一个区块的哈希值、新交易区块和随机数,来计算新的哈希值。创建哈希在计算上微不足道,但比特币系统要求新的哈希值拥有特定格式——必须以特定数量的0作为开始。矿工无法预测哪个随机数会产生以要求的数量的0作为开始的哈希值,所以他们被迫用不同的随机数创建很多哈希,直到获得有效的那一个。(工作量证明)

     每一个区块都包含一个名为coinbase的初始交易,这是给胜出矿工的50比特币的支付。成功的矿工的钱包里生成了一个新地址,里面的余额是新挖到的比特币数量。

      2.5交易验证:

      任何人想要修改其中一条记录,比如上面所说的Alice的例子将在越来越多的记录下被淹没。修改记录就要重做Alice到最近一条记录的所有工作。(工作量证明)

 

posted @ 2018-07-18 21:54  一头  阅读(695)  评论(0编辑  收藏  举报