区块链教程:实例学习
区块链用于安全地转移物品,如金钱、财产、合同等,而无需银行或政府等第三方中介。一旦数据记录在区块链内部,就很难更改它。
区块链是一种软件协议(就像 SMTP 用于电子邮件一样)。然而,没有互联网,区块链就无法运行。它也被称为元技术,因为它会影响其他技术。它由几个部分组成:一个数据库、一个软件应用程序、一些连接的计算机等。
有时这个术语用于比特币区块链或以太坊区块链,有时则是指其他虚拟货币或数字代币。然而,大多数情况下,它们都在谈论分布式账本。
在这个为初学者准备的区块链教程中,您将学习区块链的基础知识,例如:
- 什么是区块链?
- 区块链不是什么!
- 区块链架构
- 区块链技术如何工作?
- 我们为什么需要区块链?
- 区块链版本
- 区块链变体
- 区块链用例
- 区块链在现实生活中的重要用例
- 比特币加密货币:区块链最受欢迎的应用
- 区块链与共享数据库
- 关于区块链的迷思
- 区块链技术的应用
- 区块链技术的局限性
区块链不是什么!
- 区块链不是比特币,但它是比特币背后的技术
- 比特币是数字代币,而区块链是记录谁拥有这些数字代币的账本
- 没有区块链就不可能有比特币,但没有比特币却可以有区块链。
区块链架构
现在在这个区块链技术教程中,让我们通过了解其各个组成部分来学习区块链架构。
什么是区块?
区块链是包含信息的区块组成的链。存储在区块内部的数据取决于区块链的类型。
例如,一个比特币区块包含有关发送方、接收方以及待转移比特币数量的信息。
比特币区块
链中的第一个区块被称为创世区块。链中的每个新区块都与前一个区块相连。
理解 SHA256 – 哈希
一个区块还有一个哈希值。可以理解为每个区块独一无二的指纹。它标识一个区块及其所有内容,并且总是唯一的,就像指纹一样。所以一旦一个区块被创建,区块内部的任何改变都会导致哈希值改变。
什么是 SHA256 哈希
因此,当您想要检测交叉点的变化时,哈希非常有用。如果一个区块的指纹改变了,它就不再是同一个区块了。
每个区块都有
- 数据
- 哈希值
- 前一个区块的哈希值
考虑以下例子,我们有一个由3个区块组成的链。第一个区块没有前驱。因此,它不包含前一个区块的哈希。区块2包含区块1的哈希。而区块3包含区块2的哈希。
因此,所有区块都包含了前一个区块的哈希值。正是这项技术使区块链如此安全。让我们看看它是如何工作的——
假设一个攻击者能够改变区块2中存在的数据。相应地,该区块的哈希值也会改变。但是区块3仍然包含区块2的旧哈希值。这使得区块3和所有后续区块都无效,因为它们没有前一个区块的正确哈希值。
因此,改变一个区块会很快使所有后续区块都无效。
工作量证明
哈希是防止篡改的绝佳机制,但现在的计算机速度非常快,每秒可以计算数十万个哈希。攻击者在几分钟内就可以篡改一个区块,然后重新计算其他所有区块的哈希,使区块链再次有效。
为了避免这个问题,区块链使用了工作量证明(Proof-of-Work)的概念。这是一种减慢新区块创建速度的机制。
工作量证明是一个计算问题,需要一定的努力才能解决。但是验证计算问题结果所需的时间与解决计算问题本身所需的时间相比非常短。
以比特币为例,计算所需的工作量证明以向链中添加一个新区块大约需要10分钟。考虑到我们的例子,如果一个黑客想要改变区块2中的数据,他需要执行工作量证明(这将花费10分钟),然后才能对区块3和所有后续区块进行更改。
这种机制使得篡改区块变得相当困难,所以即使你篡改了单个区块,你也需要为所有后续区块重新计算工作量证明。因此,哈希和工作量证明机制使区块链变得安全。
分布式 P2P 网络
然而,区块链还有另一种方法来保障自身安全,那就是通过分布式。区块链不使用中央实体来管理链,而是使用一个分布式的点对点网络,并且允许任何人加入。当有人进入这个网络时,他会得到区块链的完整副本。每台计算机被称为一个节点。
让我们看看当任何用户创建一个新区块时会发生什么。这个新区块会被发送到网络上的所有用户。每个节点都需要验证该区块,以确保它没有被篡改。经过完整的检查后,每个节点会将这个区块添加到他们自己的区块链中。
这个网络中的所有这些节点形成一个共识。他们就哪些区块是有效的、哪些是无效的达成一致。网络中的节点会拒绝被篡改的区块。
所以,要成功篡改一个区块链:
- 你需要篡改链上的所有区块
- 为每个区块重做工作量证明
- 控制超过50%的点对点网络。
完成所有这些之后,你篡改的区块才会被其他人接受。这几乎是一项不可能完成的任务。因此,区块链是如此安全。接下来,在这个初学者的区块链开发教程中,我们将学习区块链交易是如何运作的。
区块链技术如何工作?
区块链交易流程
步骤 1) 某人请求一笔交易。该交易可能涉及加密货币、合同、记录或其他信息。
步骤 2) 请求的交易通过节点的帮助广播到一个 P2P 网络。
步骤 3) 节点网络借助已知算法验证交易和用户状态。
步骤 4) 交易完成后,新的区块就会被添加到现有的区块链中。这种方式是永久且不可更改的。
我们为什么需要区块链?
以下是区块链技术变得如此受欢迎的一些原因。
弹性:区块链通常是复制架构。即使系统遭受大规模攻击,链条仍然由大多数节点操作。
时间缩减:在金融行业,区块链可以通过允许更快的交易结算发挥关键作用,因为它不需要冗长的验证、结算和清算过程,因为所有利益相关者之间都有一个单一版本的商定共享账本数据。
可靠性:区块链认证并验证相关方的身份。这消除了重复记录,降低了费率,并加速了交易。
不可更改的交易:通过按时间顺序记录交易,区块链保证了所有操作的不可篡改性,这意味着当任何新区块被添加到账本链中时,它不能被移除或修改。
欺诈预防:共享信息和共识的概念可以防止因欺诈或挪用公款而造成的可能损失。在以物流为基础的行业中,区块链作为一种监控机制,可以降低成本。
安全性:攻击传统数据库是摧毁一个特定目标。借助分布式账本技术,每一方都持有一份原始链的副本,因此即使大量其他节点宕机,系统仍然可以运行。
透明度:对公共区块链的更改对所有人都是公开可见的。这提供了更高的透明度,并且所有交易都是不可变的。
协作 – 允许各方直接相互交易,无需中介第三方。
去中心化:每个节点如何交换区块链信息都有标准规则。这种方法确保所有交易都经过验证,并且所有有效交易都逐一添加。
区块链版本
现在,在这个区块链开发教程中,让我们来了解一下区块链的版本。
区块链版本
区块链 1.0:货币
DLT(分布式账本技术)的实施带来了它的第一个也是最显而易见的应用:加密货币。这使得基于区块链技术的金融交易成为可能。它被用于货币和支付领域。比特币是这一领域最突出的例子。
区块链 2.0:智能合约
新的关键概念是智能合约,即“存在”于区块链中的小型计算机程序。它们是免费的计算机程序,可以自动执行并检查先前定义的条件,如促进、验证或执行。它被用作传统合同的替代品。
区块链 3.0:DApps
DApps 是去中心化应用程序(decentralized application)的缩写。它的后端代码运行在去中心化的点对点网络上。DApp 可以有前端的区块链示例代码和用任何可以调用其后端的语言编写的用户界面,就像传统的应用程序一样。
区块链变体
公共链
在这种类型的区块链中,账本对互联网上的每个人都是可见的。它允许任何人验证并将一个交易区块添加到区块链中。公共网络有激励人们加入的机制,并且可以免费使用。任何人都可以使用公共区块链网络。
私有链
私有区块链存在于单个组织内部。它只允许组织中的特定人员验证和添加交易区块。然而,通常允许互联网上的每个人查看它。
联盟链
在这种区块链变体中,只有一个组织群体可以验证和添加交易。在这里,账本可以是开放的,也可以仅限于特定的群体。联盟区块链用于跨组织。它仅由预先授权的节点控制。
区块链用例
区块链技术广泛应用于不同领域,如下表所示。
行业 | 用途 |
---|---|
市场 |
|
政府部门 |
|
物联网(IOT) |
|
健康 |
|
科学与艺术 |
|
金融与会计 |
|
区块链在现实生活中的重要用例
1.迪拜:智慧城市
2016年,迪拜智能办公室推出了区块链战略。通过这项技术,企业家和开发者将能够与投资者和领先公司建立联系。其目标是实施一个基于区块链的系统,以促进各类产业的发展,使迪拜成为“世界上最幸福的城市”。如果您有兴趣成为一名区块链开发者,可以在如何成为一名区块链开发者了解更多信息,并为开发尖端的基于区块链的系统做出贡献。
2. Incent 客户保留
Incent 是基于区块链技术的 CRaaS(消费者保留即服务)。它是一个忠诚度计划,其基础是为与其相关网络关联的企业生成代币。在这个系统中,区块链代币可以即时交换,并可以存储在用户的手机数字钱包中或通过浏览器访问。
3. 用于人道主义援助的区块链
2017年1月,联合国世界粮食计划署启动了一个名为“人道主义援助”的项目。该项目在巴基斯坦信德省的农村地区展开。通过使用区块链技术,受益人可以收到钱款、食物,并且所有类型的交易都记录在区块链上,以确保该过程的安全性和透明度。
比特币加密货币:区块链最受欢迎的应用
什么是加密货币?
加密货币是一种交换媒介,就像美元等传统货币一样,但它旨在通过某些密码学原理实现的过程来交换数字信息。加密货币是一种数字货币,被归类为替代货币和虚拟货币的一个子集。
加密货币是一种基于数字密码学的无记名票据。在这种加密货币中,货币的持有者拥有所有权。没有其他关于所有者身份的记录。1998年,戴伟(Wei Dai)发表了《B-Money》,一个匿名的、分布式的电子现金系统。
什么是比特币?
比特币于2009年由一个名叫中本聪的神秘人物推出。比特币是一种点对点技术,不受任何中央权威或银行的管辖。目前,发行比特币和管理交易是在网络中集体进行的。它目前是世界上占主导地位的加密货币。它是开源的,并为公众设计,意味着没有人拥有比特币的控制权。事实上,只发行了2100万个比特币。目前,比特币的市值为120亿美元。
任何人都可以使用比特币而无需支付任何手续费。如果您正在处理比特币,发送方和接收方直接交易,无需使用第三方。
区块链和比特币
区块链是比特币背后的技术。比特币是数字代币,而区块链是记录谁拥有这些数字代币的账本。没有区块链就不可能有比特币,但没有比特币却可以有区块链。
其他著名的加密货币
- 以太坊
- 比特币现金
- 瑞波币
- 莱特币
区块链与共享数据库
区块链 vs 共享数据库
参数 | 区块链 | 共享数据库 |
---|---|---|
操作 | 插入 | 创建/读取/更新和删除 |
复制 | 在每个对等节点上完全复制 | 主从模式
多主模式 |
共识 | 大多数对等节点同意交易的结果。 | 在两阶段提交和 Paxos 中持有的分布式交易。 |
验证 | 全局规则在整个区块链系统上强制执行。 | 仅提供局部完整性约束 |
去中介化 | 区块链允许这样做。 | 不允许。 |
保密性 | 完全保密 | 并非完全保密 |
稳健性 | 完全稳健的技术。 | 不完全稳健。 |
关于区块链的迷思
误解 | 现实 |
---|---|
它能解决所有问题 | 不,它只是一个数据库 |
去信任技术 | 它可以转移信任,也可以传播信任 |
安全 | 它关注的是完整性,而不是保密性 |
智能合约总是合法的 | 它只执行某些法律合同的一部分 |
不可变 | 它只提供概率上的不可变性 |
需要浪费电力 | 新兴的区块链是高效的 |
它天生不可扩展 | 新兴的区块链是可扩展的 |
区块链技术的应用
以下是区块链的一些常见应用
- 它用于创建一个安全透明的所有交易的数字账本。
- 它允许你创建一个防篡改的学业成就记录,所有学生和老师都可以访问。
- 它被用来创建一个更高效的证券交易系统。
- 贷款人使用区块链通过智能合约执行抵押贷款
- 使用区块链技术记录房地产交易,可以提供一种更安全、更易于访问的验证和转让所有权的方式。
- 用于在公共账本上保存社会安全号码、出生日期和其他身份信息等数据。
- 区块链技术也用于物流行业,因为它有助于跟踪物品在物流或供应链网络中的移动。
区块链技术的局限性
现在,在这个初学者区块链教程中,我们将了解区块链技术的局限性。
更高的成本:在一个基于供需原则运作的业务中,节点寻求更高的回报来完成交易。
更慢的交易:节点优先处理回报更高的交易,导致交易积压
更小的账本:不可能拥有区块链的完整副本,这可能会影响不可变性、共识等。
交易成本,网络速度:比特币的交易成本在最初几年被吹捧为“几乎免费”之后,现在相当高。
错误风险:只要有人为因素参与,就总有错误的风险。如果区块链作为数据库,所有输入的数据都必须是高质量的。然而,人为干预可以迅速解决错误。
浪费资源:每个运行区块链的节点都必须在整个区块链上保持共识。这提供了非常低的停机时间,并使存储在区块链上的数据永久不可更改。然而,所有这些都是浪费的,因为每个节点都重复一项任务以达成共识。
区块链委员会
区块链委员会为区块链提供认证,这是专为希望在区块链领域发展职业的人设计的。该认证要求对区块链的核心概念有深入的了解。它专注于 Corda、智能合约、Hyperledger、Quorum 应用。
区块链委员会认证有助于在数字营销、医疗保健、供应链等行业工作。该组织提供的培训和认证对各种企业、业务和开发人员都很有用。它促进了区块链技术在集中式和传统工作系统业务中的使用。
以下是区块链委员会提供的证书
- 认证区块链专家
- 认证 Corda 专家
- 认证 Corda 架构师
- 认证区块链开发者
- 认证区块链安全专家
- 认证智能合约开发者
- 认证比特币专家
- 认证以太坊专家
如果你想学习如何创建自己的加密货币,这里有一个免费教程值得一看:如何创建你自己的加密货币?
摘要
- 区块链是包含信息的区块组成的链
- 区块链不是比特币,但它是比特币背后的技术
- 每个区块都包含哈希值。
- 每个区块都有前一个区块的哈希值
- 区块链在添加新区块前需要工作量证明
- 区块链数据库分布在多个对等节点之间,并且不是集中式的。
- 区块链技术具有弹性、去中心化、缩短时间、可靠的特点,并提供不可更改的交易
- 区块链的三个版本是区块链 1.0:货币,区块链 2.0:智能合约和区块链 3.0:DApps
- 区块链有三种不同的变体:1) 公有链 2) 私有链 3) 联盟链
- 成本较高、交易较慢、账本较小、存在错误风险是使用这项技术的一些缺点
- 迪拜——智慧城市、Incent 客户保留以及用于人道主义援助的区块链是区块链在现实生活中的应用案例
- 比特币使用区块链技术,该技术不受任何中央权威或银行的管辖