分享百科

智能合约

视频 AI 总结: 该视频主要讲解了以太坊 Pectra 升级中的 EIP-7702 提案,旨在改进钱包的用户体验和安全性。EIP-7702 允许外部账户(EOA)临时拥有智能合约的功能,从而实现更便捷的交易,例如将授权和存款合并为一个步骤,或一次性向多个接收者发送多种代币。虽然这提高了效率,但也存在潜在的安全风险,即恶意合约可能在看似正常的交易中窃取用户的代币。因此,钱包提供商(如 MetaMask)会限制用户可使用的智能合约代码,以降低风险。 关键信息: * EIP-7702 允许 EOA 临时拥有智能合约的功能,实现更便捷的交易。 * 解决了以往 DeFi 交互中需要多次授权和交易的繁琐问题。 * 用户可以将多个交易打包成一个,简化操作流程。 * 存在安全风险,恶意合约可能窃取代币,但钱包提供商会采取措施降低风险。 * 钱包会限制用户可使用的智能合约代码,以降低风险。 * EIP-7702 有望提升用户体验,推动以太坊的普及。
40
0
0
20小时前
视频 AI 总结: 该视频解释了 Solana 开发中的核心概念——程序派生地址(PDAs)。PDA 是一种链上账户,其公钥由确定的输入(程序 ID 和种子)生成,且没有私钥,必须落在 ED25519 曲线之外。这确保只有程序本身可以授权交易,从而实现安全的程序控制账户。视频通过图示详细讲解了 PDA 的生成过程,包括如何使用 SHA-256 哈希函数处理输入数据,以及如何通过引入“bump”值来解决哈希输出可能落在 ED25519 曲线上的问题。 关键信息: * PDA 的定义和作用:程序控制的安全账户,用于授权交易。 * PDA 的生成过程: * 输入数据:程序 ID 和种子(可以是任何类型的数据)。 * SHA-256 哈希函数:将输入数据转换为 32 字节的哈希值(公钥)。 * ED25519 曲线检查:确保公钥不在曲线上。 * Bump 值:如果公钥在曲线上,则添加 bump 值(从 255 递减)到输入数据,重新进行哈希计算,直到生成有效的 PDA。
72
0
0
1天前
视频 AI 总结: 本视频介绍了如何使用 `npx create-solana-dapp` 脚手架快速搭建并部署 Solana 程序,包括后端智能合约和前端界面。视频演示了如何使用预设的计数器模板,连接钱包,与 DevNet 上的程序交互,以及如何在本地环境中部署和测试程序。 关键信息: * 使用 `npx create-solana-dapp` 创建项目脚手架,可以选择不同的前端框架和模板。 * 脚手架包含 Anchor 目录,用于存放智能合约代码(Rust)。 * 可以通过修改 `lib.rs` 文件来定制智能合约的指令。 * 前端代码位于 `src` 目录,与后端指令连接。 * 使用 `pnpm install` 和 `pnpm run dev` 启动本地开发服务器。 * Solana 有多个集群:localhost(本地测试)、DevNet(开发网络)、Testnet(测试网络)和 Mainnet Beta(主网)。 * 使用 `solana test validator` 启动本地验证器。 * 使用 `anchor build` 构建程序,使用 `anchor deploy` 部署程序。 * 需要配置 Solana CLI 连接到正确的集群(localhost 或 DevNet)。 * 在本地环境中,需要先 airdrop 一些 SOL 到钱包才能进行交易。
73
0
0
1天前
视频 AI 总结: 该视频介绍了 Solana 程序,将其比作自动售货机,强调其无中介、预定义规则、自动执行和无需信任的特性。Solana 程序类似于智能合约,部署在链上,可被用户、其他程序或外部应用调用。程序在部署后不可更改,只有在被调用时才执行,并且不存储数据,而是操作传递给它们的外部账户。程序通过指令与账户交互,账户存储数据,程序通过指令修改账户中的数据。 关键信息: * Solana 程序是部署在链上的代码,类似于智能合约。 * Solana 程序具有无中介、预定义规则、自动执行和无需信任的特性。 * 程序部署后不可更改,被调用时才执行,不存储数据,操作外部账户。 * 程序通过指令与账户交互,账户存储数据,程序通过指令修改账户中的数据。 * 程序通常用 Rust 编写,编译为 eBPF 后部署到链上。
75
0
0
1天前
视频 AI 总结: 该视频主要介绍了在 Web3 安全领域赚钱的几种方式,并提供了入门建议。核心内容是 Web3 安全领域存在多种高薪机会,包括加入审计公司、成为自由职业者、参与漏洞赏金计划和审计竞赛。视频强调了学习基础知识、掌握攻击者思维、参与实践项目的重要性,并鼓励观众通过持续学习和实践来提升技能,最终在这个领域获得成功。 关键信息: * 加入审计公司:初级审计员年薪 5 万至 15 万美元,高级审计员可达 200 万美元。推荐公司包括 OpenZeppelin、Trail of Bits 等。 * 成为自由职业者:时薪 50 美元至 1000 美元不等,月收入可达 5000 美元至 5 万美元以上,取决于经验和客户关系。Spearbit 等公司提供自由职业机会。 * 漏洞赏金计划:通过 Immunify 等平台寻找并报告漏洞,可获得赏金,最高可达数百万美元。Sherlock 平台也有高额赏金。 * 审计竞赛:参与 Coderina 和 Sherlock 等平台的竞赛,在项目部署前发现漏洞,分享奖金池。 * 入门建议:学习 Solidity 和 Ethereum 基础知识,掌握智能合约攻击技巧,参与 CTF 挑战,构建个人作品集。
119
0
0
2天前
视频 AI 总结: 该视频主要讲解了以太坊中 ERC-20 标准,以及如何在实际应用中与 Token 和 NFT 进行交互。视频详细解释了 ERC-20 标准的定义、作用,以及如何使用它来表示同质化代币,并介绍了 ERC-20 的关键接口和实现原理。此外,视频还对比了 ETH 和 ERC-20 Token 的区别,并布置了一个关于 Token Bank 的作业,旨在让大家实践合约之间的相互调用和 Token 的使用。 关键信息: * ERC-20 是一种用于表示同质化代币的标准,定义了代币的基本接口,如发行总量、余额查询、转账等。 * ERC 是 EIP(以太坊改进提案)的一个子类,用于定义以太坊网络的应用标准。 * ERC-20 定义了 Token 的标准接口,使得不同的合约可以方便地进行交互。 * ETH 是原生币,余额反映在账户空间下,而 ERC-20 Token 是智能合约实现的,余额保存在合约的 Mapping 中。 * 在合约中,通常使用整数来表示代币数量,需要注意精度问题,例如使用 10 的 18 次方来表示小数点后 18 位的精度。 * ETH 转账和 Token 转账的交易结构不同,Token 转账是与合约进行交互,调用合约中的转账函数。 * OpenZeppelin 已经实现了许多 ERC 标准,可以直接使用或扩展。 * 作业:编写一个 Token Bank 合约,实现 Token 的存储和提取功能,并思考如何解决 Token Bank 如何知道每个用户存了多少 Token 的问题。
29
0
0
3天前
视频 AI 总结: 该视频介绍了 EIP-7702 提案,旨在解决以太坊钱包的痛点,如交易gas费、密钥丢失等问题。EIP-7702 允许普通 EVM 钱包临时获得智能合约的能力,实现交易批量处理、gas 费赞助、社交恢复等功能,而无需用户迁移到新的智能合约钱包。视频还演示了如何在 BearerChain 上使用 EIP-7702 实现 ERC-20 代币的 gas 费赞助,展示了 EOA 账户如何通过智能合约功能,在赞助账户的帮助下完成交易。 关键信息: * EIP-7702 允许 EOA 钱包临时获得智能合约能力,无需迁移。 * EIP-7702 解决了传统以太坊钱包的 gas 费、密钥丢失等问题。 * EIP-7702 支持交易批量处理、gas 费赞助、社交恢复等功能。 * BearerChain 是一个 EVM 兼容的 Layer 1 区块链,支持 EIP-7702。 * 视频演示了在 BearerChain 上使用 EIP-7702 实现 ERC-20 gas 费赞助。 * 演示程序包含合约代码和前端代码,展示了 EOA 账户如何委托智能合约完成交易。
114
0
0
3天前
视频 AI 总结: 该视频主要介绍了 Web3 安全领域顶尖人才的收入情况以及他们如何取得成功的。视频分析了 Trust、Pashov、Christoph Michel 和 Owen Tau 等四位专业人士的职业发展路径和收入来源。他们通过参与审计竞赛、提供安全审计服务、创建自己的安全公司以及为社区做出贡献等方式,在 Web3 安全领域取得了显著成就,年收入可观,甚至达到数百万美元。 关键信息: * Trust 通过审计竞赛和创建 Trust Security 公司,提供多样化的安全服务,年收入高达 460 万美元。 * Pashov 成立 Pashov Audit Group,通过提供审计服务,在 2023 年实现了近 100 万美元的收入。 * Christoph Michel 主要通过参与 Spearbit 和 Cantina 的工作,以及 Cantina Fellowship Program,年收入可达 200 万美元。 * Owen Tau 创立 Guardian Audits,为大型 Web3 协议提供安全审查服务,例如为 GMX 进行了多次安全审查。 * 这些专业人士都乐于回馈社区,通过分享经验、提供课程和参与社区活动等方式,帮助更多人进入 Web3 安全领域。
103
0
0
4天前
视频 AI 总结: 该视频主要介绍了 Katana,一个专为 DeFi 设计的特定领域链,旨在解决 DeFi 领域流动性分散的问题。Katana 拥有链属流动性,鼓励开发者在其核心应用(如 Sushi DEX、Yearn vault 协议、Morpho 借贷协议)之上构建应用,并分享链属流动性的收益。视频还介绍了快速开始在 Katana 上构建应用的工具:starter kit,它包含快捷脚本和代码,可以快速搭建本地可托管的应用,连接到 Katana 测试网的本地克隆,并提供无限资金。此外,还展示了一个利用多个 LLM 协同编写智能合约的工具,通过让 LLM 互相竞争和评论,生成高质量的智能合约。 关键信息: * Katana 是一个为 DeFi 设计的特定领域链,旨在解决流动性分散问题。 * Katana 拥有链属流动性,鼓励开发者在其核心应用之上构建应用。 * starter kit 可以帮助开发者快速搭建本地可托管的应用,连接到 Katana 测试网的本地克隆。 * 可以使用多个 LLM 协同编写智能合约,生成高质量的智能合约。 * Katana 鼓励开发者利用其深度流动性和核心应用,构建创新型 DeFi 应用。
130
0
0
6天前
视频 AI 总结: 该视频主要讲解了Solidity/EVM 中错误处理机制,与其他语言不同,EVM 在遇到错误时会回滚所有之前的状态变更,除非错误被程序处理。Solidity 提供了几种错误处理方式,包括抛出错误让 EVM 回滚,以及使用 try-catch 捕获外部调用产生的错误。 关键信息: * EVM 的错误处理机制具有原子性,要么全部成功,要么全部失败,不会出现中间状态。 * Solidity 中可以使用 `require` 和 `assert` 进行条件检查,条件不满足时会抛出异常。 * `assert` 用于代码不应该到达的状态,而 `require` 用于检查外部条件。 * 抛出错误时可以指定字符串或自定义错误类型,自定义错误类型 Gas 消耗更低。 * `try-catch` 只能用于捕获外部调用产生的错误,不能捕获合约内部的错误。 * `try-catch` 无法捕获 out-of-gas 错误和调用不存在合约的错误。
41
0
0
2025-07-12 10:35
视频 AI 总结: 该视频主要讲解了以太坊智能合约中参数匹配、数据传递、合约组织、错误处理以及接口与实现的关系等问题。首先解释了合约函数参数的传递方式,通过 input data 传递,并按照特定规则(前四个字节为函数签名,后每 32 字节为一个参数)进行解析。然后讨论了合约的组织方式,以及接口和实现的关系,强调了 ABI 编码在合约调用中的作用。最后,详细解释了错误处理机制,包括 revert、require、assert 和 panic 的使用场景和区别。 关键信息: * 合约参数通过 input data 传递,前四个字节为函数签名,后每 32 字节为一个参数。 * 合约可以 import 其他合约,实现代码复用。 * 编译后的字节码和发送的字节码相同,但链上存储的字节码是构造函数执行后的结果。 * 接口和实现之间并非强制继承关系,ABI 编码是合约调用的基础。 * 错误处理机制包括 revert、require、assert 和 panic,assert 用于断言程序本身的错误。
26
0
0
2025-07-12 10:29
视频 AI 总结: 该视频主要讲解了以太坊智能合约中 ABI 编码的概念和使用方法。ABI 编码是应用程序二进制接口,用于描述合约的函数和参数,使得外部应用能够与合约进行交互。视频详细解释了 ABI 编码的结构,包括函数选择器和参数编码,并通过实例演示了如何使用 ABI 编码调用合约函数。此外,视频还对比了使用 ABI 编码进行底层调用和直接调用合约函数的区别,强调了底层调用的灵活性和安全性。 关键信息: * ABI 编码是合约接口的描述,用于外部应用与合约交互。 * ABI 编码包含函数选择器(函数签名的哈希值前 4 字节)和参数编码。 * 可以通过函数签名计算函数选择器。 * Solidity 提供了 ABI 编码的全局函数,可以获取函数选择器。 * 可以使用 ABI 编码进行底层调用,实现更灵活的合约交互。 * 底层调用需要手动处理错误和类型检查,不如直接调用合约函数安全。 * 可以通过合约类型或接口类型调用合约函数,最终都会转化为 ABI 编码调用。
48
0
0
2025-07-12 10:28
视频 AI 总结: 该视频解答了关于以太坊智能合约中 `transfer` 函数转账的问题。核心内容是解释了 `transfer` 函数的运作机制,以及它与区块链上数据状态的关系。`transfer` 函数实际上是在链上执行的,它会修改合约地址和目标地址在区块链上的余额(balance)数据。 关键信息: * `transfer` 函数的转账操作会上链,修改区块链上的账户余额数据。 * 合约地址的余额和变量由合约代码控制,`transfer` 函数通过代码逻辑修改合约地址和目标地址的余额。 * `transfer` 函数修改的是合约地址下的 balance 数据到目标地址下。 * 所有节点都需要验证转账操作的有效性,但验证过程是异步的。 * EOA 地址转账需要私钥签名。
36
0
0
2025-07-09 08:57
视频 AI 总结: 1. **核心内容:** 本视频是 Solidity 编程语言的入门教程,重点讲解了 Solidity 中变量的声明和函数的使用,特别是与其它编程语言不同的特性,如地址类型、合约类型以及回调函数等。强调了在 Solidity 开发中,除了语言语法外,还需要掌握特定领域的知识。 2. **关键信息:** * Solidity 是一种静态编译型高级语言,专门为 EVM 设计。 * 变量分为值类型、引用类型和映射类型。 * 值类型包括布尔型(bool)、整型(int/uint)、地址类型(address)和枚举类型(enum)。 * 地址类型分为 address 和 address payable,payable 类型可以接收 ETH 转账。 * 合约本身也是一种类型,可以用来声明变量。 * 常量(constant)和不可变变量(immutable)在编译时确定值,不占用链上存储。 * 需要关注变量存储空间的大小,因为链上存储成本很高。 * 0.8 版本后的 Solidity 会对整型溢出进行处理,导致交易回滚。 * transfer 和 send 函数转账时,EVM 限制 gas 消耗为 2300。
95
0
0
2025-07-09 08:47
视频 AI 总结: 本视频是一个关于如何使用 HTML 和 JavaScript 构建一个与区块链交互的简单网站的教程。核心内容是创建一个“Buy Me a Coffee”的网站,该网站可以连接到区块链上的智能合约,并允许用户通过 MetaMask 钱包进行交互,包括连接钱包、获取合约余额、购买咖啡(向合约充值)和提取资金。 关键信息: * 使用 HTML 和 JavaScript 构建 Web3 网站的基本框架。 * 通过 MetaMask 等钱包与区块链进行交互。 * 利用 VM 库简化与智能合约的交互,包括读取合约状态和发送交易。 * 使用 Anvil 创建本地区块链环境进行测试,避免在真实网络上花费资金。 * 模拟交易以确保交易成功,减少失败交易的风险。 * 使用 TypeScript 增强代码可读性和可维护性。 * 使用 Vite 打包工具简化 TypeScript 编译和部署流程。 * 强调理解代码的重要性,避免盲目复制 AI 生成的代码,以确保安全。 * 挑战:创建一个按钮,读取智能合约中每个地址的捐赠金额并输出到控制台。
270
0
0
2025-07-05 22:33
登链社区