• 区块链技术特点


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

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

    1. 区块链的六层结构

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

    2. 区块链技术概念

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

    1. 核心技术1:区块+链 = 时间戳.
    2. 核心技术2:分布式结构——开源的、去中心化的协议.
      * 5.1 分布式记账、分布式传播、分布式存储这三大技术: 实现该系统的"不可被控".
    3. 核心技术3:非对称加密算法
    4. 核心技术4:脚本. 增加区块链技术的可拓展性, 会使系统有机会去处理一些无法预见到的交易模式,保证了这一技术在未来的应用中不会过时,增加了技术的实用性。

    3. 共识机制

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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    c#去除List中的重复项
    c#比较两个List相等
    C#笔记
    解决Xcode真机测试时ineligible devices的问题
    unity3d UGUI多语言
    解决ugui中Image使用iTween的ColorTo、ColorFrom等不生效
    Unity3d uGUI适配
    184. 最大数
    187. 加油站
    46. 主元素
  • 原文地址:https://www.cnblogs.com/yyx1-1/p/6557198.html
Copyright © 2020-2023  润新知