简单介绍区块链技术

简介:

重要提示:如果你拥有价值超过1000美元的加密货币,那么你肯定应该使用硬件钱包,而不是在交易所保留硬币。 我推荐使用Trezor,你可以直接从他们的网站花费€89购买。

这篇文章是对区块链技术的简单介绍,并假定最少的技术知识。这篇文章试图描述区块链技术是什么而不是为什么我应该关心,这是未来的职位。

这里有几篇对比的简短文章:

你想要使用区块链用在某些地方上吗?一些常见的误解

区块链困惑? 革命与进化

不,区块链不是寻找问题的解决方案

区块链不变性的简单介绍

第1部分 - 执行摘要

人们使用术语“区块链技术”来表示不同的东西,这可能会让人困惑。有时他们谈论的是比特币区块链,有时候是以太坊区块链,有时候是其他虚拟货币或数字代币,有时候是智能合约。大多数情况下,他们都在谈论分布式账本,即跨多台计算机复制的交易列表,而不是存储在中央服务器上。

常见的主题似乎是一个数据存储

  • 通常包含金融交易
  • 几乎实时地多个系统复制
  • 通常存在于对等网络之上
  • 使用密码学数字签名来证明身份,真实性和强制读/写访问权限
  • 可以由某些参与者编写
  • 可以被某些参与者阅读,也可以被更广泛的读者阅读,而且
  • 存在某种机制使其很难改变历史记录,或者至少当有人试图这样做时可以很容易地检测到

我将“区块链技术”视为许多技术的集合,有点像一袋乐高。从袋子里,你可以拿出不同的砖块,并以不同的方式放在一起,创造出不同的结果。

1620我将区块链技术看做一袋乐高或砖块

区块链和普通数据库有什么区别?非常松散的是,区块链系统是一个包含普通数据库和一些软件的软件包,这些软件可以添加新节点,验证新节点是否符合预先约定的规则,侦听并通过网络向相邻节点广播新节点,从而确保所有节点的数据库中有相同的数据。

第2部分 - 比特币下的区块链

比特币区块链生态系统

作为比特币的入门,它可能有助于回顾比特币简单介绍

比特币区块链生态系统实际上是一个相当复杂的系统,因为它具有双重目标:任何人都应该能够写入比特币区块链; 而且不应该有任何集权的权力或控制权。放心,你不需要了解比特币的很多复杂机制。

也就是说,让我们从比特币区块链生态系统开始,然后尝试从比特币位中挑出区块

复制的数据库。  比特币区块链生态系统行为形似复制数据库网络,每个数据库都包含比特币交易的相同历史列表。网络的重要成员被称为验证者或节点,它们传递事务数据(支付)和块数据(添加到分类账)。每个节点独立检查支付数据和传递的数据块。有一些规则可以使网络按预期运行。

比特币的复杂性来自其意识形态。比特币的目标是去中心化,即没有控制中心,而且是相对匿名的。这影响了比特币一直以来的发展。并不是所有的区块链生态系统都需要有相同的机制,特别是如果参与者可以被识别和信任的行为。

以下是比特币如何处理一些决定:

1620

公共vs私有区块链

根据你是否允许任何人写入你的区块链或允许已知的经过审核的参与者写入你的区块链,你所需要的技术有很大差异。在理论上比特币允许任何人写入账本(但在实践中,实际上只有大约20人/组这么做)。

公共链。  账本是两种意义上的“公开”:

  1. 任何人,未经任何节点允许,都可以写入数据
  2. 任何人,未经任何节点允许,都可以阅读数据

通常,当人们谈论公共区块链时,他们指的是任何人都可以写入数据。

因为比特币被设计成“任何人都可以编写”的区块链,参与者没有经过审查就可以在不需要批准的情况下添加到账本中,它所需要的是仲裁差异的方法(没有“老板”来决定)和抵抗袭击的防御机制(如果有财政动机的话,任何人都可能因有罪不罚而行为不端)。这些都给运行区块链增加了成本以及复杂度。

