分享百科

合约

视频 AI 总结: 本视频是一个关于如何使用 HTML 和 JavaScript 构建一个与区块链交互的简单网站的教程。核心内容是创建一个“Buy Me a Coffee”的网站,该网站可以连接到区块链上的智能合约,并允许用户通过 MetaMask 钱包进行交互,包括连接钱包、获取合约余额、购买咖啡(向合约充值)和提取资金。 关键信息: * 使用 HTML 和 JavaScript 构建 Web3 网站的基本框架。 * 通过 MetaMask 等钱包与区块链进行交互。 * 利用 VM 库简化与智能合约的交互,包括读取合约状态和发送交易。 * 使用 Anvil 创建本地区块链环境进行测试,避免在真实网络上花费资金。 * 模拟交易以确保交易成功,减少失败交易的风险。 * 使用 TypeScript 增强代码可读性和可维护性。 * 使用 Vite 打包工具简化 TypeScript 编译和部署流程。 * 强调理解代码的重要性,避免盲目复制 AI 生成的代码,以确保安全。 * 挑战:创建一个按钮,读取智能合约中每个地址的捐赠金额并输出到控制台。
33
0
0
1天前
视频 AI 总结: 该视频主要讲解了以太坊中的一些基本概念,包括以太币的单位(ETH、Gwei、Fin、Sub)以及如何在区块链浏览器(如 Etherscan)上查看交易信息。此外,视频还介绍了不同的以太坊网络,包括主网和测试网,以及如何在测试网上领取测试币。最后,视频还对 L2 做了总体总结。 关键信息: * 以太币的单位:ETH(最大单位)、Gwei、Fin、Sub(最小单位)。Gas price 以 Gwei 为单位设置。 * 区块链浏览器:用于查看交易信息,如 input data、from 地址、to 地址、gas 信息等。 * 以太坊网络:主网(有价值的网络)和测试网(如 Sepolia)。测试网可领取测试币。 * 智能合约:在链上运行的程序,编译成字节码后部署到网络上。在 EVM 上执行时根据指令扣费。 * EVM:通过植入虚拟机,扩展了网络的能力。 * Solidity:用于编写合约。
17
0
0
1天前
视频 AI 总结: 该视频主要讲解了以太坊的核心概念,视频回顾了区块链的哈希结构和比特币的局限性,引出以太坊作为可执行程序的区块链平台的优势。重点介绍了以太坊的虚拟机(EVM)如何运行智能合约,以及从 POW 共识机制切换到 POS 质押机制的原因。最后,通过 Remix 在线 IDE 演示了智能合约的编写、编译、部署和执行过程。 关键信息: * 以太坊是一个可以执行程序的区块链网络,弥补了比特币的不足。 * 以太坊的核心是智能合约,它是在网络上运行的程序,可以实现去信任的应用。 * 以太坊使用 POS 共识机制,通过质押资金来保障网络安全,降低能源消耗。 * 以太坊虚拟机(EVM)是运行智能合约的环境,每个节点都内置一个 EVM。 * 智能合约的编写通常使用 Solidity 语言,需要编译成字节码才能在 EVM 上执行。 * Remix 是一个在线 IDE,可以用于编写、编译、部署和执行 Solidity 智能合约。
29
0
0
1天前
视频 AI 总结: 该视频主要讲解了智能合约的形式化验证,强调其作为最高级别的测试手段,能够彻底证明合约在任何情况下的行为符合预期。与单元测试或模糊测试不同,形式化验证通过布尔公式将智能合约代码转换为 SMT 求解器可解释的形式,从而验证特定不变性。视频还介绍了如何使用 Solidity 内置的 SMT 检查器进行形式化验证,并通过实例演示了如何通过添加 require 语句来限制输入范围,从而使断言通过验证。 关键信息: * 形式化验证基于布尔公式,通过 SMT 求解器检查公式的满足性。 * SMT 检查器通过检查布尔公式的否定的不可满足性来验证断言。 * 可以通过 require 语句限制输入范围,使断言通过形式化验证。 * SMT 检查器不仅可以用于断言验证,还可以用于检查溢出、下溢、除零等潜在问题。 * SMT 检查器有其局限性,对于过于复杂的代码可能无法证明。 * 视频还介绍了如何通过提供价值和建立联系来获取审计机会,以及如何通过参加竞赛来展示自己的能力。
74
0
0
3天前
视频 AI 总结: 该视频是关于智能合约审计培训的 mob auditing 会议,重点在于使用 mob auditing 的方法来查找智能合约中的漏洞。视频中,讲师带领学员们对一个 Perpetual Protocol 的智能合约实现进行审计,并逐步讲解了 mob auditing 的流程和技巧,最终学员们成功发现了一些关键漏洞。 关键信息: 1. **Mob Auditing 介绍:** 类似于 pair programming,但规模更大,有多人参与,角色包括驱动者(driver)和指导者(dictator),其他人作为 mob 提供想法。 2. **Mob Auditing 流程:** 驱动者分享屏幕并逐行解释代码,指导者提出问题和 edge cases,mob 成员随时提出潜在的 bug 或漏洞,角色定期轮换。 3. **审计目标:** 理解如何开仓、追踪盈亏、平仓实现利润、实现损失、存入和执行流动性。 4. **发现的漏洞:** * `increasePosition` 函数中缺少对最大杠杆的验证,可能导致用户开设过高杠杆的仓位。 * USDC 黑名单问题,可能导致用户无法提取资金。 * 清算费用计算中的舍入误差,可能导致小额仓位无法收取清算费用。 5. **Fuzzing 和 Invariant Testing:** 介绍了 fuzzing 和 invariant testing 的概念,以及如何在 Foundry 中使用它们来发现智能合约中的漏洞。 6. **Echidna 介绍:** 介绍了 Echidna 这一更高级的模糊测试工具,它能够进行更复杂的 invariant testing,并提供代码覆盖率报告和可重现的测试用例。
81
0
0
3天前
视频 AI 总结: 该视频主要讲解了 ERC-4626 的通货膨胀攻击,OpenZeppelin 如何解决这个问题,以及 AMM 的相关知识,包括 AMM 的数学原理、Uniswap V3 的深度解析,以及与链上 AMM 相关的预言机操纵。视频详细解释了通货膨胀攻击的原理,以及 OpenZeppelin 的实现如何降低攻击的可行性,并提供了调整参数以几乎完全避免该问题的方案。此外,还深入探讨了 AMM 的运作机制,包括常数积公式、流动性提供等,并分析了 Uniswap V3 中范围流动性的概念和实现方式。最后,视频还讨论了预言机操纵攻击,包括攻击方式、防范措施以及 Chainlink 的应用。 关键信息: 1. ERC-4626 通货膨胀攻击的原理和 OpenZeppelin 的解决方案。 2. OpenZeppelin 通过使用虚拟资产和份额来降低通货膨胀攻击的盈利性。 3. AMM 的基本原理,包括常数积公式(x * y = k)和流动性提供。 4. Uniswap V3 的范围流动性概念,以及如何通过调整价格范围来提高资金利用率。 5. 预言机操纵攻击的原理和防范措施,包括时间加权平均价格(TWAP)的应用。 6. Chainlink 作为一种更安全的预言机解决方案。 7. Uniswap V3 中,每个 tick 都遵循一个公式,该公式本质上指出,每个 tick 都对应于必须提高 1.0001 的幂才能获得价格 P 的价格。
68
0
0
3天前
视频 AI 总结: 该视频主要讲解了智能合约的可升级性,并深入探讨了五种常见的升级模式:永恒存储、透明代理、通用可升级代理(UUPS)、信标代理和钻石标准。视频详细分析了每种模式的原理、优缺点以及潜在的安全风险,例如存储冲突和函数选择器冲突。此外,视频还通过实际代码示例,展示了这些升级模式在智能合约中的应用,并讨论了在选择升级模式时需要考虑的关键因素。 视频中提出的关键信息: 1. **五种升级模式:** 永恒存储、透明代理、UUPS、信标代理和钻石标准。 2. **永恒存储:** 将数据存储与逻辑分离,通过逻辑合约操作数据合约。 3. **透明代理:** 使用代理合约将调用委托给实现合约,实现逻辑升级。 4. **UUPS:** 将升级逻辑放在实现合约中,简化代理合约。 5. **信标代理:** 多个代理合约共享一个信标合约,信标合约指向实现合约。 6. **钻石标准:** 将合约功能分解为多个 facet,通过钻石合约路由调用。 7. **存储冲突:** 升级后,新的实现合约可能覆盖旧的存储变量。 8. **函数选择器冲突:** 代理合约和实现合约可能存在相同函数选择器,导致调用错误。 9. **安全风险:** 访问控制不当、升级逻辑错误等可能导致安全漏洞。 10. **gas 效率:** 不同的升级模式在 gas 消耗方面存在差异。
68
0
0
4天前
视频 AI 总结: **核心内容概要:** 该视频主要讲解了以太坊 Solidity 智能合约中常见的两种安全漏洞:舍入误差(Rounding Issues)和签名可延展性(Signature Malleability)。视频深入分析了这两种漏洞的根本原因、常见表现形式,并通过实际案例展示了如何识别和防范这些问题。目的是帮助开发者在进行智能合约安全审计时,能够更好地发现和修复潜在的安全风险。 **关键信息:** * **舍入误差:** * 根本原因是 Solidity 不支持浮点数,除法运算会进行截断(Truncation),导致精度丢失。 * 常见场景包括计算平均价格、分配奖励等,如果未充分考虑精度问题,可能导致资金损失或协议被操纵。 * 解决方法包括使用足够的小数位数、采用向上取整或向下取整策略,并根据具体业务逻辑进行调整。 * **签名可延展性:** * 根本原因是 ECDSA 算法中,对于同一个消息,存在多个有效的签名。 * 攻击者可以利用这一特性,篡改签名中的 `s` 值,生成另一个有效的签名,从而重复执行某些操作。 * 解决方法是限制签名中 `s` 值的范围,只接受小于 `n/2` 的 `s` 值,从而避免签名可延展性攻击。 * **案例分析:** * 视频通过两个具体的漏洞案例,详细展示了舍入误差和签名可延展性在实际项目中的表现形式,以及相应的修复方案。 * **安全审计建议:** * 在进行智能合约安全审计时,需要特别关注除法运算和 ECDSA 签名验证,仔细分析是否存在舍入误差和签名可延展性问题。 * 需要充分考虑各种边界情况和异常输入,确保智能合约的安全性。
71
0
0
4天前
视频 AI 总结: **核心内容概要:** 该视频是关于Web3高级安全主题课程的第二部分,主要讲解Perpetuals、AMM、Oracle操纵、舍入误差等高级安全审计技能。课程旨在帮助智能合约安全研究员和区块链工程师提升技能,快速成为高级安全审计员。视频还介绍了课程资源、任务和社群互动方式,并分享了Guardian Audits在智能合约审计中发现的漏洞案例,旨在帮助学习者建立安全审计的工具箱。 **关键信息:** * **课程内容:** * 深入研究Perpetuals,并将其转化为实际的审计技能。 * 涵盖AMMs、Oracle操纵、舍入误差等主题。 * 讲解升级模式(Upgradability Patterns)及相关漏洞。 * 学生代码走查(Student Code Walks),分析他人代码中的漏洞。 * 高级攻击手段,如ERC 4626通货膨胀攻击。 * 模糊测试(Fuzzing)和形式化验证(Formal Verification)等验证方法。 * 市场策略(Approaching the Marketplace)建议。 * **课程资源:** * 课程中心(Course Hub)提供必要的资源和任务。 * Solidity Lab Discord社群用于交流和提问。 * **审计任务(Mission 3):** * 审计其他团队的代码库,或审计讲师提供的代码库。 * 编写审计报告,包括漏洞发现、修复建议和核心协议不变性。 * 提交模糊测试套件(Fuzzing Suite)和代码覆盖率报告。 * 总结漏洞发现的启发式方法(Heuristics)。 * **漏洞案例:** * Ethernote:不正确的费用结构导致会计不一致。 * Key Finance:奖励复利可被抢先交易(Sandwichable)。 * DOS攻击:无限制的循环导致拒绝服务。 * IDX:交换保证金可用于从AMM中提取资金。 * GMX:无限制的交换路径长度导致气体操纵。 * GMX:列入黑名单的地址可用于阻止清算。
72
0
0
4天前
视频内容 AI 总结: **核心内容概要:** 该视频主要讲解了Perpetuals协议Mission 2的目标和具体内容,包括增加交易者减少仓位、抵押品,以及引入清算功能、借款费用和仓位费用等。视频详细解释了这些功能的实现逻辑,以及可能出现的边界情况和注意事项,旨在为开发者提供清晰的开发指南,并为社区推出Perpetuals协议做准备。同时,视频还深入探讨了EVM(以太坊虚拟机)的存储结构,包括堆栈、内存、调用数据和存储,以及它们在交易执行中的作用,并详细分析了GMX和Safe Transfer Lib中的代码示例,以帮助开发者更好地理解和应用EVM知识。 **关键信息:** * **Mission 2目标:** 增加交易者减少仓位、抵押品的功能,引入清算功能,收取借款费用和仓位费用。 * **清算机制:** 任何人都可以调用清算函数,清算人将获得清算费用,以激励清算。 * **费用:** 引入借款费用(给流动性提供者)和仓位费用(可选)。 * **EVM存储:** 堆栈(临时数据)、内存(临时数据,用于存储结构体)、调用数据(只读数据,用于函数调用)、存储(永久数据,区块链数据库)。 * **Opcodes:** EVM指令,用于操作存储区域的数据。 * **GMX示例:** 分析了GMX代理合约中的汇编代码,展示了如何优化合约以节省gas。 * **Safe Transfer Lib示例:** 分析了Safe Transfer Lib中的汇编代码,展示了如何安全地处理地址和避免脏数据。 * **Calldata:** 深入分析了Calldata的结构,包括静态数据和动态数据的编码方式,以及如何解析复杂的Calldata结构。 * **内存安全:** 讨论了内存安全的重要性,以及如何避免覆盖已分配的内存和保持零槽的零值。
83
0
0
4天前
视频总结: **核心内容概要:** 该视频主要讲解了如何撰写一份出色的漏洞报告,强调了报告的重要性,不仅能赢得比赛,更能说服项目方修复漏洞。视频详细介绍了优秀报告的组成部分,包括清晰的根本原因、明确的影响、简洁的表达,以及提供代码或概念验证。视频还通过一个实际的例子,展示了如何针对一个简单的 gas 优化问题撰写一份高质量的报告,并分享了学习优秀报告的资源。 **关键信息:** * **漏洞报告的重要性:** 赢得比赛、获得奖励,最重要的是说服项目方修复漏洞。 * **优秀报告的组成部分:** * 清晰的根本原因(Root Cause) * 明确的影响(Impact) * 简洁的表达(Succinct) * 提供代码或概念验证(Proof of Concept/Code) * **撰写报告的步骤:** * 撰写引人注目的标题(Root Cause + Impact) * 选择合适的严重程度(Severity) * 添加相关代码链接(GitHub Links) * 撰写简洁的摘要(Summary) * 详细描述漏洞细节(Vulnerability Details) * 说明漏洞的影响,并提供代码或概念验证(Impact) * 列出使用的工具(Tools Used) * 给出清晰的修复建议(Recommendations) * **学习优秀报告的资源:** * Solid it 平台:搜索和学习其他团队的报告。 * Code Hawks 平台的 Beetle 竞赛报告:学习 Defi 领域的常见问题。 * **代码审计实战:** * 确定审计目标:理解如何铸造代币、抵押品如何运作、清算机制等。 * 代码分析:识别潜在问题,如循环中的 gas 消耗、价格操纵等。 * 问题记录:记录审计过程中的发现和思考。 * **代码走查(Code Walk):** * 代码走查是一种交互式的代码审查方法,通过讲解代码库的设计和功能,促进代码理解和问题发现。 * 参与者分为讲解者(Walker)和审查者(Reviewer),讲解者负责解释代码,审查者负责提问和提出建议。 * 代码走查有助于提高代码沟通能力、发现潜在问题、加深对代码库的理解。
94
0
0
4天前
视频总结: **核心内容:** 该视频是Web3安全高级培训课程的第一部分,旨在帮助有一定基础的安全研究人员提升技能,成为高级审计员。课程内容涵盖了智能合约安全的基础知识、高级DeFi概念、常见的攻击模式以及审计技巧。 **关键论据/信息:** * **课程结构:** 课程分为两部分,第一部分包含超过20小时的Web3安全培训,包括三个任务和两个小任务。鼓励学员组队完成任务,并在Discord社区进行协作。 * **核心主题:** 课程涵盖了智能合约设计原则、外部调用攻击向量、重入漏洞、智能合约测试原则、永续合约、抢跑交易、三明治攻击、审计技巧、EVM基础知识等。 * **实战任务:** 课程包含实战任务,例如构建永续合约协议,旨在帮助学员深入理解DeFi概念和开发者的常见问题。 * **审计技巧:** 课程强调了审计方法,包括代码审查、漏洞分析和报告撰写。 * **EVM精通:** 课程深入讲解了EVM的内存管理、调用数据等底层概念。 * **强调实践:** 课程鼓励学员完成作业,并提供Discord社区进行协作和讨论。 * **Gateway计划:** 视频发布者同时宣布推出Gateway训练营,为初级安全研究人员提供更深入的实践指导。 * **Less Code原则:** 强调代码简洁的重要性,指出代码量与漏洞数量呈指数关系,并建议精简存储变量。 * **避免循环:** 强调避免在智能合约中使用循环,以防止DoS攻击。 * **限制输入:** 强调对用户输入进行严格验证,防止恶意输入导致意外行为。 * **处理所有情况:** 强调考虑所有可能的情况,包括稳定币脱钩、资不抵债的清算等。 * **避免并行数据结构:** 强调避免使用并行数据结构,以防止数据不一致。 * **外部调用安全:** 强调外部调用的风险,包括重入、DoS攻击、返回值处理和gas限制。 * **后置检查:** 强调在交易完成后进行后置检查,以确保状态一致性。 * **代码覆盖率的局限性:** 强调100%代码覆盖率并不意味着没有漏洞,需要关注边缘情况。 * **Fuzzing测试:** 强调Fuzzing测试的重要性,可以发现手动分析难以发现的漏洞。 * **Echidna工具:** 介绍了Echidna工具,可以进行Fuzzing测试,并生成代码覆盖率报告。 * **路径依赖测试:** 介绍了路径依赖测试,可以发现由于交易顺序不同而产生的漏洞。 * **重入漏洞:** 介绍了四种重入漏洞,包括经典重入、跨函数重入、跨合约重入和只读重入。 * **抢跑交易攻击:** 介绍了抢跑交易攻击,以及如何通过设置滑点保护来防止攻击。 * **三明治攻击:** 介绍了三明治攻击,以及如何通过设置滑点保护来防止攻击。 * **代码示例:** 提供了大量的代码示例,帮助学员理解各种概念和攻击模式。 * **审计流程:** 介绍了审计流程,包括识别外部调用、分析状态变量和评估风险。 * **代码风格:** 介绍了代码风格,包括使用自定义错误、使用YUL等。 * **文档:** 强调了文档的重要性,包括协议总结、协议组件和组件交互流程。 * **持续学习:** 强调持续学习的重要性,并提供了学习资源,例如CodeHawks和Solidity Lab。
136
0
0
5天前
该视频主要介绍了预测市场,并探讨了其在区块链上的应用。核心观点是:预测市场类似于股票市场,但交易的不是股票,而是未来事件的结果。通过人们对事件结果的预测进行交易,可以反映出对该事件发生的概率的共识。 视频中提出的关键论据和信息包括: * **预测市场的运作方式:** 用户可以购买代表事件不同结果的“份额”(例如,是/否)。份额的价格会根据供需关系波动,反映了市场对该结果发生的概率的估计。所有结果的份额价格总和始终为1美元(或其他预定值)。 * **预测市场的关键组成部分:** 包括交易的代币、交易机制(例如,订单簿或自动做市商AMM)以及预言机(Oracles),预言机负责将链下真实世界的数据引入链上。 * **预测市场参与者:** 用户(交易预测结果)、流动性提供者(提供交易所需的资金)和预言机(提供真实世界的数据)。 * **流动性提供者的作用和盈利方式:** 流动性提供者通过提供资金来促进交易,并可以通过交易费用或对结果的准确预测来获利。 * **挑战:** 视频提到了预测市场面临的挑战,例如如何确保预言机提供的数据的准确性,以及如何吸引足够多的参与者,特别是对于专业性较强的问题。 * **未来展望:** 视频提出,人工智能代理(AI agents)可以参与到预测市场中,通过分析大量数据来做出更准确的预测,从而解决专业性问题参与者不足的问题,并最终实现“预测的谷歌”。 * **SpeedArrayFim挑战:** 视频介绍了SpeedArrayFim挑战,旨在帮助开发者了解预测市场的基本概念,并鼓励他们进行创新。 * **法律问题:** 视频简要提及了与预测市场相关的法律问题,尤其是在涉及金钱和赌博的情况下。
73
0
0
2025-06-28 21:04
该视频的核心内容是介绍一个基于 Scaffold-ETH 的、即将推出的关于超额抵押稳定币的挑战。Kevin Jones 讲解了稳定币的概念,特别是超额抵押稳定币的机制,以及如何使用 Scaffold-ETH 来构建和模拟这种系统。 视频的关键论据和信息包括: * **稳定币的类型:** 区分了法币抵押、算法稳定币和超额抵押稳定币,并重点关注超额抵押稳定币。 * **超额抵押机制:** 为了铸造新的稳定币(MyUSD),用户需要抵押一定比例的资产(如 ETH)作为担保。 * **预言机(Oracle):** 智能合约需要预言机来获取 ETH 的价格信息,以便计算抵押率。 * **DEX(去中心化交易所):** 使用一个简易的 DEX 来进行自动做市。 * **关键合约:** 介绍了三个关键合约: * **Staking 合约:** 用于用户质押代币并获得收益。 * **Engine 合约:** 负责控制稳定币的铸造和销毁,以及处理抵押物。 * **稳定币合约:** 实现了 ERC20 标准,但限制了只有 Engine 合约才能铸造和销毁代币。 * **Scaffold-ETH 模拟:** 使用 Scaffold-ETH 搭建了一个前端界面,并使用模拟脚本来模拟多个用户参与借贷和质押的过程。 * **利率调整:** 通过调整借款利率和存款利率来控制稳定币的价格,使其保持稳定。当稳定币价格过高时,降低存款利率;价格过低时,提高借款利率。 * **清算机制:** 当用户的抵押率低于一定阈值时,其抵押物将被清算,以保证系统的偿付能力。 总而言之,该视频旨在让开发者了解超额抵押稳定币的原理和实现方式,并为即将到来的 Scaffold-ETH 挑战做好准备。
184
0
0
2025-06-27 16:30
本视频是关于Solana程序(智能合约)安全性的课程,主要内容包括最佳安全实践、常见攻击向量以及安全测试方法。以下是视频的核心内容和关键论据总结: 1. **核心内容概括**: - 本周课程专注于Solana程序的安全性,强调开发者在编写智能合约时应遵循的最佳安全实践。 - 课程内容包括代码质量、测试、模糊测试(fuzzing)和审计等安全支柱,旨在帮助开发者提高智能合约的安全性。 2. **关键论据和信息**: - **代码质量**:开发者需了解常见的安全漏洞(如OWASP 10),并在设计阶段就考虑安全性,采用多层防御策略。 - **测试的重要性**:不仅要测试程序的正确性,还要模拟攻击者的思维,进行全面的安全测试,包括集成测试和模糊测试。 - **模糊测试**:通过输入大量随机数据来发现潜在漏洞,强调其在发现安全问题中的有效性。 - **审计**:建议在完成代码质量和测试后进行审计,以获得独立的安全评估,审计过程应包括对系统整体架构的理解和外部依赖的检查。 - **安全意识**:开发者和团队成员需保持安全意识,定期学习和更新安全知识,以应对不断变化的安全威胁。 总之,视频强调了在Solana智能合约开发中,安全性是一个多层次的过程,开发者需要从代码质量、测试到审计等各个方面进行全面考虑,以确保程序的安全性。
269
0
0
2025-04-14 15:45
登链社区