区块链技术是一种综合应用了分布式数据存储,点对点传输,共识机制,加密算法等计算机技术的技术组合。
狭义来说区块链是一种按照时间顺序将数据区块以顺序相连的方式组合而成的一种链式数据结构,并通过密码学手段实现的不可篡改,不可伪造的分布式账本。
广义上来讲区块链技术是利用块链式数据结构来验证与存储数据,利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和数据访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
比特币则是区块链技术的一种典型应用,也是区块链为众人所熟知的历史起源。
中本聪(Satoshi Nakamoto)于2008年发表了一篇名为《比特币:一种点对点式的电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System),并于2009年1月3号挖出了比特币的第一个区块,也称“创世区块”,获得了第一笔50枚的比特币奖励。当时正处于金融危机时期,为了纪念比特币的诞生,中本聪将当天泰晤士报头版标题刻在了第一个区块上。
由于当时了解比特币的只有狂热于互联网技术的极客们,所以比特币显得极其小众。
在2010年5月22日有程序员用1万比特币购买了两块披萨,以17年比特币的最高价格计算,当时购买两个披萨的价值折合约为11亿人民币,堪称史上最贵披萨。
这次交易使得比特币第一次拥有了公开价值。
随着比特币的诞生,区块链技术才得以为众人所熟知。
区块链的五个特点:
去中心化
开放性
自治性
不可篡改性
匿名性
特点一 去中心化
在区块链系统中,不存在中心化的管理机构。
区块链数据的存储,传输,验证等过程均基于分布式的系统结构,整个网络中不存在中心节点。
公有链网络中所有参与的节点都具有同等权力与义务。
任一节点的损坏都不会影响整个系统的运作。
特点二 开放性
除了交易各方的私有信息被加密外,区块链的数据对所有人公开,提供灵活的脚本代码系统,整个系统信息高度透明,并且在系统指定的规则范围内,节点之间无法相互欺骗。
特点三 自治性
通过智能合约,共识技术让系统中的所有节点能够在互不信任的环境中自由,安全的进行数据交换。
特点四 不可篡改性
每个新产生的区块严格按照时间顺序推进。时间具有不可逆性,任何试图篡改区块链数据的行为都容易被追溯。
特点五 匿名性
采用与用户公钥关联的地址作为用户标识,不需要传统的第三方认证中心颁发数字证书,交易不和用户真实身份关联,只是和用户的公钥地址关联。
区块链的架构
数据层封装了底层数据区块的链式结构以及相关的非对称公钥数据加密,时间戳等技术。
网络层包括P2P组网机制,数据传播机制,数据验证机制等。P2P组网技术(早期运用于BT类P2P下载软件中)使得区块链自身具备组网功能,使得区块链系统中的每一个节点都能参与区块数据的校验和记账过程,仅当区块数据通过大部分节点验证后才能进入区块链。
共识层封装了网络节点的各类共识算法。共识算法是区块链的核心技术。让全网节点在去中心化的系统中高效的对区块数据的有效性达成共识解决了分布式系统中的拜占庭将军问题,最终决定由谁来进行记账。
以上三层为区块链技术的必备要素。
激励层。将经济因素集成到区块链技术体系中来。包括经济激励的发行机制和分配机制主要出现在公有链当中,其主要作用是为区块链提供一定的激励措施,以此鼓励节点共同完成区块链系统的运行工作。如比特币中的挖矿奖励和交易手续费。
而在私有链和联盟链中则不一定需要激励。此处参与记账的节点往往在其他地方完成博弈,通过其他形式的强制力或自愿来参与记账。
合约层封装了各类脚本,算法和智能合约。是区块链可编程特性的基础。例如比特币本身具有简单脚本的编写功能。而以太坊极大的强化了编程语言协议,我们称为智能合约。理论上来讲,智能合约可以编写实现任何功能的应用。此种编程特性使得区块链能够支持诸如互联网金融,医疗,数字版权保护等逻辑更为复杂的应用场景。
应用层封装了区块链的各种应用场景和案例。比如搭建在以太坊上的各类区块链应用就部署在应用层。而未来的可编程金融,可编程社会也将搭建在应用层。
这里三层非必须。
相关术语在后续文章中会全面补充。
原文发自公众号“go语言和区块链”