二、Web3 学习(区块链)

news2024/11/13 21:37:50

区块链基础知识

    • 一、基础知识
        • 1. 区块链可以做什么?
        • 2. 区块链的三个特点
    • 二、区块链的类型
        • 概括
        • 1. PoW
        • 2. PoS
        • 3. 私有链和联盟链
    • 三、智能合约
        • 1. 什么是智能合约
        • 2. 如何使用智能合约
    • 四、困境
        • 1. 三难选择的基本要素
        • 2. 这真的是一个三难选择吗?
    • 五、比特币
        • 1. 什么是比特币
        • 2. 比特币白皮书

一、基础知识

想必大家或多或少都听说过这个词汇,本文将着重讲讲区块链的类型,以及关于智能合约、比特币白皮书相关内容,带你入门这个领域!
在这里插入图片描述

1. 区块链可以做什么?
  • 区块链是数据的共享分类账本 - 每个人都可以实时查看正在发生的事情和所有交易。
  • 如果信任可以通过代码设置,那么创作者就不必依赖中间商。
    • 不必通过银行就能获得钱财;
    • 不必信任律师才能起草合同;
    • 不必依赖互联网才能谋生。
2. 区块链的三个特点
  1. 去中心化:交易存储在计算机(节点)网络上。
  2. 不可篡改:事务一旦提交到块就不能更改。
  3. 公开透明:任何人都可以查看交易。

比特币(BTC)使用区块链,因此是去中心化、不可篡改和公开透明的。这也是由于:

  1. 硬上限:永远只有 2100 万比特币。
  2. 单一用途:它只是一种存储价值的数字 Token。

从开发人员的角度来看,这是一个永不宕机的后端。
人们可以通过地址匿名看到大家在做什么。
可以部署产品并使用它来创建一个去中心化的应用程序,而且每个人都拥有他们所创造的东西。

参考地址:
什么是区块链(youtube.com)


二、区块链的类型

更详细内容可参考文章区块链类型:
https://www.gemini.com/cryptopedia/blockchain-types-pow-pos-private

概括

区块链系统的设计差异很大,特别是在用于执行验证网络数据的基本任务的共识机制方面。
最常见的共识机制是工作量证明(PoW)权益证明(PoS) 以及私有链和联盟链使用的方法。
每种设计对底层区块链的安全性、可访问性和可持续性都有不同的影响。

区块链类型 Blockchain Types

  • PoW:工作量证明区块链 Proof-of-Work Blockchains
  • PoS:权益证明区块链 Proof-of-Stake Blockchains
  • 私有链和联盟链 Private and Consortium Blockchains

如今,大多数公共区块链网络都使用称为 工作量证明 (PoW)权益证明 (PoS) 的流程来提供共识,而 私有链(或“许可”)区块链和分布式账本技术 (DLT) 可以通过多种方式构建,以实现共识。
优先考虑速度、安全性和可扩展性。

1. PoW

工作量证明区块链

PoW 共识机制是区块链中使用最广泛的方法之一,最先由比特币普及。
PoW 系统的定义组件是矿工和他们用于验证比特币 (BTC) 交易的计算所消耗的电力。
矿工操作计算机硬件来运行网络节点,这些节点利用计算能力通过算法解决称为工作证明的数学难题。解决难题的矿工首先确认区块链上最新的交易区块。
然后,成功的矿工将新块广播到所有其他节点,这些节点反过来确认其准确性并将该块添加到其区块链副本中,为整个网络构建可验证的数据记录。
这个验证过程代表了共识。只有当该数据得到确认后,才能将新块添加到网络中。
矿工会因为第一个验证新数据块并将其添加到 PoW 区块链而获得新铸造的加密货币,即区块奖励(对于比特币,他们会收到 BTC)。

