【区块链与隐私保护从入门到精通系列教程】第一篇 区块链基本概念与发展历程
作者:互联网
1. 区块链基本概念与发展历程
1.1 区块链概念
对于笔者而言,了解一门技术的方法是,从概念出发,了解其背景与发展历程,再深入了解其背后的原理。也可以总结为了解一项技术就是解答三个问题:XXX是什么?为什么需要XXX?XXX的技术原理是什么?当然,对这个概念了解清楚后,笔者还会去思考这项技术的研究现状,是否落地,还可以应用到哪些实际场景?诸如此法,对这门技术的了解也将较为透彻。
区块链作为一门概念复杂、认知要求高、较为新颖的技术,目前缺乏整体的系列教程,因此笔者决定针对区块链,编写一套完整的从入门到精通(当然这是目标)的专属于区块链的教程,以上述提及的方法为路线,以通俗简洁的笔触,带领大家在区块链的海洋中遨游。由于笔者的研究方向为区块链与隐私保护结合,因此会在教程中涉及到隐私计算的内容,隐私计算也是目前广泛讨论并被学者大为重视的一项研究领域,这套教程准确的说,应该包含区块链、隐私保护、以及二者结合这三个主题。
本教程以区块链技术的概念及发展史开篇。
先来看看区块链的定义,这里引用2016年袁勇等人在《区块链技术发展现状及展望》中给出的定义:
狭义来讲, 区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构, 并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账 (Decentralized shared ledger), 能够安全存储简单的、有先后关系的、能在系统内验证的数据。广义的区块链技术则是利用加密链式区块结构来验证与存储数据、 利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码 (智能合约) 来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式。
简单来说,区块链就是一种分布式数据库,其数据以区块形式存储,以链式结构组合在一起。其特点如下:
(1)去中心化: 区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构, 采用纯数学方法而不是中心机构来建立分布式节点间的信任关系, 从而形成去中心化的可信任的分布式系统;
(2)时序数据: 区块链采用带有时间戳的链式区块结构存储数据, 从而为数据增加了时间维度, 具有极强的可验证性和可追溯性;
(3)集体维护: 区块链系统采用特定的经济激励机制来保证分布式系统中所有节点均可参与数据区块的验证过程 (如比特币的 “挖矿” 过程), 并通过共识算法来选择特定的节点将新区块添加到区块链;
(4)可编程: 区块链技术可提供灵活的脚本代码系统, 支持用户创建高级的智能合约、货币或其他去中心化应用. 例如, 以太坊 (Ethereum) 平台即 提供了图灵完备的脚本语言以供用户来构建任何可以精确定义的智能合约或交易类型;
(5)安全可信: 区块链技术采用非对称密码学原理对数据进行加密, 同时借助分布式系统各节点的工作量证明等共识算法形成的强大算力来抵御外部攻击、保证区块链数据不可篡改和不可伪造, 因而具有较高的安全性.
1.2 区块链技术发展历程
了解区块链的概念和特点之后,算是对区块链有了一个大体的了解了。但是单单枯燥无味的讲解些基础理论知识,肯定无法深入领会区块链的本质。没关系,我们在以后的学习中,不断强化这些概念,相信坚持每天一节,一个月的时间会对区块链有很深刻的理解。
下面进入到区块链的发展历程的学习。
按照目前区块链技术的发展脉络, 区块链技术将会经历以可编程数字加密货币体系为主要特征的区块链 1.0 模式、以可编程金融系统(数字资产、智能合约)为主要特征的区块链 2.0 模式和以可编程社会(DAO、DAC、区块链大社会)为主要特征的区块链3.0模式。
区块链1.0时代:
比特币的诞生是区块链1.0时代到来的标志。2008年,化名为“中本聪”的学者在密码学邮件组发表了一篇奠基性论文《比特币:一种点对点电子现金系统》,其中支持比特币系统运行的底层技术就是区块链技术。
区块链2.0时代:
如果说区块链1.0解决的是货币和支付去中心化的问题,那么区块链2.0解决的问题则是市场的去中心化。
在中本聪的设想中有三个核心构想:去中心化的公开交易总账、端对端的直接价值转移体系、强大的脚本系统以运行任何协议或者货币等。比特币实现了前两项,第三项技术的实现则体现在以太坊上。可以说, 以太坊的出现是区块链2.0时代的代表,这个时期的发展与合约技术的发展密切相关。
2013年11月,19岁维塔利克·布特林发表了白皮书《以太坊:下一代智能合约与去中心化应用的平台》,提出创建一个全新的分布式计算开源平台,用户可以在其上构建部署各种智能合约,以太坊网络上任何人都可以通过执行该代码或程序来完成发行通证、金融合约等特定“交易”。
关于以太坊,可以界定其为一个开源的区块底层系统, 在这个系统中可以运行所有区块链和协议。就像比特币一样,以太坊不受任何人控制,由全球范围内的所有参与者共同维护。
智能合约是以太坊显著的特点之一,是可编程货币和可编程金融的基础技术。关于“智能合约”这个概念,其最早由密码学家尼克·萨博( Nick Szabo)于1995年提出。这个概念可以简单地理解为:以数字形式定义的一系列承诺( promise),一旦合约被设立,在区块链系统上无须第三方的参与便可以自动执行。
区块链3.0时代:
区块链3.0时代也是区块链全面应用的时代,由此构建一个大规模协作社会。除金融、经济等方面,此时的区块链在社会生活中的应用更为广泛,特别是在政府、健康、科学、文化和艺术等领域。
在讨论区块链3.0时代之前,先了解几个概念:Dapp、DAC、DAO、DAS。
Dapp:Decentralized application,去中心化应用。
DAO:Decentralized Autonomous Organization,去中心化自治组织,后续会对这种组织形式进行详细介绍。
DAC:Decentralized Autonomous Corporation的缩写,意思是“去中心化自治企业”。
DAS:Decentralized Autonomous Society,去中心化自治社会。
区块链的应用演变可以说是从Dapp到DAC及DAO, 再到DAS一步步推进的发展史,当区块链技术被应用于社会治理时,我们也就迈进了区块链3.0时代。
假设,构建在一个基于区块链的智能化政务系统,它可以承载存储公民身份信息、管理国民收入、分配社会资源、解决争端等公共事务。在这个系统中,诸如地契、注册企业、结婚登记、健康档案管理等与公民相关的信息得以善保存和处理。当一个婴儿呱呱坠地时,医生将孩子的出生年月等信息上传至区块链公民电子身份系统,系统确认孩子的信息后将分配给孩子一个ID,ID得到政府相关部门的确认后,相关电子身份信息便将伴随孩子的一生,此后,这个孩子的学籍,健康、财产、职称、信用等信息都将与ID挂钩,存储在区块链上。当他离世时,有关他的遗嘱合约将被触发,相关财产分配给他的继承人,在系统上有关他的信息链将不再新增信息。
1.3 区块链技术的起源
要想知道区块链的起源,就不得不提一下拜占庭将军问题。
拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的 。
其场景是:拜占庭帝国的军队有几个师驻扎在城外,每个师都有一个将军指挥。将军之间通过信使沟通。现在要攻击敌城,满足以下规则:
1. 每个将军都可以发出“进攻”或“撤退”的命令;
2. 只有当半数以上的将军发起"进攻”时进攻才会胜利。
遗憾的是,其中有些将军可能是叛徒,会发出错误指令干扰忠诚的将军达成一致的行动计划;更糟糕的是,信使也可能是叛徒,可能篡改伪造消息或使消息丢失。
以三将军问题为例。当三个将军都忠诚时,假设将军A认为应该进攻,向B,C发送进攻命令;B认为应该进攻,向A,C发送进攻;但是C认为应该撤退,向A, B发起撤退的命令。现在进攻:撤退=2:1,发起进攻且成功。
假如C成为了叛徒,则会扰乱正常的作战计划。将军A认为应该进攻,向B,C发送进攻命令;B认为应该撤退,向A,C发送撤退;但是C向A发送进攻的命令, 向B发送撤退的命令。此时A认为进攻:撤退=2:1,B认为进攻:撤退=1:2,A发起进攻而失败。
莱斯利·兰伯特认为,如果存在m个叛将,那么至少需要3m+1个将军,才能最终达到一致的行动方案。
在分布式系统领域, 拜占庭将军问题中的角色与计算机世界的对应关系如下:
将军, 对应计算机节点;忠诚的将军, 对应运行良好的计算机节点;叛变的将军, 被非法控制的计算机节点;信使被杀, 通信故障使得消息丢失;信使被间谍替换, 通信被攻击, 攻击者篡改或伪造信息。如上文所述,拜占庭将军问题提供了对分布式共识问题的一种情景化描述,是分布式系统领域最复杂的模型。此外, 它也为我们理解和分类现有的众多分布式一致性协议和算法提供了框架。现有的分布式一致性协议和算法主要可分为两类:
一类是故障容错算法(Crash Fault Tolerance, CFT), 即非拜占庭容错算法,解决的是分布式系统中存在故障,但不存在恶意攻击的场景下的共识问题。也就是说,在该场景下可能存在消息丢失,消息重复,但不存在消息被篡改或伪造的场景。一般用于局域网场景下的分布式系统,如分布式数据库。属于此类的常见算法有Paxos算法、Raft算法,、ZAB协议等。
一类是拜占庭容错算法,可以解决分布式系统中既存在故障,又存在恶意攻击场景下的共识问题。一般用于互联网场景下的分布式系统,如在数字货币的区块链技术中。属于此类的常见算法有PBFT算法、PoW算法。
具体的算法,如Paxos,Raft,PoW,PBFT等算法将会在后续中学习到。
了解拜占庭将军问题后,人们发现,区块链可以解决拜占庭将军问题。为什么拜占庭将军问题可以被区块链技术很好的解决?同样在后续的学习中这个问题将被解答。
1.4 DAO
DAO(去中心化自治组织)是基于区块链技术,由社区通过透明的决策过程运行和管理的组织形态。
去中心化和基于智能合约的区块链是DAO的两大重要特征。
DAO的好处有:
(1) DAO 是透明的。DAO 智能合约中的代码可以公开审计。不可能实施在传统公司中太常见的欺诈类型。智能合约一旦激活,就无法更改。必须将修改添加为新的智能合约,然后成员投票决定将资金从旧 DAO 合约转移到新合约。此外,一旦智能合约被激活,DAO 的创建者就不会比任何其他利益相关者拥有更多的权力。中央权威是 DAO 的诅咒,DAO 设计有效地赋予了它“扁平”的组织设计。如果您信任代码,则无需信任其他人,您可以在投资前仔细阅读。组织不可能违背利益相关者的利益,有时当 CEO 走自己的路时会发生这种情况。
(2)DAO 降低了管理投资公司等组织的成本。不需要传统组织的大部分行政管理部门;代码会自动处理这些任务。DAO 的任何成员都可以提出提案,无论是新的项目构想、提议的投资还是其他任何东西。然后整个小组考虑该提案并投票该组织是否应该实施该提案并提供资金和资源。
DAO的缺点:
DAO在安全性存在缺陷。由于智能合约的代码是公开可见的,因此黑客更容易提出漏洞利用或发现漏洞。DAO 在部署之前会经过测试,但所有程序都会以一种或另一种形式出现错误。由于所有利益相关者都必须投票接受对代码的任何修改,包括错误修复,因此修复安全漏洞可能需要很长时间。其结果可能是毁灭性的。最臭名昭著的攻击之一是,黑客利用了 The DAO 代码中的一个弱点,并从中榨取了数百万美元的以太坊。扁平结构的组织也不适合所有类型的企业。它可能适用于自由职业者、团体投资者、慈善机构和创意组织(如电影制作公司)的集体。然而,很难看到与 Apple 类似的东西,它非常强调果断的领导力,作为 DAO 工作。
标签:教程,第一篇,DAO,算法,分布式系统,中心化,区块,合约 来源: https://www.cnblogs.com/wsxcode/p/16322434.html