私有链。  相反,“私有”区块链网络是参与者都知道和信任的地方:例如,一个行业组织,或者具体点说雨伞行业的几家公司组成的团体。他们不需要很多机制- 或者说它们被合法合同取代 - “你会因为你签署了这张纸而表现出色。” 这改变了用哪块“砖”解决问题的技术决策。

描述公共/私有区块链的另一种方式是不被允许的参与者/被允许或者匿名的参与者/被识别的参与者。

有关此主题的更多信息,请参阅内部区块链的优缺点分布式账本和区块链之间的区别

第3部分 - 深入了解区块链


警告:这部分内容并不那么简单,因为它详细描述了上述每个术语。我建议喝杯茶。

数据存储:什么是区块链?

区块链只是一个文件。  区块链本身就是一种数据结构。也就是说,数据是如何逻辑地放在一起并存储的。其他数据结构是数据库(行,列,表),文本文件,逗号分隔值(csv),图像,列表等等这些。你可以认为与数据库竞争最为密切的是区块链。

链中的块=书中的页面   为了比喻,一本书是一连串的页面。书中的每个页面都包含:

  • 文字:例如故事
  • 关于书中的信息:在页面的顶部通常有书的标题,有时是章节号或标题; 页面底部通常是页码,告诉你书中的位置。这个'关于数据的数据'被称为元数据。

