什么是区块链?
区块链就是一种去中心化的分布式共享数据库技术.
去中心化: 没有中介机构进入, 所有节点的权利义务都一样.
分布式: 将数据和程序分布在多台设备上.
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 到最近一条记录的所有工作.(工作量证明)
来源: https://www.cnblogs.com/yitou13/p/9332861.html