区块链入门笔记-摘抄小记

什么是区块链
AWS 定义:
区块链技术是一种高级数据库机制,允许在企业网络中透明地共享信息。
Oracle 定义:
区块链是一种安全共享的去中心化的数据账本。区块链技术支持一组特定的参与方共享数据。借助过区块链云服务,可以轻松收集、集成和共享多个来源的交易数据。数据被细分为多个共享区块,并以加密哈希形式的唯一标识符链接在一起。
IBM 定义:
区块链 是一个共享的、不可篡改的账本,旨在促进业务网络中的交易记录和资产跟踪流程。
知乎相关行业博士后定义:
1、区块链是一个放在非安全环境中的分布式数据库(系统)。
2、区块链采用密码学的方法来保证已有数据不可能被篡改。
3、区块链采用共识算法来对于新增数据达成共识。
具有以上三个性质的系统,就是区块链。
区块链发展历史
区块链技术起源于 1970 年代末,当时一位名为 Ralph Merkle 的计算机科学家申请了哈希树(又名 Merkle 树)的专利。这些树是一种计算机科学结构,通过使用加密将区块链接起来,用于存储数据。在 1990 年代末,Stuart Haber 和 W. Scott Stornetta 使用 Merkle 树实现了无法篡改文档时间戳的系统。这是区块链历史上的首个实例。
2008 年,一个仅知道名字为中本聪 (Satoshi Nakamoto) 的匿名个人或团体,概述了区块链技术的现代形态。中本聪的比特币区块链理念将 1 MB 信息区块用于比特币交易。比特币区块链系统的很多功能,即便是今天也仍处于区块链技术的中心地位。
在第一代加密货币出现后的几年,开发人员开始考虑加密货币以外的区块链应用。例如,以太坊的发明者们决定在资产转让交易中使用区块链技术。他们的重要贡献就是智能合约功能。
区块链有哪些种类
按照建立区块链的方法,可以分为 4 种类型
1、公有区块链网络
公有区块链无需权限,任何人均可加入它们。此类区块链的所有成员享有读取、编辑和验证区块链的平等权限。人们主要将公有区块链用于交换和挖掘加密货币,如比特币、以太坊 (Ethereum) 和莱特币 (Litecoin)。
2、私有区块链网络
一个组织可以控制多个私有区块链,又称为托管式区块链。该机构决定谁能成为成员,以及他们在该网络中拥有哪些权限。私有区块链只是部分去中心化,因为它们具有访问限制。Ripple 就是一个私有区块链的示例,它是一个面向企业的数字货币交换网络。
3、混合区块链网络
混合区块链结合了私有网络和公有网络的元素。公司可随公有系统一起建立私有、基于权限的系统。通过这种方法,公司可以控制对区块链中存储的特定数据的访问,同时保持其余数据处于公开状态。公司使用智能合约允许公有成员检查私有交易是否已经完成。例如,混合区块链可以授予对数字货币的公有访问权限,同时保持银行拥有的货币处于私有状态。
4、联盟区块链网络
联盟区块链网络由一组组织负责监管。多家预先选择的组织共同承担维护区块链及确定数据访问权限的职责。对于其中很多组织拥有共同目标并可通过共担责任而获益的行业,通常更喜欢联盟区块链网络。例如,全球航运业务网络联盟 (Global Shipping Business Network Consortium) 是一个非营利性区块链联盟,该联盟致力于实现航运业数字化,以及加强海运业运营商之间的合作。
区块链有哪些特点
1、去中心化
区块链中的去中心化是指将控制权和决策权从中心化实体(个人、组织或团体)转让给分布式网络。
2、不可篡改
不可篡改是指历史内容不能被更改。一旦某个参与者将交易记录到共享分类账中,则任何参与者均不能篡改该交易。如果某个交易记录包含错误,则您必须添加新交易以修正错误,并且整个网络均可看见这两个交易。
区块链工作原理
第 1 步 – 记录交易
区块链交易显示实体资产或数字资产从区块链网络中的一方向另一方的转移。该交易以区块的形式记录,可能包括如下细节:
- 谁参与了该交易?
- 交易期间发生了什么情况?
- 交易是在何时进行的?
- 交易是在哪里进行的?
- 为什么进行该交易?
- 交换了多少资产?
- 交易期间符合多少前提条件?
第 2 步 – 达成共识
分布式区块链网络中的大多数参与者必须就已记录的交易是有效的达成一致。根据网络类型,达成协议的规则可能有所不同,但通常是在网络开始建立时就制定好的。
第 3 步 – 将区块链接起来
一旦参与者达成了共识,会将区块链中的交易写入区块,区块就相当于分类账账簿中的页面。连同交易一起,还会将一个加密哈希附加到新区块。该哈希作为将区块链接在一起的链条。如果有意或无意修改了区块的内容,则该哈希值也将更改,这将提供一种检测数据篡改的方式。
因此,区块将与链条安全地链接在一起,且您无法编辑它们。每增加一个区块,都会强化前一个区块的验证,因而也会强化整个区块链的验证。
第 4 步 – 共享分类账
该系统会将中心分类账的最新副本分发给所有参与者。
区块链解决了哪些问题
在房地产销售领域。缴纳费用后,卖方将所有权转移给买方。买卖双方均可记录货币交易,但又不能直接相信任一方数据。即便卖方已收款,也可轻松声称未收款;同样,即便买方未付款,也可辩称已付款。
为了避免这些问题,需要一个可信的第三方负责监督和验证交易。这种中央机构的存在,不仅会使交易复杂化,还会造成漏洞。如果中央遭到入侵,双方都有可能蒙受损失。
TODO: 不全,继续补充
区块链相关技术
1、共识算法
共识算法的目的,就是让所有节点对于向区块链新增区块达成共识,也就是说,所有人都要认可新增的区块。对于有中心的系统,中心说什么就是什么,但是放到去中心化系统里,尤其是当有些节点有恶意的时候,就很复杂。
目前按照区块链中加入者是否需要认证,大致可以分为两个流派:
BFT(拜占庭将军算法)
拜占庭帝国国土辽阔,每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战时,军内所有将军和副官必须达成一致共识,决定是否采取行动。但是,内部有可能存有叛徒和间谍,来扰乱判断。这时,在已知有成员谋反的情况下,其余将军如何不受影响下达成一致的协议,这就是拜占庭问题。
具体算法证明流程可以参考: 如何理解拜占庭将军问题? - 知乎
主要用于私有链和联盟链,网络内的节点不能太多,否则计算过于复杂。
工作证明机制
工作量证明机制其实就像一场有奖抢答比赛,假设现在区块链世界有甲、乙、丙、丁四个参赛选手,他们必须挑战相同的数学题目,谁要是最先完成这些题目的计算,并且节目方认为这个算出的答案是对的,那么他就能获得最后的奖杯(记账权)和对应的奖金(完成记账后系统会奖励比特币)。
有人可能会问,假设乙和丁两人同时抢答成功(也就是现在出现了两个同时满足条件的区块),那这该怎么判定?我们把这种情景称为分叉:在以工作量证明为共识机制的区块链系统中,这个问题是这样被解决的:进行加时赛。尽管乙和丁现在难分胜负,但由于他们各自的解题能力是不同的,因此在一段时间过后,总会有一个人的答题数量要超过另一人(即区块链全网有一条更长的链出现),那么他就是最终获得记账权和奖励的人。
而输了的那个人也不会继续答题,因为继续答题也不会有任何奖励。因此获胜者所在的这条链就成为了主链,分叉出来的链就消失了,从而保证区块链数据的唯一性,这就是在工作量证明机制遵循的最长链原则。当然这种情况发生的前提是所有人遵从同样的机制,如果不遵从,分叉还是会继续。
有以下缺点:
1、速度慢是最不能接受的一点,达成共识的的周期过长,处理效率低(比如比特币每秒只能做 7 笔交易),不适合商业应用。
2、算力是计算机硬件(CPU、GPU 等)提供的,要耗费电力,是对能源的直接消耗,与人类追求节能、清洁、环保的理念相悖,浪费大量计算能源,因为同时参与答题挑战(挖矿)最终只能有一个胜出,那么其他参与者这个过程中消耗的计算能源都被浪费了。
3、如果算力集中越来越明显,有一方或者联盟一共控制了超过 51%的算力,如果他们联合起来或者被黑客控制,那么就可能会发生可怕的 51%攻击。
4、容易产生分叉,采用 POW 机制,己经分叉出了多少个币,分叉币见: 什么是软分叉与硬分叉?。
2、隐私保护技术
因此,如何在能够保证隐私的同时还可以享受区块链带来的去中心化优势呢?这需要所有节点能够在不知道数据内容的情况下,还能够对数据的有效性进行验证,例如:在不知道你是谁,具体有多少钱,你想要支出多少钱的情况下,验证你确实有一笔钱可以来完成这笔支出……
这听起来像是天方夜谭,然而,实际上我们有一种密码学工具可以实现它——叫做零知识证明。
这种技术可以保证所有区块链交易方的信息隐私。
3、 智能合约技术
智能合约是存储在区块链系统上的程序,这些程序将在符合预先确定的条件时自动运行并进行检查,以便更好地完成交易。例如,某家物流公司可能拥有一份智能合约,约定一旦商品抵达港口将自动进行付款。
区块链最引人遐想的应用,无疑是以“以太坊”为代表的,用区块链来做一个“全球计算机”,然后,用“智能合约”来编写在这台全球计算机上运行的软件(又被称为 Dapp,即去中心化应用)。简单来说,这个全球计算机的好处在于,你可以把一切想要“去掉中间商赚差价”的事情,全都搬到这上面来做,而不需要依赖于某个大企业作为可信中心,例如银行或者互联网巨头。关于这个问题,可参见: 以太坊与黑盒子