工作量证明区块链旨在以一致的时间间隔生成区块——例如,比特币大约每十分钟生成一个区块。
PoW 网络的速度和规模受到限制,因为证明工作的过程非常耗能。此外,相对于网络上的计算能力,PoW 网络的编码难度或多或少是困难的。
你可能认为计算能力只是竞争——更多的计算能力等于更多的竞争,这意味着更难的工作证明。
尽管存在速度和可扩展性方面的局限性,PoW 区块链历来提供了更好的安全性,同时保持了有意义的去中心化。
由于 PoW 系统是分布式的,因此恶意行为者通过控制网络上的大部分计算能力来接管区块链的成本极其高昂。硬件、电力和计算成本通常太高而难以克服。

然而,使 PoW 区块链安全的相同功能也使作为节点参与网络的障碍变得很高。
对于普通用户来说,运营挖矿设备并支付相关的硬件和电力成本过于昂贵,而且许多主要网络上的挖矿已被在网络治理中积累了影响力的大型挖矿运营商垄断。
PoW 网络的另一个缺点是它们是能源密集型的,因此会对环境造成破坏。解决工作证明所需的计算能力需要大量的电力。

2. PoS

权益证明区块链

权益证明是第二流行的共识机制,它解决了工作量证明区块链的许多缺点,例如速度慢、可扩展性差、能源消耗效率低以及进入门槛高。
当前行业领先的 PoS 区块链的例子包括 Polkadot、Avalanche 和 Cardano。
以太坊最初被设计为 PoW 区块链,目前正在过渡到称为以太坊 2.0 的 PoS 区块链。

PoS 区块链只是有验证器,而不是由矿工验证交易。验证者是验证数据的网络节点运营商,与 PoW 系统类似,但没有能源密集型计算过程来赢得验证权。
验证者不是致力于解决工作证明,而是 “抵押” 区块链的一些本机代币,以获得有资格选择作为验证者节点的资格。
潜在的验证者本质上将质押区块链原生的加密代币作为抵押品。当需要验证 PoS 区块链上交易块中保存的数据时,系统会随机选择一个验证器来确认数据。
虽然在一定程度上是随机的,但某些变量可以使验证者更有可能被选择,包括验证者质押的代币数量。当区块被确认时,验证者通常会获得网络交易费用的奖励,并且该过程从一个新区块开始。

权益证明区块链通过要求验证者下注他们的令牌来保持网络安全和验证者的诚实。
如果验证者的行为是恶意的或不称职的,他们就会通过一个称为 “削减” 的过程失去他们的股份和对网络的访问权。
这种激励结构确保验证者通过合法操作而不是违反规则获得更多收益。这个一般过程的工作方式有许多不同的变化。

由于 PoS 区块链上的验证者不必投资昂贵的硬件和高昂的电力成本,因此验证者进入 PoS 区块链的障碍可以说是较低的。
但是,如果你希望成为验证者,您仍然必须拥有足够数量的加密货币。
这个数字因区块链而异,但可以达到价值数千美元的代币。PoS 区块链也被批评为富豪,因为验证者对网络的影响力通常与他们的股份大小成正比。

在可持续性方面,PoS 区块链可以说比 PoW 网络更环保,因为它们消耗的电力要少得多。因此,支持者认为未来的区块链项目应该重点关注采用 PoS 共识机制。

委托权益证明 (Delegated Proof of Stake,简称DPoS) 是权益证明概念的一种流行演变,即网络用户选举代表来验证下一个区块。代表也可以被称为证人或区块生产者。使用 DPoS,您通过将您的令牌汇集到一个权益池中并将其链接到特定的代表来投票给代表。支持者表示,与单独的权益证明相比,DPoS 是一种更分散、更平等的达成共识的过程。

3. 私有链和联盟链

Private and Consortium Blockchains

使用 PoW 和 PoS 共识机制的区块链类型通常是公开的和分散的。然而,存在另外两种类型的区块链——联盟区块链和私有区块链。

  • 私有区块链是由中心化实体控制的区块链,中心化实体决定谁可以与区块链交互,验证交易,以及谁可以查看记录在区块链上的信息

  • 联盟区块链是由几个实体控制的分布式账本,每个实体都操作一个网络节点,参与共识,并有权查看某些类型的数据

鉴于这些网络缺乏去中心化,这种类型的区块链技术通常被称为分布式账本技术DLT

