区块链 基础

特点:公开、透明,解决交易中信任问题,通过技术推动社会交易成本的降低。

采用新的清算方式, 使用流水账记录。

1. 区块链的六层结构

  1. 数据层
    数据区块, 链式结构, 时间戳, 非对称加密, 哈希函数, Merkle树。
  2. 网络层
    P2P网络, 传播机制, 验证机制
  3. 共识层
    PoW, PoS, DPoS
  4. 激励层
    发行机制, 分配机制
  5. 合约层
    脚本代码, 算法机制, 智能合约
  6. 应用层
    可编程货币, 可编程金融, 可编程社会
    从1 —-》6 由底而上
    各层之间相互配合, 实现一个去中心化的信用机制。

2. 区块链技术概念

  1. 通俗说: 分布式记账; 形成 公开,透明,不可篡改、不可伪造的数据库.
  2. 区块链技术的本质是一种互联网协议。
  3. 只有当所有网络节点(或大部分节点)进行区块确认后, 该笔交易才算真正结束。
    区块链技术在没有中央控制点的分布式对等网络下,使用分布式集体运作的方法,构建了一个P2P的自组织网络。通过复杂的校验机制,区块链数据库能够保持完整性、连续性和一致性,即使部分参与人作假也无法改变区块链的完整性,更无法篡改区块链中的数据。


  4. 核心技术1:区块+链 = 时间戳.

  5. 核心技术2:分布式结构——开源的、去中心化的协议.
    • 5.1 分布式记账、分布式传播、分布式存储这三大技术: 实现该系统的”不可被控”.
  6. 核心技术3:非对称加密算法

  7. 核心技术4:脚本. 增加区块链技术的可拓展性, 会使系统有机会去处理一些无法预见到的交易模式,保证了这一技术在未来的应用中不会过时,增加了技术的实用性。

  8. 总结:
    • 1 区块链是一种分布式的不可篡改的数据库;
    • 2 该数据库由按时间顺序的区块组成;
    • 3 区块由一段时间内的网络交易信息组成;
    • 4 该数据库的特点是: 分布式, 所有者共同维护;

3. 共识机制

POW : 工作量证明 (第一种)

  1. 比特币的共识机制(POW): 工作量证明机制. (以太坊前三个阶段也采用该机制);
  2. 工作证明: 设立一个奖励,要想得到就得付出代价,付出代价的方式是解题(比特币是SHA-256,以太坊是SHA-3),谁先解出来,奖励就归谁,一旦计算出来后,要告诉大家,大家会帮你验证,大家都承认后你就可以拿到这个奖励,然后基于这道题目继续算下一个题目,如此反复;
  3. 因为每一个区块链都是基于前一个区块链产生的,如果有攻击者要修改之前的记录,从那之后每一个区块链都要重新付出劳动POW机制通过控制区块的平均生成时间,降低攻击者试图赶上随后区块的概率;
  4. 大家帮忙验证其实是一个集体投票的结果,大多数人决定了最长那条链,因为那条链中包含最多的工作量证明,并且投票是基于计算力(CPU),有计算力才有投票权;
  5. POW机制解决了拜占庭将军问题 : 即在 互相不信任 的情况下,只要 好人的数量大于坏人,就保证系统的正确运转(符合大多数的意愿),让系统具备一定的 容错性,这也就是大家所说的:区块链具备去信任的能力;

POS : Proof of Stake,权益证明 (第二种)

  1. 权益证明 : 主要思想是节点记账权的获得难度节点持有的权益成反比, 相对于PoW,一定程度 减少 了数学运算带来的资源消耗,性能也得到了相应的提升,但 依然是基于哈希运算竞争获取记账权的方式;

POW 和 POS 共识机制的不同之处在于:

  • 1 POW 在于对各节点计算出来的结果进行共识;
  • 2 POS 在于对选择哪个节点进行记账进行共识;
  • 3 所以不同之处在于: 一个是进行记账结果的共识, 一个是进行选择谁进行记账的共识;(以上属于自己的理解)

