区块链学习的一些笔记

密码朋克
中本聪 2008年发布了 比特币
区块链技术是一系列技术的集合




比特币:
去中心化 分布式记账系统(每一个人都有一份账本)


比特币原理
账本如何验证有效性?
      利用hash函数生成摘要信息
      因为 同样的原始信息用同一个哈希函数总能得到相同的摘要信息
      原始信息任何微小的变化都会哈希出不一致的摘要信息
      摘要信息无法逆推出原始信息
      
      一般的区块是由账本序号+记账时间戳+hash值组成
      区块链是由一个个区块组成,每加一个区块就生成一个新的hash值,只要账本发生改动对应的hash值也会变,因此我们只要确认最后一个hash值是否相同就能判定账本是否被修改




所有权问题?
      比特币交易是通过点对点交易的,从一个钱包地址转入到另一个钱包地址,中间通过私钥进行核实,私钥是唯一的,不可修改,一旦忘记或者是丢失则相当于币没了!
      因此只要谁拥有了该币的私钥就拥有了该币!
      
      那么我们如何防止要在进行交易的过程中私钥被泄露?
      答案是采用非对称加密技术  比如hash函数    首先利用hash函数对该币交易进行hash处理生成唯一的摘要,然后在公认安全的环境下利用私钥授权对该笔交易进行sign()签名生成唯一的交易记录,完成交易。
      矿工如何确认该笔交易是合法的?
      利用verify函数对交易签名产生的摘要与利用哈希函数对该笔交易处理得出的摘要进行对比,相等就生成账本生成区块进行广播
为什么要记账?(挖矿)
因为有奖励   大概为12.5个BTC
虽然奖励很丰厚,但是要获取该节点的挖矿权是很难得。一般是谁先计算出特定规则的摘要这笔奖励就归谁!
首先需要计算出新的唯一摘要信息,现在这个唯一摘要信息的规则为 18个零开头+哈希字段
而我们要计算出这个摘要信息 就必须去优化计算方法和计算设备,这个过程很耗金钱和资源,个人很难做到!
所以现在都是由许多矿工组成的矿池进行开挖

以谁的账本为准?(共识机制)
矿池那么多,大家都拼命购买设备挖,那假如同一时间有两个矿池的人计算出了该唯一摘要,那这个记账权利跟奖励规谁呢?
为了解决这个问题,就产生了共识机制!
谁的工作量大就选谁的(POW 工作量共识机制)!或者将另外一个做备用块!

这里有个问题,就是生成区块的时间过长会增加交易确认时间,过短则会增加区块链分叉几率,这需要权衡!





注:以上图片来源于慕课网