zoukankan      html  css  js  c++  java
  • 什么是以太坊智能合约(一):认识区块链

    本教材适合所有的区块链初学者,根据自己的理解组织语言写的,如有错误,请指出。

    1.数字货币(Digital currency)

    在介绍区块链之前,让我们先来了解一下数字货币吧。

    数字货币也是一个货币,只不过是虚拟货币,比特币就是一种虚拟货币。它是由“中央银行”印刷和发行的,也可以是个人发行的,但是需要人们承认其具有价值,才能进行流通,否则就没有意义了。货币的通货也是由“中央银行”控制的。

    那么数字货币是如何运作的呢?下面我来举一个很简单的例子。

    假设我是Bug,是E币的发行人,我首次给Bob、Alice和Mary发几个E币,如下图:

    之前提到了,发行币并不是“凭空”产生的,在流通的时候,消耗了电力、物力等等,这些损耗的费用加起来,使得E币富有了价值。

    那么E币的价格通过什么来衡量呢?我们再举一个例子。

    我们都知道,地球上的黄金含量特别少,所以它很贵,价格很高。由黄金打造的项链、首饰更贵,让我们这种穷逼只能看,不能买。

    假设,有一颗满是黄金的陨石降落在了地球中,天上下起了黄金雨,想象一下,你出门走在路上,路上不是沙子,也不是石头,而是一粒粒黄金,堆得满地都是,你能认为黄金还能那么贵么?当然不会,会贬值。

    发行货币也是一样的原理,如果我们发行了很多很多,无限量发行,“凭空”产生那么多E币,如图:

    此时,E币将会贬值到“分文不值”,但是这样做就毫无意义了。所以说货币的发行不是随意的,数字货币也是如此。

    2.区块链(Blockchain)

    我是Bug,假设我要在互联网上向Alice发送1元E币,我可以用类似支付宝的交易工具给Alice进行转账。

    每次转账之后,都会有交易记录,所有的交易记录综合,生成总帐单,账单包含了每个人的余额,例如下图:

    在记账的时候,我们都需要保持公平、诚信的态度,我们必须使得双方能够相互信任,但是如何保障我们之间的信任呢?

    假设我是账单的管理者,我自己可以随意修改数据,给自己带来“方便”,修改之后的账单如下:

    谁知道账单有没有经过我修改呢?

    区块链账单的好处就是没人可以改变它,只要规则写好,数据在那里,不会有人能随意修改数据的。

    我们把账单模型进行缩小,规定:每次更新、修改数据必须在原有的账单进行修改,每次修改,在前一个账单的基础上进行的修改,并且新账单有时间戳、前一个账单的哈希值等数据,目的就是让每次修改数据都可以追踪,以此产生的帐本如下:

    我们称为总帐本,头一个数据叫做“Block”(区块),之后的数据叫做“Chain”(链)。

    我们可以很清楚的看到,总帐本是通过块累积起来的结果,像不像一条链(Chain)呢?因此这就是区块链(Blockchain)的由来啦,是不是很简单?

    自此,我已经向大家介绍了数字货币和区块链,或许大家还有很多疑问,例如:

    • 我们如何信任货币的发行人和参与进来的人?
    • 区块链是如何产生的?
    • 区块链的账单是如何存储?

    下一节再看!

  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/wphoneveloper/p/9618174.html
Copyright © 2011-2022 走看看