web3基础

admin 2025年3月5日16:56:24评论20 views字数 6195阅读20分39秒阅读模式

区块链的技术简史

2008 年,Satoshi 发布了名为《比特币:一种点对点电子货币系统》的白皮书。虽然在白皮书中没有提到过区块链这个词汇,但是提到了区块这个存储结构。

比特币在技术上是将用户在某一段时间内的数据,存储到名为区块的数据结构中。随着时间的推移,会有更多的区块产生,如果区块按照时间顺序串联起来,也就形成了区块链。

比特币是为了解决现有的金融系统中由于资金管理的不透明或者资金超发等不合规行为所带来的问题而产生的,比特币将每一条数据记录在一个完全透明的公共帐本中,为了激励更多人参与账本的维护,就会发放比特币当作奖励。

比特币设计哲学:系统简单,使用简洁的脚本语言减少了复杂性,使得系统更易于理解、维护和审计。

为了解决图灵完备问题,二〇一三年,以太坊协议推出,智能合约应运而生。智能合约是一种运行在区块链上的自执行协议,能够自动执行和验证合约条款,通俗的解释,智能合约就像一个自动化的 如果……那么…… 的程序,可以在特定条件满足时自动执行预定的操作。

图灵完备 (Turing complete)

计算机科学中的一个术语,通俗地解释,一个系统如果是图灵完备的,就意味着,只要给它足够的时间和资源,它能够执行任何可以通过编程描述的计算任务。

在智能合约中,用户可以实现任何想实现的业务逻辑。

  1. DeFi(Decentralized Finance): 去中心化金融, 指利用区块链技术和智能合约构建的一系列金融服务和产品。
  2. 预言机:将区块链系统外的数据以去中心化的方式写入到智能合约中。
  3. NFT(Non-Fungible Token): 非同质化通证,一项通证编程标准,用语承载业务逻辑。
  4. 跨链:不同的区块链之间的智能合约进行相互操作。

Layer 2(二层网络)

二层网络是指基于某一个区块链网络,开发一个新的协议,新的协议可以积累大量的交易收集并且一次提交给主网,作用是:

  • 提升主网的效率
  • 增加主网的可扩展性
  • 增加更多的功能

区块链设计哲学

去中心化

区块链中的去中心化是一个核心概念,它指的是将数据、资产、交易等的管理和操作分散在一个由多个独立节点(如计算机、服务器等)组成的网络中,而不是集中在单一的中央实体手中。

一、去中心化的定义

去中心化可以理解为权力和控制的分散。在去中心化的区块链网络中,没有单一的控制点或者权威中心,网络的控制权分布在整个系统的参与者手中。每个参与者(节点)都有自己的数据副本,并参与到数据的验证和网络的维护中。

二、去中心化的特点

  1. 分布式存储:区块链使用分布式存储技术,使得整个网络节点的权利与义务相同,系统中数据本质为全网节点共同维护,从而区块链不再依靠于中央处理节点,实现数据的分布式存储、记录与更新。
  2. 透明性:所有的交易和数据都是公开并且透明的,任何人都可以验证和审计。
  3. 安全性:分布式的共识机制增加了篡改网络的难度,因为攻击者需要同时控制大量节点才有可能成功。
  4. 抗审查性:去中心化的网络难以被单一实体控制或关闭,因为没有中心化的弱点。
  5. 故障容错:由于数据和资源在多个节点上分布,去中心化网络在面对单点故障时具有更强的韧性。

三、去中心化的应用实例

  1. 比特币:作为第一个成功的去中心化数字货币,比特币的所有交易都在一个由全世界数以万计的节点组成的网络上进行验证和记录。这些节点通过解决复杂的数学问题来竞争创建新区块,这个过程被称为“挖矿”。每个新区块都包含了一组新的交易,一旦加入区块链,这些交易就几乎不可能被篡改或逆转。
  2. 以太坊:以太坊不仅支持去中心化的货币(Ether 或 ETH),还支持智能合约,这些是运行在区块链上的自执行合约代码。去中心化应用程序(DApps)可以构建在以太坊平台上,无需任何中心化的控制,从而降低了审查和第三方风险。
  3. 去中心化金融(DeFi):DeFi 是一系列金融服务的集合,如借贷、交易、投资等,它们完全运行在区块链上。用户可以直接通过智能合约与这些服务互动,而不需要传统的金融中介,比如银行或经纪公司。