私有区块链和联盟区块链通常由旨在采用区块链架构的企业使用,但出于监管或竞争原因,希望确保特定信息保持私有。

像比特币和以太坊这样的公共区块链可以抵抗审查,并为应用程序和平台的开发提供广泛的生态系统。然而,联盟区块链可能提供更快的交易处理时间,并且更容易修改,但它是封闭的花园,在私人联盟之外的使用有限。

ConsenSysQuorum (以前由摩根大通 JPMorgan Chase 拥有) 是以太坊网络的私有许可版本,旨在促进银行间信息共享。联盟区块链目前正在各种行业中开发,包括保险业、食品配送行业、金融服务业,甚至被用于 全球央行数字货币(cbdc) 的原型。

并非所有区块链都是平等的,各种共识机制对可访问性、安全性和可持续性有不同的影响。
同样,并非所有区块链类型都同样适合每个用例。
例如,尽管公共区块链安全且抗审查,但由于其透明度,它们并不适合企业。
虽然自 2009 年比特币问世以来,PoW 一直是标准的共识机制,但 PoS、DPoS 和 DLT 在区块链领域正迅速获得关注。

三、智能合约

参考地址:
什么是智能合约(youtube.com)

1. 什么是智能合约

在1997年,Nick Szabo(一位计算机科学家,法学家,及密码学家) 第一次使用了智能合约的概念,这要远早于比特币的诞生。
简而言之,Nick Szabo 他是想使用一种 分布式账本 来存储合约。

如今,智能合约与现实中的合约是类似的,唯一的区别,就在于智能合约是 完全数字化 的。
事实上,智能合约是一小段计算机程序,存储在区块链中,
举个例子,理解一下智能合约的运作原理:在你可能了解到的一些众筹平台,没人出少量的钱来众筹一件商品,如果支持者的人数占据优势,也就是筹集的资金足够了,那么这个筹集资金的项目得以进行,在其盈利后也会回馈其支持者们。反之未能筹集到足够的资金则项目合约并不生效。

我们可以编写智能合约,使其能够在目标金额达到之前,一直持有接收到的资金,现在,项目的支持者将资金转移到智能合约。如果项目的目标资金可以完全到位,合约将自动把筹得的资金转给项目的创建者,而如果项目没有筹得目标资金,这些钱也将会自动退回给到项目支持者的手中!

由于智能合约是存储于区块链中的,也就意味着所有的这些信息是完全分布式的,这项技术也保证了没有人可以控制的了这笔钱。

现在的问题是,但我们又为什么相信这个智能合约呢?
由于智能合约存储在区块链中,因此就继承了一些有意思的特性:

  • 不可篡改(Immutable)
  • 分布式的(Distributed)

不可篡改,也就意味着一旦创建智能合约,就再也不能被修改了
而分布式,意味着你合约的输出需要经过网络中所有人的验证
所以,某一个人不可能强制让合约释放这些资金,
因为网络中的其他人会发现你的企图,并标记为无效。

当然,智能合约不仅仅可以应用到众筹上,它还可以应用到许多其它的领域
例如:
银行可以拿它来发放贷款或者提供自动支付;
保险公司可以用它来处理特定的理赔;
邮政公司可以把它应用到投递结算 等等

2. 如何使用智能合约

现在已经有一些区块儿链平台可以支持智能合约了,其中最大的一个平台:
以太坊

它在创立之初的定位就是为了来支持智能合约的
智能合约可以用一种叫做 Solidity 的编程语言来进行编写。

这种语言是特意针对以太坊发明的,它的语法类似于 JavaScript

这里插一句,如果你作为前端开发者,相对而言,
Solidity 在语法上就比较友好了,后续的文章中我会更新对该语言的学习

值得一提的是,比特币也支持智能合约,尽管和以太坊相比起来,比特币有更多的限制。

现在,你应该已经知道了智能合约是个什么,以及智能合约可以解决哪些问题了。

四、困境

区块链项目以其愿景和雄心而闻名,但他们优先考虑的内容和他们所知道的内容可能会有所不同。
通常,项目围绕三个核心概念:
去中心化可扩展性安全性

