以太坊部署学习笔记(一)

本文是关于以太坊的学习笔记,涵盖了区块链的三个发展阶段,以太坊在区块链2.0时代作为可编程金融的角色,以及其特点。深入探讨了区块链的协议层,特别是智能合约,强调了以太坊在智能合约执行中的作用。文章还解释了以太坊网络的结构,包括公有链、联盟链和私有链,并介绍了与以太坊交互的方法,如web3.js和MetaMask。此外,文章还涉及了Solidity编程语言,Remix IDE的使用,以及部署智能合约的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

1.区块链与以太坊概述

**
1.1区块链的发展
在这里插入图片描述
1.1.1 V1.0时代(可编程货币)
区块链1.0仅仅是电子货币,可编程货币
在这里插入图片描述

特点:TPS(Transaction per seconde)低,比特币每秒处理7笔交易,基于栈编程,图灵不完备(无循环语句,不能实现复杂的编程)
1.1.2 V2.0时代(可编程金融)
区块链2.0是可编程⾦融,是经济、市场和金融领域的区块链应用,例如股票、债券、期货、贷款、抵押、产权、智能财产和智能合约。
在这里插入图片描述

代表:以太坊(ETH)、小蚁(NEO)、比原(BTM)
特点:处理速度加快,图灵完备(可以⽤代码实现各种复杂的逻辑)
1.1.3V3.0时代(可编程社会)
区块链与社会,区块链与各个行业融合:物联网、存储(IPFS)、游戏、区块链+ ,通证经济代表:柚子(EOS)Enterprise Operation System 、墨客(MOAC)
在这里插入图片描述
特点:处理速度快,可达到商业级别

1.2区块链协议层
在这里插入图片描述
1.2.1 数据层
包括:区块链数据、链式结构、哈希函数、Merkle树、非对称加密、时间戳。
问题:需要突破的就是区块容量的问题。
1.2.2 网络层
P2P 网络、传播机制、验证机制
1.2.3 共识层

  • 共识机制
    共识机制是指可以使所有节点对某一种状态达成一致的形式,有共识机制去中心化才有意义,才具备可信度,否则只是
    数据共享,⽬前主流的共识机制有:POW、POS、DPOS、PBFT
    1.2.4. 激励层
    发⾏机制、分配机制
    token经济,通证经济
    1.2.5. 合约层
  • 智能合约(以太坊课程重点)
    “智能合约”(smart contract)这个术语⾄少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表在自己的网站的几篇文章中提到了智能合约的理念。他的定义如下: “一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。”
    本质:数字化合同。
    特点:代码代替人仲裁和执行合同,同时能够触发支付。
  • 普通合约示例
  • 在这里插入图片描述
  • 智能合约示例
    代码化的合同,去除人的主观因素,一个合约写好以后,就无法再被编辑或者修改。因此,你可以保证无论合约的 内容是什么,它都会无条件执行。
    整个步骤包括: 构建-》存储-》执行
### CTF靶场的定义 CTF(Capture The Flag)靶场是种模拟真实世界网络安全挑战环境的平台。这些平台旨在让参与者在个受控环境中练习并提高自己的信息安全技能[^2]。 CTF靶场提供了各种类型的挑战,包括但不限于Web应用安全、逆向工程、密码学破解以及二进制漏洞挖掘等。通过解决这些问题,参赛者能够获得积分,并最终争夺名次或奖励。对于初学者来说,在线平台上已有的Writeup可以帮助理解如何解决问题;而对于有经验的人来说,则可以通过参与最新的赛事来保持技术水平和竞争力[^1]。 ### CTF靶场的主要用途 #### 技能训练 CTF靶场为个人提供了个实践所学理论知识的机会,尤其是在渗透测试方面。它允许用户在不影响实际系统的前提下探索不同的攻击面和技术细节。 #### 教育目的 教育机构经常使用CTF形式的教学活动来增强学生的学习兴趣,使他们能够在动手实践中掌握复杂的概念。这种方式不仅限于计算机科学领域内的课程教学,也可以应用于其他涉及信息技术的相关学科。 #### 行业交流与发展 企业界也积极支持这类竞赛,方面是为了发掘人才,另方面则是为了促进整个行业的健康发展。许多知名的安全厂商都会赞助重要的国际性CTF比赛,如DEFCON CTF 和 Pwn2Own 等,这有助于推动技术创新和发展新的防御措施[^3]。 ```python # 示例:简单的Python脚本用于自动化某些重复性的CTF任务 import requests def fetch_flag(url): response = requests.get(url) if "flag{" in response.text: start_index = response.text.find("flag{") end_index = response.text[start_index:].find("}") + start_index + 1 flag = response.text[start_index:end_index] print(f"The captured flag is {flag}") else: print("No flag found.") fetch_flag('http://example.com/challenge') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值