《深入掌握以太坊核心技术》--01以太坊简介

embedded/2024/9/24 3:49:25/

《深入掌握以太坊核心技术》--01以太坊简介

    • 区块链(公链)发展
    • 以太坊
      • 核心特性
      • 发展阶段
      • 特点
      • 组成部分
      • 重要概念
      • 货币
    • 以太坊和图灵完备
    • 去中心化应用
    • 代币(Token)
    • 名词解释

区块链(公链)发展

  • 区块链 1.0:比特币,简单的记账。
  • 区块链 2.0:以太坊代表的智能合约平台。
  • 区块链 3.0:高性能、大吞吐量、开发者友好、用户友好。

以太坊

以太坊是一个开源的、基于区块链技术的分布式计算平台,它允许开发者构建和部署智能合约以及去中心化应用(DApps)。以太坊于2015年由Vitalik Buterin等人创建,并在区块链领域引起了广泛关注。与比特币等其他加密货币不同,以太坊的主要目标不仅是作为一种数字货币,而且还致力于提供一个更通用的平台,使开发者能够构建各种去中心化应用。

核心特性

  • 智能合约:以太坊引入了智能合约的概念,它是一种能够在区块链上自动执行的可编程合约。通过智能合约,用户可以在不需要第三方信任的情况下进行可验证和可执行的交易。
  • 去中心化应用(DApps):以太坊提供了一个去中心化的计算平台,使开发者能够构建和部署各种去中心化应用,这些应用可以在以太坊网络上运行,而不依赖于任何中心化的服务器。
  • 以太币(Ether):以太坊的原生加密货币被称为以太币(Ether),它是以太坊网络中的燃料,用于支付交易费用和奖励参与网络安全的矿工。
  • 共识算法:以太坊最初采用工作量证明(Proof of Work, PoW)共识算法,现在过渡到更环保和效率更高的权益证明(Proof of Stake, PoS)共识算法。

发展阶段

阶段内容
Frontier阶段以太坊的初始阶段,从2014年以太坊白皮书发布开始,到2015年以太坊主网上线。
Homestead 阶段以太坊的第一个正式版本,于2016年3月发布。Homestead阶段带来了一些改进和修复,以提高以太坊的安全性和稳定性。
Metropolis 阶段Metropolis是以太坊的第二个重要升级,分为两个子阶段:Metropolis Byzantium和Metropolis Constantinople。Metropolis Byzantium于2017年10月上线,引入了一些新特性和改进,包括更高的隐私和安全性。Metropolis Constantinople于2019年2月上线,继续增强以太坊的功能和性能。
Serenity 阶段也称为以太坊2.0,是以太坊的下一个重要升级,旨在实现从基于工作量证明(PoW)到基于权益证明(PoS)的转变,以提高网络的可扩展性和安全性。Serenity阶段包括几个子阶段:Beacon Chain、Shard Chains和eWASM。Beacon Chain于2020年12月启动,标志着以太坊2.0的第一个阶段的开始。

特点

  • 以太坊是“世界计算机”,这代表它是一个开源的、全球分布的计算基础设施。
  • 执行称为智能合约(smart contract)的程序。
  • 使用区块链来同步和存储系统状态以及名为以太币(ether)的加密货币,以计量和约束执行资源成本。
  • 本质是一个基于交易的状态机(transaction-based state machine)。
  • 以太坊平台使开发人员能够构建具有内置经济功能的强大去中心化应用程序(DApp);在持续自我正常运行的同时,它还减少或消除了审查第三方界面和交易对手风险

组成部分

组成详解
P2P网络以太坊在以太坊网络上运行,该网络可在TCP端口30303上寻址,并运行一个名为DEVp2p(实际写作 ÐΞVp2p,拉丁字母 Ð、希腊字母柯西Ξ)的协议。
交易(Transaction)以太坊交易是网络消息,其中包括发送者(sender)、接收者(receiver)、值(value)和数据的有效载荷(payload)。
以太坊虚拟机(EVM)以太坊状态转换由以太坊虚拟机(EVM)处理,这是一个执行字节码(机器语言指令)的基于堆栈的虚拟机。
数据库(Blockchain)以太坊的区块链作为数据库(通常是Google的LevelDB)本地存储在每个节点上,包含序列化后的交易和系统状态。
客户端以太坊由几种可互操作的客户端软件实现,其中最突出的是 Go-Ethereum(Geth)