四、去中心化的挑战

尽管去中心化带来了许多优势,但它也面临一些挑战:

  1. 效率问题:去中心化网络通常需要更长的交易确认时间和更高的延迟,这可能会影响系统的整体效率。
  2. 治理难题:在没有中心化权威机构的情况下,如何确保网络的正常运行和治理成为一个重要问题。
  3. 技术门槛:去中心化技术的实现和维护需要较高的技术水平,这可能会限制其广泛应用。

五、混合系统

为了解决去中心化带来的挑战,一些系统采用了去中心化和中心化混合的架构。在这种架构中,系统的一部分功能采用中心化的方式来实现,以提高性能和可管理性;而另一部分功能则采用去中心化的方式来实现,以提高系统的安全性。这种混合系统能够灵活应对复杂多变的网络环境和数据需求。

共识

区块链中的共识是一个核心概念,它指的是在区块链网络中多个节点之间通过一种经过严格审核和运行流程达成合作协议的机制。这种机制保证各个节点相互可认可、达成共识而无需第三方信任,为区块链平台提供了基础技术保障。

一、共识机制的定义与作用

  1. 定义:区块链共识机制是确保区块链安全性和可靠性的重要机制之一,它通过算法和网络节点之间的协议来实现,确保所有节点对于区块链上的数据和交易的一致性,从而防止双重支付和其他恶意行为。

  2. 作用

    • 防止网络中的节点篡改数据或进行其他恶意行为,使区块链更加安全和可靠。
    • 提高区块链的去中心化程度,节点之间不需要信任任何中心化机构。
    • 应用于数字货币、智能合约、供应链管理、医疗记录管理等领域,为这些领域的发展和应用提供了可靠的技术支持。

二、共识机制的工作原理

共识机制的工作原理通常包括以下几个步骤:

  1. 提交交易:用户在区块链网络中提交交易请求,包括交易金额、转账方地址、收款方地址等信息。
  2. 验证交易:节点对交易进行验证,包括验证交易的合法性、余额是否充足等。如果验证成功,节点会将交易广播到整个网络中。
  3. 选择记账节点:不同的共识机制会采用不同的方式来选择记账节点。例如,工作量证明(PoW)算法中需要节点通过计算复杂的哈希函数来竞争记账权;而权益证明(PoS)算法中则根据持有数字货币的数量来选择记账节点。
  4. 生成新区块:记账节点会对交易进行确认并将其打包成一个新的区块,之后将新区块广播到整个网络中。
  5. 更新区块链:一旦新区块被验证和确认,区块链就会被更新,所有节点都会拥有相同的区块链,确保数据的一致性和可靠性。

三、常见的共识机制

  1. 工作量证明(PoW):最早在 Bitcoin 系统中提出来的共识算法,节点通过证明自己的“算力能力”并计算出一个指定要求的哈希值来获得记账的权利。PoW 机制的安全性经过了时间的检验,但大量的算力使用导致能源消耗较大。
  2. 权益证明(PoS):节点通过质押代币的方式获得记账权,具体的打包节点是根据“权重”随机出的。相较于 PoW 算法,PoS 减少大量能源消耗,更加节能环保,同时速度更快。但可能会出现富者愈富的情况,导致更加的中心化趋势。
  3. 权威证明(PoA):会预先选择出一部分节点作为“权威节点”,这些节点通常是特定的、可信的实体。权威节点轮流或根据预定的规则生成新的区块,每个生成的区块都需要得到其他权威节点的验证和确认。PoA 适合需要高交易吞吐量的应用场景,也比较适合于私有链和联盟链。但少量的权威节点必定增加中心化的风险。
  4. 实用拜占庭容错(PBFT):旨在解决分布式系统中的拜占庭将军问题,即在一个可能存在恶意节点的分布式网络中,如何使所有诚实节点达成一致的决策。PBFT 能够容忍最多 (n-1)/3 个拜占庭(恶意或故障)节点,其中 n 是系统的总节点数。PBFT 适用于联盟链和私有链。

此外,还有燃烧证明(POB)、延迟工作量证明(dPoW)、委托权益证明(DPoS)、历史证明(PoH)等多种共识机制。这些机制各有优缺点,适用于不同的应用场景。