由 Vitalik Buterin 命名的区块链三难困境解决了开发人员在创建可扩展,分散和安全的区块链时面临的挑战——不会在任何方面妥协。

区块链经常被迫做出权衡,阻止它们实现所有三个方面:

  1. 去中心化:创建一个不依赖中央控制点的区块链系统
  2. 可扩展性:区块链系统处理日益增长的交易量的能力
  3. 安全:区块链系统按预期运行的能力,保护自己免受攻击,错误和其他不可预见的问题

虽然一些开发人员认为区块链数据结构本身存在固有的限制,使其无法扩展,但许多架构师认为,有可能构建一个满足所有三个目标的区块链项目:可扩展、去中心化和安全。

1. 三难选择的基本要素

权力下放

去中心化是区块链的核心组成部分。在传统金融中,整个系统是完全集中的。客户将其资产的控制权交给银行,从他们的个人文件到他们的资产本身,由银行全权处理。

比特币和其他早期加密货币提供了一种分散和透明的替代方案,作为货币的发行和存储,而不需要一个集中的实体。

去中心化系统很重要,因为它们赋予了无需许可的所有权,任何人都可以在平台上使用和构建。决策是通过共识做出的,这意味着交易是由一组节点而不是单个节点批准的。

一旦这些交易通过共识验证,它们就不能在事后被更改。因此,风险不会放在一个中心实体上,在进行交易时,信任也不依赖于另一个人。

然而,纯粹去中心化的代价是速度。如果一笔交易在达成共识之前需要多次确认,那么从本质上讲,它将比一笔交易可以由单个实体确认所需的时间更长。众所周知,比特币具有强大的去中心化功能,但与此同时,它的速度也相当慢。

可伸缩性

可伸缩性对于大规模采用非常重要。这是一个区块链系统可以维持多少的问题,以及随着需求的增加,系统是否可以平稳运行。

让我们以专注于可扩展性的区块链项目 EOS 为例。目前,EOS 目前的最大吞吐量据称约为 4000 TPS,即每秒交易数。更重要的是,EOS 白皮书描述了未来EOS 每秒处理数百万笔交易的轨迹。

相比之下,Visa 平均处理 6.3 万份 TPS。如果 EOS 能够实现其可扩展性的承诺,它可以创建一个优于主要国际信用服务的网络。不坏!

但是,正如三难困境所表明的那样,这是一种权衡。EOS 是关注可扩展性可能提供的一个例子,但它因过于集中而受到批评。

安全

作为一种新颖的、有前途的技术,区块链系统的安全性是至关重要的,它希望通过改善现有的基础设施来成名。

随着一系列引人注目的交易所黑客攻击和源代码漏洞被操纵,很明显,许多加密项目选择专注于去中心化和可扩展性,而将安全性抛在后面。

区块链生态系统的所有优点都取决于底层源代码的强度——就像其他任何东西一样,必须仔细检查。

由于源代码的透明性以及成功攻击所带来的潜在利益,区块链已成为黑客的主要目标。

虽然可伸缩性侧重于优点,但安全性防止了缺点——这一点同样重要,但却经常被遗忘。有前途的区块链用例面临着阻碍其增长的挫折,例如臭名昭著的 DAO 攻击,这是源代码安全不当的结果。

2. 这真的是一个三难选择吗?

首先,需要注意的是,三难困境只是一个模型,用于概念化区块链技术面临的各种挑战。
没有法律规定这三个方面不能实现。但到目前为止,许多团队已经研究了不同的方法,试图最大限度地去中心化、可伸缩性和安全性。

CertiK 基金会认为,三难困境实际上可能在金字塔中更好地概念化。基础层是维护其他所有层的基础层:安全性。

没有它,去中心化可能会被破坏,可扩展性可能会短暂。CertiK 基金会正在研究一种建设性的方法:从头开始构建一个经过认证的区块链,即 CertiK 链——通过提供世界上最强大、最安全的区块链,允许开发人员充满信心地编写代码。