4. 区块链基础 (散列法hashing)

  1. 在区块链中,散列是作为区块、交易和地址的标识符。
  2. 一个散列函数(hash function),即取任何的输入,就可以产出一个特定大小的输出。

  3. 散列算法 与 压缩算法的区别:
    • 简单地解释下这两者之间的区别,N兆视频数据, 散列法总是会产生相同数量的灯泡,而压缩一部N兆(MB)视频的结果,仍然会产生数以百万计灯泡的一个输出。一个压缩过的视频,可被解压缩然后获得原始的视频。而当一个视频被散列到仅仅只有256个灯泡时,从这个散列重新构建原始视频可能性就很小了.

  4. 一个安全的加密散列函数,它的一个关键特征就是,它是单向的。这意味着,从数学和计算机学角度上来看讲,从输出来反推输入,这几乎是不可能的。术语为: 逆原像阻力.

  5. 安全的散列函数,即使输入仅相差一个bit,也会产生显著不同输出
    • 如: passwd1 与 passwd2 分别计算散列, 确保产生的输出显著不同; 否则, 如果图案相似, 那对方就可以推断出输入也是类似的.

  6. 加密散列函数也应该是抗碰撞的。 一个碰撞过程,意指当一个散列函数为超过1个输入进行运算,而产出相同输出的结果。如果用散列法运算数据1(可能是一份电子表格),而用散列法运算数据2(可能是一张图片),这两者产生了相同的输出,那么这个碰撞冲突就发生了。

  7. 散列还享有安全与隐私的优势。
    • 例如: 一首歌是以数字格式被记录的,并且这首歌的散列是被记录在区块链之上的,那任何他人都无法声称是他们是第一个创造了这首歌,并生成了这个散列,他们也不会知道歌曲本身:某人不能写歌,也没法篡改这个散列。同样地,除非歌曲或其他数字化财产或数据被表明了,展示在区块链上的仅仅是散列本身而已。 所有权记录也可以存储在区块链上,举个简单的例子,车辆登记处可以将汽车数据散列(照片,VIN, 车牌)存储在区块链上,只有车辆所有者,保险公司以及政府会知道这个车辆的实际细节。
>8. 
function withdrawBalance() {
    amountToWithdraw = userBalances[msg.sender];
    if(amountToWithdraw > 0){
        if(!(msg.sender.call.value(amountToWithdraw)())) { throw; }
        userBalances[msg.sender] = 0;
     }
 }

五. 比特币挖矿
1. 实质是 : 不断重复计算随机字符串的哈希值(一种字符串变换运算), 并检查结果是否满足特定的需求.
2. 流程上, 是这样实现的:
* 1 网络内节点收集有效但还未验证的交易;
* 2 这些交易以时间先后顺序 被放入到区块(block)中;
* 3 各个节点纷纷加入, 试图解决工作量问题(及上述的哈希运算);
* 4 节点这种行为被称为挖矿(Mining);

六. 区块链的去中心化共识系统的关键:
* 1. 去中心化共识系统的窍门在于:它们怎样保证每个参与者(完全节点)有一个账本的副本,并使每个人确信自己的账本与别人的账本是同步的。
*
七. 智能合约

  1. 智能合约的本质:
    * 1. 一个可以自动执行的计算机程序;
    * 2. 一个系统的参与者(以太坊中每个合约都有自己的账户地址 )
    * 3. 可以对接收到的信息进行回应, 可以接收和储存价值, 也可以向外发送信息和价值.
    * 4. 像一个可以信任的人, 按照事先约定的规则执行操作;

  2. 运行环境:
    * 它是运行在 可复制, 共享的账本上的计算机程序.可以处理信息, 接收,储存和发送价值;

八. 以太坊:

  1. 以太坊借鉴了比特币的 区块链技术, 对它的应用范围进行了拓展.
    * 1. 例如比特币是利用区块链技术的专用计算器(因为智能合约支持不完善);
    * 2. 以太坊就是利用区块链技术的通用计算机.( 以太坊 = 区块链 + 智能合约)

本文来自, 多篇博客的阅读集合…

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值