四、共识机制面临的挑战与未来发展方向

  1. 挑战

    • 可扩展性:随着区块链网络的发展,如何提高共识机制的处理能力和效率是一个重要问题。
    • 安全性:在存在恶意节点的情况下,如何确保共识机制的安全性和可靠性是一个关键挑战。
    • 公平性:如何确保所有节点在共识机制中获得平等的机会和权益是一个重要议题。
    • 环境友好性:如何减少共识机制对环境的负面影响,特别是能源消耗和碳排放问题,是一个亟待解决的问题。
  2. 未来发展方向

    • 优化和创新共识机制:通过研究和开发新的共识算法和技术,提高共识机制的性能、安全性和公平性。
    • 推动数字化经济发展:共识机制的不断优化和创新将为数字经济的发展提供更加可靠和安全的技术支持。
    • 加强监管和合规性:随着区块链技术的广泛应用,加强对其监管和合规性的要求将越来越高。共识机制需要适应这一趋势,确保在合法合规的前提下运行。

假设有一个或多个节点给公共账本发送虚假数据,整个网络中充斥着虚假的错误信息,所以节点上的大部分资源都用来验证错误信息,即会造成网络拥堵。

女巫攻击 (Sybil Attack) 是指攻击者通过创建多个虚假身份,来操控和破坏网络系统的一种攻击方式。

可以把它想象成一个人伪装成很多人来投票,试图影响投票结果。

在区块链和其他分布式系统中,这种攻击可以用来获取不公平的优势,比如控制多数节点来影响共识过程或干扰网络正常运行。

在比特币网络中,需要解决复杂的数学难题来添加交易,这个过程需要大量计算资源和时间,确保只有具备足够计算能力的人才能参与区块链的维护。提升不诚实节点的作恶成本,增加诚实节点经济激励,让作恶的收益远远小于成本,来保证在区块链网络中个体和个体的交互的诚实。

工作量证明 (Proof of Work)

  • 难题:矿工们需要解决一个复杂的数学问题,这个问题很难解,但一旦解出来,其他人很容易验证解是否正确。

  • 计算力:解这些问题需要大量的计算资源和电力,这意味着矿工们需要投资昂贵的硬件和支付电费。

  • 验证:当一个矿工解出问题并或者一个新块,他会把解和新块广播到整个网络。其他矿工会验证这个解是否正确,如果正确,这个新块就会被添加到区块链中。

  • 奖励:成功解出问题并添加新块的矿工会得到比特币作为奖励,这是他们投入大量资源的汇报。

不可能三角

区块链的不可能三角(Blockchain Trilemma),又称“区块链三难”或“三元悖论”,是指在区块链系统的设计中,很难同时实现去中心化(Decentralization)、安全性(Security)和可扩展性(Scalability)这三个关键特性。以下是对这三个特性的详细分析:

一、去中心化

去中心化是区块链的核心特性之一。在一个去中心化的区块链系统中,没有单一的中心机构或控制点来控制整个网络。每个节点都有平等的权利和义务参与到系统的运行中,例如验证交易、创建区块等。就像比特币网络,全球各地的众多节点都可以参与到比特币的挖矿(在工作量证明机制下)和交易验证过程中,没有一个中央机构能够决定谁可以参与或者控制交易的流程。这种去中心化的设计可以提高系统的抗审查性和容错性,避免单点故障。

拥有所有权的数据就是一种资产,去中心化系统适用于处理数据资产。

二、安全性

区块链的安全性主要体现在数据的完整性、不可篡改以及防止恶意攻击等方面。区块链使用加密技术来确保交易的真实性和数据的安全性。例如,通过哈希函数来保证区块数据的完整性,一旦区块被添加到区块链中,其数据很难被篡改。同时,区块链还通过共识机制(如工作量证明或权益证明)来防止攻击者控制大部分节点从而篡改账本。以工作量证明为例,攻击者需要控制网络中超过 51% 的算力才能成功篡改账本,这在正常情况下是非常困难的。

三、可扩展性