如图,目前客户端的占比(来源:Ethereum Mainnet Statistics)
在这里插入图片描述

重要概念

● 账户(Account):包含地址、余额和随机数,以及可选的存储和代码对象。
○ 普通账户(EOA):存储和代码均为空
○ 合约账户(Contract):包含存储和代码
● 地址(Address):一般来说,这代表一个EOA或者合约,它可以在区块链上接收或发送交易。更具体地说,它是ECDSA公钥的keccak散列的最右边的160位。
● 交易(Transaction):
○ 可以发送以太币和信息
○ 向合约发送的交易可以调用合约代码,并以信息数据为函数参数
○ 向空用户发送信息,可以自动生成以信息为代码块的合约账户
● gas:以太坊用以执行智能合约的虚拟燃料。以太坊虚拟机使用核算机制来衡量gas的消耗量并限制计算资源的消耗

货币

以太坊的货币单位称为以太(ether),也可以表示为ETH或者符号Ξ(希腊字母柯西)。

发行规则
● 挖矿前(Pre-mine,Genesis):为众筹发行了大约7200万以太币。这些币被称为“矿前”。众筹阶段之后,以太币每年的产量基本稳定,被限制不超过7200万的25%。
● 挖矿产出(Mining)
○ 区块奖励(block reward):每产生一个新区块就会有一笔固定的奖励给矿工,初始是5个以太币,未转为pos时为3个。
○ 叔块奖励(uncle reward):有些区块被挖得稍晚一些,因此不能作为主区块链的组成部分。比特币称这类区块为“孤块”,并且完全舍弃它们。但是,以太币称它们为“叔块”(uncles),并且在之后的区块中,可以引用它们。如果叔块在之后的区块链中作为叔块被引用,每个叔块会为挖矿者产出区块奖励的7/8。这被称之为叔块奖励。
○ 叔块引用奖励(uncle referencing reward):矿工每引用一个叔块,可以得到区块奖励的1/32作为奖励(最多引用两个叔块)
上面这样的一套基于POW的奖励机制,被称为以太坊的“幽灵协议”
● 从PoW转换为PoS后,股权证明机制将使用Casper协议,以太币发行率将大大低于GHOST协议下的发行率

目前以太坊已经不能进行传统意义上的挖矿了,而是进行质押挖矿,以太坊的质押挖矿是指将以太币锁定在以太坊 2.0 网络的验证者合约中,成为验证者并获取奖励的过程。质押者通过质押一定数量的以太币来参与网络的权益证明共识机制,以维护网络的安全性和效率。作为激励,验证者有权获得以太币作为奖励。这种机制旨在提高以太坊网络的安全性和可扩展性,并为参与者提供收益来源。质押挖矿是一种通过将加密资产锁定在区块链网络中,以换取奖励的方式参与网络的共识机制和安全维护。在以太坊中,质押挖矿是指将以太币锁定在以太坊 2.0 Beacon Chain 的验证者合约中,成为验证者并获取奖励的过程。质押者通过质押一定数量的以太币来参与网络的权益证明共识机制,以维护网络的安全性和效率。作为激励,验证者有权获得以太币作为奖励。

以太坊和图灵完备

  • 1936年,英国数学家艾伦·图灵(AlanTuring)创建了一个计算机的数学模型,它由一个控制器、一个读写头和一根无限长的工作带组成。纸带起着存储的作用,被分成一个个的小方格(可以看成磁带);读写头能够读取纸带上的信息,以及将运算结果写进纸带;控制器则负责根据程序对搜集到的信息进行处理。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动纸带。
  • 如果一个系统可以模拟任何图灵机,它就被定义为“图灵完备”(Turing Complete)的。这种系统称为通用图灵机(UTM)。
  • 以太坊能够在称为以太坊虚拟机的状态机中执行存储程序,同时向内存读取和写入数据,使其成为图灵完备系统,因此成为通用图灵机。考虑到有限存储器的限制,以太坊可以计算任何可由任何图灵机计算的算法。
  • 即以太坊中支持循环语句,理论上可以运行“无限循环”的程序,所以可能会出现死循环(这里使用GAS来避免这个可能)。