安全性将为去中心化和可扩展性的蓬勃发展奠定基础。去中心化是一个需要时间的过程,可扩展性是一个应该不断改进的方面。CertiK 基金会认为,安全是不可妥协的;由完全值得信赖和安全的软件专家建立,CertiK 链优先考虑安全。

区块链世界一直在等待成熟企业全面进入区块链技术,通常认为缺乏可扩展性是主要障碍。虽然缺乏可伸缩性肯定是一个因素,但缺乏可靠的安全性肯定是造成这种不情愿的主要原因。

与创业公司相反,大企业更厌恶风险,因为他们有更多的损失。出于这个原因,企业必须在将新技术纳入其系统之前完全信任它们。CertiK 链将通过提供机器可读的证明来加强信任,这些证明可以独立检查,以实现代码安全性的完全透明。

无论三难困境的形态如何,人们一致认为,任何区块链系统都很难有效地实现去中心化、可扩展性和安全性。区块链技术还处于起步阶段,技术方法只会不断改进。CertiK 链的独特之处在于其安全优先级高于一切;通过建立一个强大的基础层,可能性是无限的。

要了解更多信息并参与 CertiK 连锁店,请访问:https://certik.foundation/

五、比特币

1. 什么是比特币

请访问
www.coinbase.com

未来的金钱
加密货币

2. 比特币白皮书

请访问
bitcoin.org/en

比特币使用点对点技术,在没有中央机构或银行的情况下运作;管理交易和比特币的发行由网络共同完成。
比特币是开源的
它的设计是公开的
没有人拥有或控制比特币
每个人都可以参与。

通过其许多独特的属性,比特币可以实现以前任何支付系统都无法涵盖的令人兴奋的用途。


参考资料:

区块链的类型 https://www.gemini.com/cryptopedia/blockchain-types-pow-pos-private

新人科普 | 读懂区块链共识机制:PoW、PoS、DPoS https://www.panewslab.com/zh/articledetails/ng3xyx07.html

什么是智能合约 https://www.youtube.com/watch?v=ZE2HxTmxfrI

什么是区块链 https://www.youtube.com/watch?v=yubzJw0uiE4

区块链的工作原理简介 https://www.youtube.com/watch?v=SSo_EIwHSd4

区块链 101 视频,第 1 部分 https://www.youtube.com/watch?v=_160oMzblY8&t=23s

区块链101 - 第2部分 - 公钥/私钥和签名 https://www.youtube.com/watch?v=xIDL_akeras

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1535029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PyCaret】使用PyCaret创建机器学习Pipeline进行多分类任务

发现一个好东西,PyCaret机器学习Pipeline,记录一下用其进行多分类任务的使用方法。 1、简介 PyCaret是一个开源的、不用写很多代码的Python机器学习库,可以自动化机器学习工作流程,是一个端到端的机器学习和模型管理工具&#xff…

WPS 按数值大小显示渐变颜色

选中数据 条件格式 > 色阶 > 其他规则 新建格式规则 基于各自值设置所有单元格的格式三色刻度中间值选择 数字、0、白色

新能源汽车充电桩站点烟火AI识别检测算法应用方案

新能源汽车作为现代科技与环保理念的完美结合,其普及和应用本应带给人们更加便捷和绿色的出行体验。然而,近年来新能源汽车充电火灾事故的频发,无疑给这一领域投下了巨大的阴影。这不禁让人深思,为何这一先进的交通工具在充电过程…

机器学习——决策树(四)后剪枝

观前提示:这是本人决策树相关的第四篇博文,前3篇的内容如下: 1、建造训练集的决策树【完成结点类编写和建树过程】 2、用验证集评估模型、选出泛化较好的数据划分方式训练模型 3、预剪枝 读者可根据需要从上方《机器学习》专栏中查阅对应…

如何优化前端项目的 SEO

在当今数字化时代,网站对于企业的重要性不言而喻。然而,一个优秀的网站如果在搜索引擎中排名靠后,将无法吸引到足够的流量和用户。因此,优化前端项目的SEO已经成为了网站拓展业务、提升品牌知名度的必经之路。 响应式设计与移动优…