可扩展性是指区块链系统能够高效地处理大量的交易或数据,以满足不断增长的用户需求。随着区块链技术在各个领域的应用,如金融、供应链等,交易数量可能会急剧增加。一个具有良好可扩展性的区块链系统能够快速地处理这些交易,不会出现交易拥堵的情况。例如,在传统的支付系统中,如 Visa 或 Mastercard,每秒可以处理数千笔交易,而早期的区块链系统(如比特币)每秒只能处理几笔交易,这就体现了可扩展性的重要性。

四、不可能三角的制约关系

在实际的区块链系统设计中,这三个特性之间存在着相互制约的关系:

  1. 去中心化程度高的区块链系统通常需要大量的节点参与验证和共识过程。例如,比特币网络中众多的节点都需要对每一笔交易进行验证和达成共识。这种广泛的参与虽然保证了去中心化,但也会导致系统的性能受到限制,因为每个节点都需要处理和传播交易信息,过多的节点参与会使交易处理速度变慢,影响可扩展性。
  2. 确保高度的安全性往往需要更多的资源和复杂的验证机制。例如,在工作量证明机制中,为了防止 51% 攻击,需要足够的算力来保证网络的安全。但这种对算力的依赖和复杂的验证过程会限制交易的处理速度,从而影响可扩展性。
  3. 一些提高可扩展性的方法,如增加区块大小或缩短区块生成时间,可能会带来安全风险,因为这可能会使网络更容易受到攻击,如双花攻击。
  4. 完全去中心化的系统可能会面临安全挑战。例如,在一些去中心化程度极高的区块链系统中,由于节点的准入门槛较低,可能会导致恶意节点更容易混入。而且在没有中心机构协调的情况下,很难快速有效地应对安全威胁。相反,一些相对更集中的区块链系统可能能够更快地响应安全问题,但这又会牺牲一定的去中心化程度。

五、解决方案与未来方向

尽管存在“不可能三角”,但区块链开发者们一直在努力寻找平衡这三个特性的方法:

  1. 采用分层架构:将区块链分为基础层和应用层。基础层专注于保证去中心化和安全性,采用较为稳健的共识机制和加密技术。应用层则可以在基础层的安全保障下,通过一些优化策略来提高可扩展性,比如采用侧链或子链技术,将部分交易转移到侧链或子链上进行处理,减轻主链的负担,从而在一定程度上兼顾可扩展性。
  2. 探索新的共识机制:如权益证明(PoS)及其变体被认为在一定程度上可以缓解不可能三角的困境。PoS 机制通过节点的权益来选择验证者,相比于工作量证明,它可以减少能源消耗,并且在提高可扩展性方面也有一定的潜力。同时,一些混合共识机制,如 DPoS(委托权益证明),通过选举代表节点来验证交易,在保证一定程度的去中心化的同时,也试图提高可扩展性和安全性。

以太坊的智能合约

  1. 去中心化
  2. 数据透明
  3. 不可篡改
  4. 消除交易对手风险

以太坊的账户类型

托管账户
自托管账户
私钥管理
托管方或者第三方网站控制了私钥和资产
用户自己控制私钥和资产
安全性
托管方或者第三方网站对私钥和资产的安全性负责
用户自己对私钥和资产的安全性负责
是否可以恢复
用户丢失了密码,还是有可能恢复
用户丢失了私钥或者助记词,就会永远丢失资产
用户体验
用户不需要区块链知识
用户需要了解区块链知识

区块链中的密码学

哈希函数

将一个任意长度的数据转化为一个固定长度的数据。

哈希函数的特性

  1. 确定性:同样的数据生成的哈希值相同;
  2. 单向高效:计算数据的哈希算法很高效,容易通过计算数据的哈希值,但很难从哈希值反推原始数据。

哈希函数演示网站:https://andersbrownworth.com/blockchain/hash

公钥和私钥

两种类型的密钥:

  • 对称加密 (单个密钥)
  • 非对称加密 (一对密钥)
    • 任何人都可以通过接受者的公钥对信息加密
    • 只有公钥对应的私钥持有人才可以对加密信息进行解密

在区块链中,使用的是非对称加密

电子签名原理

  • 验证
    • 用户通过私钥签名/授权交易 (电子签名)
    • 通过公钥验证电子签名,确保是私钥持有人在发送交易。

原文始发于微信公众号(泷羽Sec-sea):web3基础

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月5日16:56:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   web3基础https://cn-sec.com/archives/3799995.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息