去中心化应用

  • 基于以太坊可以创建智能合约(Smart Contract)来构建去中心化应用(Decentralized
    Application,简称为DApp)
  • 以太坊的构想是成为 DApps 编程开发的平台
  • DApp至少由以下组成:
    • 区块链上的智能合约
    • Web前端用户界面

代币(Token)

  • 代币(token)也称作通证,本意为“令牌”,代表有所有权的资产、货币、权限等在区块链上的抽象
    • 可替代性通证(fungible token,FT):指的是基于区块链技术发行的,互相可以替代的,可以接近无限拆分的token
    • 非同质通证(non-fungible token,NFT):指的是基于区块链技术发行的,唯一的,不可替代的,大多数情况下不可拆分的token,如加密猫(CryptoKitties)

名词解释

名词详解
EIPEthereum Improvement Proposals,以太坊改进建议。
ERCEthereum Request for Comments,以太坊征求意见。一些EIP被标记为ERC,表示试图定义以太坊使用的特定标准的建议。
EOAExternal Owned Account,外部账户。
Ethash以太坊1.0的工作量证明算法。
HD钱包使用分层确定性(HD protocol)密钥创建和转账协议(BIP32)的钱包。
Keccak256以太坊中使用的密码哈希函数。Keccak256被标准化为SHA-3.
Nonce在密码学中,nonce用于指代只能使用一次的值。以太坊使用两种类型的随机数,账户随机数和PoW随机数。

http://www.ppmy.cn/embedded/42227.html

相关文章

使用 ASM 修改字段类型,解决闪退问题

问题 我的问题是什么? 在桥接类 UnityBridgeActivity 中处理不同 unity 版本调用 mUnityPlayer.destroy(); 闪退问题。 闪退日志如: 闪退日志说在 UnityBridgeActivity中找不到类型为 UnityPlayer 的属性 mUnityPlayer。 我们知道,Android…

【React】 打包扫描出现高风险文件 YUI 版本太低 JSEncrypt

漏洞定位 扫出漏洞的情况,多是在说下面几个工具: jquery js-cookie jsencrypt 参考链接 YUI:2.9.0 (Link) http://www.cvedetails.com/cve/CVE-2012-5883/ 1.于是在打包后的代码中搜索 YUI(不区分大小写,不进行全字匹配&…

Flutter 中的 SnackBar 小部件:全面指南

Flutter 中的 SnackBar 小部件:全面指南 在 Flutter 应用中,用户体验的每个细节都至关重要,包括如何向用户展示信息和反馈。SnackBar 是 Material Design 规范中的一个组件,用于在屏幕底部提供一个简短的消息提示,它不…

预训练BERT

预训练BERT 1.使用字典和分词工具2.数据集操作 1.使用字典和分词工具 2.数据集操作

Qml:qml写个登录

import QtQuick import QtQuick.Controls import QtQuick.Controls.Basic /* 1 核心控件和窗口布局和登录事件处理文本说明:登录系统用户名:username密码: password登录按钮: submit登录事件处理onClicked 2 样式优化、背景渐变、图标自动替换2.1 窗口背…

【EXCEL_VBA_基础知识】11 使用VBA数组

课程来源:王佩丰老师的《王佩丰学VBA视频教程》,如有侵权,请联系删除! 当循环中大量使用需多次计算表达式时,可利用数组简化并提升效率(底层逻辑:只算一次,然后结果暂存&#xff0c…

网络模型-Qinq配置与应用

Qinq配置与应用 通过配置Qinq来实现利用公网提供的VLAN100使企业1互通,利用公网提供的VLAN200使企业2互通不同企业之间互相隔离。并通过在连接其它厂商设备的接口上配置修改0in0外层VLAN Tag的TPID值,来实现与其它厂商设备的互通。 一、创建VLAN #在Swi…

【内存泄漏Bug】registerReceiver Are you missing a call to unregisterReceiver()异常分析及解决

问题描述 开发一款WIFI管理APP,再wifi列表页面注册了广播监听,监听网络变化,页面是常驻内存的,跳转到其他app或者其他页面的时候,此页面存在被系统销毁的可能。 android.app.IntentReceiverLeaked: Activity com.xx.a…