赞
踩
读懂这篇文章需要有一定的数据结构与算法的基础。
本篇文章如果有不正确的地方,欢迎指正。
目录
区块链是一种链式数据存储结构,它与我们算学的数据结构—链表类似,话不多说直接上图。
以Java为例:
以双链表为例,链表节点可存储前后节点的内存地址,中间可存储数据信息。
在区块链中,分为区块头,区块体和本区块哈希值。(具体架构在下面的区块图解中)
链表和区块链的区别:
特征 | 公有链 | 联盟链 | 私有链 |
参与者 | 任何人 | 企业或联盟链成员 | 个体或企业内部 |
共识算法 | Pow/Pos/DPos等 | 分布式一致性算法 | 分布式一致性算法 |
激励机制 | 必要 | 可选 | 不需要 |
中心化程度 | 去中心化 | 半去中心化 | 中心化 |
处理能力 | 较慢 | 中等 | 较快 |
为了解决比特币的难以扩展,无法自定义信息结构(如资产、身份、股权)等问题,以太坊应运而生。2013年11月Vitalik Buterin发起了以太坊项目,并在12月发布了《以太坊白皮书》。2014年4月,以太坊联合创始人Gavin Wood发表了《以太坊黄皮书》,并将其作为以太坊虚拟机的技术说明。以太坊是一个开源的有智能合约功能的公共区块链平台,允许用户在上面搭建各种应用。在无可信第三方验证的情况下,智能合约作为一种监控、验证、执行合约条款的计算机交易协议,嵌入由数字形式控制的价值实体,担任合约双方共同信任的代理,自治、高效、安全地执行合约。以太坊的核心是图灵完备的以太坊虚拟机。用户可以使用高级编程语言或者专门用于智能合约开发的语言Solidity编写智能合约,并可将智能合约部署在以太坊区块链上,然后在以太坊虚拟机中运行。以太坊智能合约的执行需要消耗燃料(gas)费,用以维护以太坊网络,燃料费不足智能合约就会停止执行。以太坊适用于公有链、私有链和联盟链3种区块链环境,不同的区块链环境可以通过扩展包的形式将智能合约部署到链上。
2015年12月,Linux基金会发起了超级账本Hyperledger开源区块链项目,旨在构建业务驱动的、跨行业的商业区块链平台,其中Fabric项目最受关注,其专门针对企业级区块链应用。Hyperledger中的智能合约称为链码,通过调用链码中的函数方法来实现处理交易的业务逻辑,完成对分布式账本的更新和维护。2016年4月,R3公司发布了面向金融机构定制设计的分布式账本平台Corda,其保障了数据仅对交易双方及监管可见的交易隐私性。R3公司发起的联盟包括花旗银行、汇丰银行、德意志银行、法国兴业银行等80多家金融机构。
区块链2.0时代可以被称为联盟链时代。总结来说,区块链1.0到2.0的发展,是因为区块链本身的功能已不再满足企业级应用,区块链1.0最开始只能存储交易信息,区块链2.0扩展为可以存储数字资产等的数据信息。为了能满足企业级应用,从公有链转变为联盟链,保证能够企业级应用能够高效率运行。这个时候的区块链还是以分布式账本的形式运营,主要应用于金融应用当中。
区块分为区块头和区块体,具体可根据业务需求进行定制化定义。
下图为区块链1.0时区块的定义
先引用百度百科的概念
所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。
通俗来讲,共识机制就是用户交易之后生成区块,由大家根据一些评判标准,看看这个交易是否合法,如果大家都觉得这个交易没有问题,则生成区块记录数据,反之则生成区块失败。但其实这个是共识机制中Pow算法的概念,也就是挖矿算法。共识算法还有Pos算法、DPos算法等等
先引用百度百科的概念
智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1994年由Nick Szabo首次提出。
智能合约可以理解成一种用代码来写的电子形式合同,它由代码脚本及一些算法机制组成。它存在于参与区块链系统的所有网络节点中,且它是一种自动执行的合约。当买卖双方交易成功之后,会自动执行合约中所填写的,例如交易的金额,交易失败如何处理等等。以下是一个用Java编写的智能合约Demo。
现如今区块链的应用场景包括但不限于
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。