同样在区块链中,每个区块都有:

  • 该块的内容,比如在比特币中,是比特币交易信息,还有矿工激励奖励(目前是25 BTC)。
  • '头部'包含区块的数据信息。在比特币中,头部包含有关块的一些技术信息,对前一块的引用信息,以及包含在该块中的数据的指纹(哈希或散列)等等。这个哈希对于排序非常重要。(译者注:hash 值在应用中又被称为指纹(fingerprint)、摘要(digest)
1620链中的块指向前一个块,如同书中的页码表示

查看此图表,了解比特币区块链中的数据可视化。

区块链中的块排序

逐页。  通过书籍,可预测的页码可以轻松了解页面的顺序。如果你撕掉了所有的页面并对它们进行了拖拽,那么很容易将它们放回到使故事有意义的正确顺序。

逐块。  通过区块链,每个区块都会引用前一个区块,不是通过'区块号码'引用,而是区块的指纹,这比指定的页码更明智,因为指纹信息本身是由区块内容决定的。

1620对前面块的引用会创建一个块链 - 区块链!

内部一致性。  通过使用指纹而不是时间戳或数字序列,你还可以获得验证数据的好方法。在任何区块链中,你可以使用某些算法自行生成区块指纹。如果指纹与数据一致,并且指纹在链中,则可以确定区块链内部一致。如果任何人想干涉任何数据,他们必须从这一点再次产生所有指纹,区块链看起来会不同。

1620在区块链块内窥视:指纹对块的内容是唯一的。

这意味着如果创建这个指纹很困难或者很慢(请参阅“让坏人变得很糟糕”一节),那么重新编写区块链也很困难或者很慢。

比特币的逻辑是:

  • 难以生成满足比特币区块链规则的指纹
  • 因此,如果有人想重新编写比特币区块链的部分内容,需要很长时间,并且他们必须赶超过其他诚实网络

这就是为什么人们说比特币区块链是不可变的(不能改变)*。

* 这是关于区块链中不变性的一部分。

数据分发:新数据如何传达?

点对点是在网络中分配数据的一种方式。另一种方式是客户端 - 服务器。你可能听说过BitTorrent网络上的文件在用户之间点对点共享,没有中央服务器控制数据。这就是为什么BitTorrent作为网络保持弹性的原因:没有中央服务器可以关闭。

客户端 - 服务器   在办公室环境中,数据通常保存在服务器上,无论你在何处登录,都可以访问数据。服务器保存100%的数据,客户端相信数据是确定的。大多数互联网都是客户端 - 服务器,其中网站在服务器上,你在访问时是客户端。这非常有效,并且是计算中的传统模型。

点对点   在点对点模型中,它更像是一个八卦网络,每个点都有100%的数据(或尽可能接近100%),并且更新共享。点对点网络在某种程度上比客户机 - 服务器效率低,因为数据被多次复制; 每台机器一次更改或添加数据,其他台机器也会更改或添加数据,这都会产生大量数据。但是,每台机器都是独立的。如果某台机器失去与网络其余部分的连接,在某种程度上网络会继续运行。此外,点对点网络更健壮,因为没有中央服务器可以控制,因此关闭点对点网络更困难。

1620左边是客户端/服务器模型,右边是点对点网络模型

点对点模型的问题

点对点模型下,即使所有点都是“可信”点,也可能存在协议或共识问题 - 如果每个点以不同的速度更新并且状态略有不同,你如何确定数据的“真实”或“正确”状态?

更糟糕的是,在一个'不可信'的点对点网络中,你不一定信任任何同伴,你如何确保系统不容易被恶意同伴破坏?

共识:你如何解决冲突?

一个常见的冲突是多个矿工在大致同一时间创建块。因为块需要时间才能在整个网络上共享,哪一个应该算作合法块呢?

例。假设网络上的所有节点都已经同步了它们的区块链,并且它们全部在区块编号80上。如果世界上的三个矿工大致同时创建“区块81”,哪个“区块81”应该被认为是有效的?请记住,每个'Block 81'看起来都会略有不同:它们肯定会包含25 BTC区块奖励的不同付款地址; 并且它们可能包含不同的集合交易。我们称它们为81a,81b,81c。

1620

哪个块应该算作合法的块?

你如何解决这个问题?

最长链规则。  在比特币中,冲突由一条称为“最长链规则”的规则解决。

在上面的例子中,假设你先看到81a,你会假设“Block 81”是有效的。你可以开始构建下一个块,尝试创建82a:

1620第一个块你认为是合法的

然而在几秒钟内,你可能会看到81b。如果你看到这个,你就会留意它。如果以后你看到82b,那么“最长连锁规则”说你应该把更长的'b'链当作有效的(80,81b,82b),忽略更短的链(... 80,81a)。所以你停止尝试创建82a,而是开始尝试创建83b:

1620最长链规则:如果你看到多个块,请将最长链视为合法。

“最长链规则”是比特币区块链生态系统用来解决这些在分布式网络中常见的冲突的规则。

但是,对于更集中或可信的区块链网络,你可以通过使用可信或高级验证程序在这些情况下进行仲裁来做出决定。

有关更多详细信息,请参阅比特币挖掘的简单介绍。

升级:你如何改变规则?

作为一个整体的网络,你必须同意什么样的数据才是有效的,什么不是。使用比特币,交易有技术规则(你是否填写了所有必需的数据字段?格式是否正确等等),并且存在业务规则(你是否尝试花费超过你所拥有的比特币?是否使用过双重支付(译者注:双重支付也叫做双花)?)。

规则改变。 随着时间推移规则也在发生变化,那么网络参与者将如何就变化达成一致?会不会有一半的网络认为一个交易是有效的,另一半是因为逻辑差异而不这么认为的情况?

在一个私人控制网络体系中,这是一个很容易解决的问题:“每个人都必须在7月31日之前升级到新的逻辑”。

然而,在一个公共的,不受控制的网络中,这是一个更具挑战性的问题。

对于比特币有两部分升级。

  1. 建议更改(BIP)。首先,在建议阶段提出改进建议,进行讨论和撰写。提案被称为“BIP” - “ 比特币改善建议 ”。如果它被写入Github上的比特币核心软件,那么它可以成为升级的一部分 - 下一版本的“比特币核心”,是该协议最常见的“参考实现”。
  2. 采纳变化(矿工)。升级可以由节点和块创建者(矿工)下载并运行,但是只有在他们想要的时候才可以(你可以想象,一个改变将采矿奖励从每块25 BTC降低到0 BTC,我们会看到有多少矿工选择运行!)。

如果大多数网络(比特币,大部分是由计算能力决定的)选择运行新版本的软件,那么新式块的创建速度会比少数快,而少数将被迫切换或在“区块链”中变得无关紧要。因此,拥有大量计算能力的矿工对于实施什么有很多“说法”。


写访问:你如何控制谁可以写数据?

在比特币网络中,理论上任何人都可以下载或编写一些软件,并开始验证交易和创建块。只需转到https://bitcoin.org/en/download并运行“比特币核心”软件即可。

你的计算机将充当完整节点,这意味着:

  • 连接到比特币网络
  • 下载区块链
  • 存储区块链
  • 监听交易
  • 验证交易
  • 传递有效的交易
  • 监听块
  • 验证块
  • 传递有效的块
  • 创建块
  • '挖掘'块

该“比特币核心”软件的源代码在Github上发布:https//github.com/bitcoin/bitcoin。如果你非常喜欢,你可以检查代码自行编译并运行,而不是在bitcoin.org上下载预先打包的软件。只要它符合协议你甚至可以编写你自己的代码。

以太坊在这方面的工作方式类似 - 请参阅以太坊简介

无权限  

请注意,你无需注册,登录或申请加入网络。你只需加入即可。与SWIFT网络进行比较,你不仅可以下载某些软件并开始监听SWIFT消息。通过这种方式,有人称比特币“无权限”,而SWIFT将被“许可”。

无权限不是唯一的方法  

你可能希望在可信私有的网络中使用区块链技术。你可能不想公布所有有效交易或区块的规则。你可能想要控制网络规则的更改方式。控制一个值得信赖的私人网络比一个不受信任的类似免费比特币网络更容易。


防守:你如何阻止恶意破坏?

无权限或开放网络存在的问题是他们可能受到任何人的攻击。因此需要有一种使整个网络成为可信赖的方式。

恶意破坏者会做什么不会做什么?

不诚实的矿工会:

  1. 拒绝将有效的交易传递给其他节点
  2. 尝试创建包含或不包含矿工选择的具体交易的块
  3. 尝试创建一个“较长链”的区块,使以前接受的区块成为“孤块”而不是成为主链的一部分

他不会:

  1. 凭空创造比特币*
  2. 从你的帐户中窃取比特币
  3. 以你的名义付款或伪装成你

那是一种解脱。

*他有且只有在他的账本版本才会有这些交易。其他节点会拒绝这一点,这就是为什么跨多个节点确认事务非常重要。

通过交易,不诚实矿工所起的效果非常有限。如果网络的其他部分是诚实的,他们会拒绝来自不诚实矿工的任何无效交易,并且他们会监听到来自其他诚实节点的有效交易,即使不诚实矿工拒绝通过它们。

区块,如果不诚实矿工有足够的创建区块的计算能力(而这正是区块所需要的),他可以通过拒绝将其纳入自己的块耽误你的交易。然而,你的交易仍然会被其他诚实的节点认为是“未经确认的交易”,并且他们会将你的交易信息包含在他们的块中。

更糟糕的是,如果不诚实矿工能够创造网络中的最长链,并且引用“最长链规则”来剔出更短的链块。这会让他放弃一笔交易

你可以这样做:

  1. 使用相同比特币创造两种不同付款方式:一个给在线零售商,另一个给自己(另一个地址由你自己控制)
  2. 只广播支付给零售商的付款信息
  3. 当付款信息被添加到一个诚实的块中时,零售商会向你发货物
  4. 秘密创建一个更长链块,不含有付给零售商的款项,而是付给你自己的款项
  5. 发布这个更长链块。如果其他节点按照“最长链规则”规则运作,那么他们将忽略零售商支付的诚实块,并继续构建你的较长链。含有付款信息的诚实块被说成是“孤块”,它本来的目的将不再存在。
  6. 含有原始付款给零售商信息的块将被视为无效节点,因为这些比特币已经花在了(你的秘密长链)
1620"双花"问题攻击

这被称为“双重支出”,因为相同的比特币花了两次 - 但第二个是成为最终区块链的一部分,第一个最终被拒绝。  你如何让不诚实的矿工挖矿更难?

请记住,这只是区块创建者不被信任的分类帐的问题。

基本上你想让它变得困难,或者让不诚实矿工添加块而付出代价。在比特币中,需要算力昂贵来完成的。计算上的昂贵意味着“需要大量的计算机处理能力”,并转化为财务上的昂贵(因为购买计算机需要成本,然后还要运行和维护)。

计算本身是一种猜测游戏,其中块创建者需要猜测一个数字,当与块数据内容的其余部分进行比较时,结果产生小于特定数目的散列/指纹。这个数字与采矿“难度”有关,而采矿难度又和整个网络的算力相关。加入计算块的计算机越多,越难自行调节。

1620

每2,016块(大约每2周),比特币网络就会根据块的创建速度来调整猜谜游戏的难度。

这个猜谜游戏被称为“工作量证明”。通过发布指纹小于目标号码的区块,证明你已经做了足够的猜测工作以在该时间点满足网络。


激励措施:你如何支付验证者?

交易和块验证是便宜和快速的,除非你选择使它慢而且昂贵(比特币)。

如果你在自己的网络中控制验证器,或者它们是可信的,那么

  • 你不需要增加块和昂贵的代价
  • 因此你可以减少激励他们的需要

你可以使用其他方法,例如“我们将支付人员运行验证程序”或“人员签署运行验证程序和表现的合同”。

由于比特币的“公共”结构,它需要防御歹徒,因此需要使用“工作量证明”来使计算困难增加一个块(参见防御部分)。这增加了采矿成本(设备和运行成本),因此需要激励

就像黄金价格决定了你可以在金矿上花费多少设备一样,比特币的价格决定了采用多少算力来保护网络。价格越高,挖掘越多,歹徒就越需要花费更多破坏网络。

所以,矿工们做了大量的挖矿工作,增加了难度并且提高了对网络攻击的防范。他们根据时间表使用比特币进行奖励,随着区块奖励的减少,交易费用成为矿工热衷的激励。

1620

比特币理想化情况,是块奖励被交易费用取代。

这在理论上都是非常好的,但是你越是关注这个问题,它就越有意思,而且在比特币解决方案中,激励可能不会像预期的那样发挥作用。这是另一篇文章的内容...


结论


了解比特币背景下的区块链很有用,但是你不应该假设所有区块链生态系统都需要比特币机制,例如代币工作量证明,最长链规则等。比特币是第一次尝试分布式公共账本,不受中心节点的控制和管理。以太坊智能合约区块链的下一次迭代。这仍然有很多重大挑战。

另一方面,私人或内部分布式帐本和区块链可以用来解决其他一系列问题。与以往一样,每种解决方案都存在优缺点,你需要针对每个单独的用例分别考虑这些问题。

如果你有具体的能被区块链解决的问题,我会很乐意听到,请联系我。

感谢

感谢David Moskowitz, Tim Swanson, Roberto Capodieci。如有错误、遗漏、简化请归咎于我。



原文发布时间为:2018-03-12
本文作者:Jinjin
本文来源:腾讯云 云+社区,如需转载请联系原作者。

目录
相关文章
|
19天前
|
存储 传感器 监控
未来智能城市中的区块链技术应用
随着城市化进程不断加速,智能城市成为了未来城市发展的主要趋势之一。区块链技术作为一种去中心化、安全可靠的数据传输和存储方式,将在智能城市建设中发挥关键作用。本文将探讨区块链技术在智能城市中的应用场景,并分析其对城市管理、信息共享和安全保障等方面的积极影响。
14 2
|
26天前
|
存储 供应链 区块链
区块链技术在供应链管理中的应用与展望
随着区块链技术的不断发展,其在供应链管理领域的应用愈发广泛。本文将深入探讨区块链技术在供应链管理中的具体应用及未来发展趋势,分析其对供应链透明度、可追溯性和安全性的影响,并展望区块链技术在未来供应链管理中的潜在作用和挑战。
17 0
|
27天前
|
存储 安全 物联网
未来技术纵横谈:区块链、物联网和虚拟现实的革新之路
在科技不断进步的今天,新兴技术正以前所未有的速度改变着我们的生活和工作方式。本文将深入探讨区块链、物联网(IoT)以及虚拟现实(VR)这三项技术的发展趋势与潜在应用场景,揭示它们如何塑造一个更加智能、互联和沉浸式的未来世界。通过对这些技术的综合分析,我们旨在提供一个全面的视角,以理解它们在未来社会结构中的重要性及影响。
24 7
|
28天前
|
存储 人工智能 供应链
区块链技术在供应链管理中的应用
传统的供应链管理系统存在着诸多问题,如信息不对称、数据可信度低等。区块链技术作为一种分布式账本技术,在供应链管理中具有独特优势。本文将探讨区块链技术在供应链管理中的应用,介绍其原理和优势,并分析实际案例以及未来发展趋势。
|
7天前
|
供应链 安全 物联网
未来交织:区块链、物联网和虚拟现实的技术革新与融合应用
【4月更文挑战第13天】 在数字化时代的浪潮中,新兴技术正以前所未有的速度重塑着世界。本文将深入分析区块链技术的去中心化信任机制、物联网(IoT)的智能连接网络,以及虚拟现实(VR)的沉浸式体验如何独立发展并开始交汇融合,共同构建一个更加智能、安全和互动的未来。我们将探讨这些技术的发展趋势,揭示它们在各行各业的潜在应用场景,并讨论它们如何联合起来推动第四次工业革命。
|
7天前
|
供应链 算法 安全
区块链技术的应用与前景展望
区块链技术的应用与前景展望
|
9天前
|
供应链 安全 区块链
区块链技术在供应链管理中的应用及挑战
【4月更文挑战第11天】 随着数字化时代的到来,企业之间的供应链管理日益复杂化,对透明度、安全性和效率的要求也不断提高。区块链技术作为一种分布式账本技术,因其不可篡改性、去中心化以及可追溯性的特点,在供应链管理中展现出了独特的应用价值。本文将探讨区块链技术在供应链领域的具体应用案例,分析其在提高供应链透明度、降低运营成本、增强产品安全等方面的潜在优势,并讨论在实际应用过程中面临的技术挑战和业务实施难题。
|
12天前
|
安全 物联网 区块链
未来技术浪潮:区块链、物联网与虚拟现实的革新融合
【4月更文挑战第8天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。本文将深入探讨这些技术的发展趋势,并分析它们在不同应用场景中的结合点与潜力。区块链技术以其不可篡改性和去中心化特点为数据安全提供了新的解决方案。物联网通过使设备互联互通极大提升了自动化水平,而虚拟现实正改变着人们的交流和体验方式。这三者的融合预示着一个更加智能、互联且沉浸式的未来。
|
12天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第7天】 在数字化浪潮推动下,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正不断重塑我们的工作、生活方式及商业模式。本文将深入探讨这些技术的发展趋势,以及它们如何相互交织,共同构建一个更加智能、互联和沉浸式的未来世界。区块链技术以其不可篡改的数据记录和去中心化特性,为安全性和透明度设立了新标准;物联网通过使设备智能化和网络化,推动了自动化和效率的飞跃;而虚拟现实则在娱乐、教育和医疗等领域开辟了前所未有的交互体验。文章还将剖析这些技术在实际应用中的案例,展示它们如何联合起来推动创新。
11 0
|
14天前
|
存储 安全 物联网
未来技术的融合与创新:区块链、物联网和虚拟现实的新趋势
【4月更文挑战第5天】 随着科技的不断发展,新兴技术如区块链、物联网和虚拟现实等正在逐渐改变我们的生活和工作方式。这些技术不仅在各自的领域取得了显著的进展,而且开始相互融合,为未来的应用提供了无限的可能性。本文将探讨这些新兴技术的发展趋势和应用场景,以及它们如何共同推动技术创新和社会进步。