• 区块链


    区块链入门教程

    https://www.cnblogs.com/thirteen-zxh/p/9117963.html

    一, 区块链介绍

      1, 区块链的最大特点

      2, 区块链的组成

    二,Hash加密算法

      1, 什么是hash?

      2,Hash最后的推论

    三, 以太坊

      1,什么是以太坊

    四,智能合约

      1,什么是智能合约

    前言:

      17年底后区块链迅速成为一个热门的话题,最近在入门学习区块链,在网上和书籍上整理了一些知识写成文章分享给大家,文章参考书籍《区块链技术指南》机械工程出版社。

      

    一,区块链
    1,区块链介绍
    区块链的本质,区块链是什么?一句话就是它就是一个分布式存储数据库,是一个不可篡改的,区块链主要是存储数据信息,只要需要都可以存储在区块链中,你也可以向区块链读取数据,所以它是一个特殊的数据库。

    任何人都可以架设服务器创建自己的节点,加入区块链网络成为当中的一个节点,在区块链中是没有中心节点的,每个节点都是平等的,你可以向任何一个节点写入(需要有区块)或读取数据,最后所有节点数据都会更新同步,数据都会保持一致。

    2,区块链的最大特点
    去中心化:区块链是一个完全去除中心化的,在区块链中是没有中心节点的,每个人都是管理员,如果有人想对它添加审核,是实现不了的,因为区块链最初的设计就是去除中心化,防止出现居于中心地位的管理员当局。

    去中心化说白了就是,比如现在你所使用的QQ,它的中心就是腾讯所管理的, 如 果腾讯服务器一瘫痪,QQ整个就是不能用的,但是在区块链中是不存在 的只要一 个节点存活区块链就不会挂掉。

    人人都能参与进区块链:在区块链中只要你创建节点,连接其他节点,你就是区块链的一员了。

    3,区块链的组成
    区块:区块链是由一个个区块(block)组成的。区块就是数据库,每次写入数据就是创建一个区块。每个区块分为两个部分:

    区块头(head):记录当前区块的特征值。

    区块体(body):实际数据。

    ·区块结构

    区块头包含当前区块的多项特征值:

    · 生成时间(时间戳)

    · 实际数据(即区块体)的哈希

    · 上一个区块的哈希

    区块链的链接其实跟数据结构中的双链表挺像的。这里你需要理解什么是哈希(hash),这是理解区块链必需的。

    二,什么是哈希(hash)?
    Hash是密码学中的一门技术,称之为散列函数或散列算法又称哈希函数(英文:Hash Function),散列函数把消息或数据压缩成摘要,使数据变小,将数据的个数固定下来,然后将数据打混乱,重新创建一个叫做散列值(hash value)的指纹,散列值通常用一个短的随机字母和数字组成的字符串代表。好的散列函数在输入域中很少出现散列冲突。

    所谓“哈希”就是随机数可以对如何内容,计算出一个长度相同的特别的值。区块链的哈希长度是256位,这就是说不管原始内容是什么都会计算出一个256位的二进制数字。而且可以保证只要元原始内容不同,对应的哈希也一定是不同的。

    哈希是不可逆的,比如字符串“123”加密后将生成一窜字符“a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0”,

    字符串“123”可以获得“a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0,

    但是“a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0”获得不到“123”原始值。

    (理论上,其它字符串也可能获得同样的hash值,但是这样的概率很低,可以说是不存在的)

    最后的推理:

    1,每个区块的哈希都是不一样的,所以可以使用hash来标识。

    2,如果区块变了,hash也会跟着改变。

    三,什么是以太坊?
    以太坊(Ethereum)是建立在区块链技术之上去中心化的应用平台,它允许任何人在平台上建立和使用通过区块链技术去中心化应用。

    在没有以太坊之前开发区块链应用是这样的:拷贝一份比特币的代码,然后去更改底层的加密算法,公识机制,网络协议等。

    以太坊平台对底层区块链技术进行的封装,让区块链应用开发可以直接基于以太坊开发,开发者只要专注于应用本身的开发,从而降低了难度。

    以太坊具有4中专用语言:Serpent(受Python启发) Solidity (受JavaScript启发) Mutant (受go启发)

    四,什么是智能合约?

    智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机执行。

    也可以理解为是个双方打赌的中间人,比如,你规定合约内容是,明天中午12点判断天气是否和天气预报一样,如果是多云天气的话,超过一半云就算多云,否则不算。当第二天中午12点合约执行,如果你赢了,钱会自动打到你账上。一切解决。

    例子举得比较简单,但你可以领会到智能合约能解决的一些问题。

    总结:区块链是一个无人管理的数据库,目前以运行8年之久,没有出现过大问题。这证明它是可行的。

    为了数据的可靠性,区块链也要付出代价,一是效率 数据存入区块链,最少需要等待10分钟,数据才能才能同步在全部节点上。二是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常消耗能源的。

    因此,区块链适应环境其实非常有限。

    1,不存在所以成员都信任的管理当局。

    2,写入的数据不要求实时使用。

    3,挖矿的收益能够弥补本身的成本。

  • 相关阅读:
    循环队列和链队列的实现
    【lightoj-1026】Critical Links(桥)
    顺序栈和链栈的实现
    【51nod-1605】棋盘问题
    【51nod-1596】搬货物
    【海明码】(容易看懂)
    【lightoj-1094】树的直径(DFS)
    【lightoj-1046】Rider(BFS)
    【第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛-F】等式(因子个数)
    浅谈Vue个性化dashBoard 布局
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/9133041.html
Copyright © 2020-2023  润新知