基于Springboot的闲置图书分享(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的闲置图书分享(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

基于python+vue家政服务系统flask-django-php-nodejs

相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低家政公司的运营人员成本,实现了家政服务的标准化、制度化、程序化的管理,有效地防止了家政服务的随意管理,提高了信息的处理速度和精确度,能够及时、准确地…

基于electron29版本桌面应用app开发例子

基于electron29版本桌面应用app开发例子 htmljsnode.js 开发模式 生成package.json文件: yarn init --yes 或 npm init --yes 运行打包 yarn dev yarn build # electron与electron-builder版本不兼容问题处理办法: 在package.json中scripts中添加 “…

react拖拽react-beautiful-dnd,一维数组,二维数组

写在前边,二维数组可以拖拽,但是不可以编辑拖拽,如果想要实现编辑拖拽,还是需要转换成一维数组。原因是因为插件的官方规定,在拖拽过程中不可以编辑Droppable层的Props。 相关地址: 中文文档地址 react-be…

查看VMWare ESXi 6.5/6.7服务器上 GPU直通的状态

VMWare ESXi 6.5/6.7服务器状态 查看配置参数

LeetCode每日一题——数组串联

数组串联OJ链接:1929. 数组串联 - 力扣(LeetCode) 题目: 思路: 题目说 ans 由两个 nums 数组 串联 形成。那么我们就只需要历遍两次nums数组,将它放在我们的ans数组里。 注意: 题目函数对于我…

为什么3D开发要用三维模型格式转换工具HOOPS Exchange?

在当今数字化时代,3D技术在各个行业中扮演着愈发重要的角色,从产品设计到制造、建筑、医疗保健等领域。然而,由于不同的软件和系统使用不同的3D模型格式,跨平台、跨系统之间的数据交换和共享变得十分复杂。为了解决这一难题&#…

【Godot 3.5控件】用TextureProgress制作血条

说明 本文写自2022年11月13日-14日,内容基于Godot3.5。后续可能会进行向4.2版本的转化。 概述 之前基于ProgressBar创建过血条组件。它主要是基于修改StyleBoxFlat,好处是它几乎可以算是矢量的,体积小,所有东西都是样式信息&am…

小程序云开发实战:通用企业产品信息展示小程序

之前做小程序都是自己搭建数据管理后台,比如我之前做的小程序:一搜就学,就是使用java来做管理后台,小程序做前端展示。但是对于简单的小程序来说,做一套管理后台有点拿大炮打蚊子,所以使用云开发就是不错的…

【MySQL】对数据库的操作以及数据库备份相关操作

👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

开源表单设计器颗粒度级别控制表单的显示条件原理分析

表单渲染中, 有些表单的显示有不同条件, 比如需要上一个表单的开关打开,或者文本内容为 xxxx, 或者需要大于或等于或小于指定值, 或者需要选中某个选项, 或者需满足以上多个条件或在满足多个条件中的一个, 有 n 种场景选择, 这样就需要条件显示配置功能, 来满足多样化需求 预览…

基于python+vue中医学习服务管理系统flask-django-php-nodejs

随着世界经济信息化、全球化的到来和互联网的飞速发展,推动了各行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、动态的、交互友好的、高效的中医学习服务管理系统。当前的信息管理存在工作…

动态QCA|一条通向动态QCA产出的道路

一、动态QCA原理介绍 (一)动态QCA介绍 QCA(Qualitative Comparative Analysis)是一种定性比较分析方法,用于研究中小样本量的数据,旨在探索变量之间的复杂关系。在QCA中,研究者将变量分为二元变…

js中filter处理后端返回表格数据

<template><div><el-table:data"tableData"style"width: 100%"><el-table-column:formatter"tranForm"prop"gender"label"性别"width"180"></el-table-column><el-table-column…

Lombok插件的安装和使用说明

什么是Lombok?? Lombok是一个通过注解以达到减少代码的Java库,如通过注解的方式减少get,set方法,构造方法等。 //普通的实体类public class Student {private Integer id;private Integer age;public Integer getId () {return id;}public void setId (Integer id) {this.id …