深解比特币核心概念和原理

币圈闪电侠
币圈闪电侠 得得号

May 18, 2018 码农变身闪电侠币圈的乱象与秩序在这里!

摘要: 在完成记账之后是会得到比特币奖励的(这个奖励其实就是比特币发行的过程),既然有奖励大家都会去记账,那就会出现记账不一致,所以会有一个规则来限定大家记账。

  一、比特币是什么,有哪些特点?
  一种P2P(点对点)形式的虚拟货币。去中心化的记账系统;
  去中心化:任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护、共同管理;
  开放透明性:系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有 人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统 信息高度透明。
  自制性:人为不可干预,决定得超过一半的人去做;区块链采用基于协商一致的规范和 协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由 安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。
  信息不可篡改特性:一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能 够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此 区块链的数据稳定性和可靠性极高。
匿名性:由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的 程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自 己产生信任,对信用的累积非常有帮助。
  可溯源性:因为公开透明和不可篡改的特性,所以每一笔交易信息都可以追溯其来源!
  二、比特币原理
  数据存储在网络节点里,比如每一台电脑里;那么问题来了,数据在每一台电脑里,已 谁的为准,数据被篡改了怎么办;
  1.数据的验证
  假如说如下数据:

  这些数据分别存在王二、张三、李四、赵五的电脑里。可能会有人篡改数据,比如说张三把余额改为300了,如何验证张三的数据为假的呢。
  a.可以一一核对,就是把王二、张三、李四、赵五的数据一条一条核对一遍,就会发现张三电脑里的张三这条数据与其他人电脑里的数据不一样,但这样做效率太低(这只有四条数据,如果有一百万条数据,效率就太低了)
  b.介绍第二种之前先了解一下Hash函数(类似于常用的MD5加密)
  哈希函数:Hash(原始信息) = 摘要信息
  哈希函数的特点:
  ①同样的原始信息用同一个哈希函数总能得到相同的摘要信息
  ②原始信息任何微小的改变都会得到不同的摘要信息
  ③从摘要信息无法逆推算出原始信息
  首先会对张三的数据进行Hash加密,假设 Hash(数据) 得到4564asdasdasd6ABA;
  加密李四、王二、赵五的数据得到 789789attdghjfg7A,比对摘要信息就会发现张三的数据不对
  这样的话对比摘要信息就会比对比原始数据信息高效的多,进一步提高效率,
  区块:序号+时间戳+Hash值+交易记录
  假设一个区块的Hash值为789789attdghjfg7A;比如又产生了一些交易,形成新区快的时候符合 Hash(789789attdghjfg7A,新的交易数据) = 12323as4d56a4sdS,然后对比的时候对比新的摘要信息,如果新的摘要信息正确,说明前一个的账本数据也是正确的。这样的话就会形成一个链状的结构,这样的话只需要核对最后一个区块的信息,只要对比最后一个的信息正确,说明前面区块的信息都是正确的,及整个区块链的信息是正确的。这样效率就会提高。
  2.所有权问题
  一般的银行卡都有卡号和密码,账号和密码对的上就可以支付。而比特币的账号相当于一个地址,密码是私钥,付款是从一个地址付款到另一个地址。而且地址与私钥是一个非对称的关系,即:
  Hash(Hash(fun(私钥))) = 地址
  fun是一系列特定算法。
  如何交易:
  第一步:对交易进行Hash得到交易摘要
  Hash(
  ‘{“付快地址”:”ahsuidhujkashduikhasidgh”,
  ”收款地址”:”asyduihiuqawherihiahdi”,
  ”金额”:”1btc”}’
  ) = 456as4d646a5s4d66
  第二步:用私钥对摘要进行签名
  Sign(‘交易摘要’,’私钥’) = 签名信息
  完成两步之后就广播,告诉周围的节点,我(付款地址)给他(收款地址)付了1btc,签名为xxx...,周围的节点收到之后,先验证
  如果 Verify(签名信息,付款方地址) = 交易摘要 就会写入账本,继续向周围的节点广播;否则记账失败。
  签名和验证是一个可逆的过程
  Sign(交易摘要,私钥) = 签名
  Verify(签名,付快地址) = 交易摘要
  比特币安全性只受私钥控制,而不像银行里的钱,银行可以冻结。
  3.为什么记账?(挖矿)
  记账:Hash打包过程,这个过程是需要消耗资源的,既然需要成本,那么节点为什么要参与记账呢?在完成记账之后是会得到比特币奖励的(这个奖励其实就是比特币发行的过程),既然有奖励大家都会去记账,那就会出现记账不一致,所以会有一个规则来限定大家记账。
  规则:一段时间内只有一个人可以记账成功;
  通过解决密码学难题(即工作量证明)竞争获得唯一记账权
  其他节点复制(第二步的结果)记账结果
  工作量证明:
  Hash(上一个Hash值,交易记录集) = asdfasdasdad56161
  如果只是这样的话,都可以很快的记账,为了体现记账的难度,交易记录的值必须要以n个0开头。
  Hash(上一个Hash值,交易记录集,随机数) = 00000000000000000asdasda45456
  就是不停的跟换随机数得到以n个0开头的记录值。
  交易记录集:
  收集广播中还没有被记录账本的交易
  交易的有效性验证
  添加一笔给自己的转账的交易(挖矿奖励)
  4.已谁的账本为准?(共识机制)
  第一个验证正确的有优先的记账权,就可以打包区块,因此获取奖励。
  如果两个节点同时完成工作量证明,使用谁的区块?
  只认可累计工作量最大(最长链)的区块链
  分叉:

  假设有一个节点收到#3458B的广播,并且验证成功,就会形成新的区块。
  以最长就会以#3459B为主链

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 币圈闪电侠 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信