文章 视频 课程 百科图谱 集训营
更多
  • 问答
  • 提问
  • 发表文章
  • 专栏
  • 活动
  • 文档
  • 工作
  • 集市
  • 发现
  • 首页
  • 文章
  • 视频
  • 课程
  • 集训营
  • 工作
    • 工作
    • 问答
    • 活动
    • 文档
    • 集市
搜索
  • 登录/注册
Tiny熊
  • 文章
  • 专栏
  • 问答
  • 视频
  • 课程
  • 集市作品
  • 活动
  • 招聘
TA的视频 TA的合集
VibeCoding 实践代币银行,理解 ERC20 授权
视频 AI 总结: 本视频主要讲解了在以太坊智能合约中实现 ERC20 代币银行(TokenBank)的存款功能。核心内容围绕 ERC20 代币转账的特殊性展开,指出直接使用 `transfer` 方法向合约转账无法触发合约代码执行,导致无法记录存款。为解决此问题,视频详细介绍了“拉取”机制,即用户先通过 `approve` 授权,再由 TokenBank 合约调用 `transferFrom` 拉取代币。此外,视频还探讨了 ERC777 和 ERC1363 等带有回调机制的代币标准,以简化用户操作、防止代币锁定,并强调了使用 `SafeERC20` 库来兼容非标准 ERC20 代币的重要性。 视频中提出了哪些关键信息: 1. **ERC20 转账机制的挑战**:直接使用 ERC20 的 `transfer` 方法向合约地址转账,目标合约的代码(如记录存款)不会被执行,导致无法记录用户存款。这与 ETH 转账通过 `call` 方法触发 `receive` 回调不同。 2. **“拉取”机制(Approve + TransferFrom)**:为了让 TokenBank 记录存款,用户需要分两步操作: * **`approve`**:用户授权 TokenBank 合约可以从其账户中转移一定数量的代币。 * **`transferFrom`**:TokenBank 合约调用此方法,从已授权的用户账户中拉取代币到 TokenBank 合约中,并记录存款。 3. **ERC20 代币精度**:ERC20 代币通常使用 10 的 18 次方作为最小单位(decimals),以在 Solidity 不支持浮点数的情况下表示小数。 4. **用户体验问题**:`approve` 和 `deposit` 需要两次链上交易,用户体验不佳,且每次授权金额会随着 `transferFrom` 的使用而减少,可能需要重复授权。 5. **回调机制的引入**: * **ERC777**:引入 `tokenFallback` 回调函数,允许在代币转账时触发接收合约的逻辑,从而实现单笔交易存款并防止代币锁定。但因其复杂性,未被广泛采用。 * **ERC1363**:作为 ERC777 的简化版本,它通过 `transferAndCall` 方法和 `transferReceived` 回调函数,实现了类似功能,旨在提供更简洁的回调机制,防止代币被锁死在无处理逻辑的合约中。 6. **老旧 ERC20 代币的兼容性问题**: * **缺少返回值**:一些早期 ERC20 代币的 `transfer` 或 `transferFrom` 方法没有布尔返回值,导致依赖返回值的合约报错。 * **不回滚(Revert)而是返回 False**:部分代币在转账失败时不会回滚交易,而是直接返回 `false`,若不检查返回值,可能导致合约状态错误。 7. **`SafeERC20` 库**:OpenZeppelin 提供的 `SafeERC20` 库通过封装底层 `call` 调用,解决了上述非标准 ERC20 代币的兼容性问题,提升了安全性和鲁棒性。 8. **实践建议**:鼓励用户实际操作,包括实现带有回调功能的 TokenBank,以及在 DEX(如 Uniswap)上进行真实的代币交易,以体验 `approve` 和 `transferFrom` 的流程。 9. **合约交互**:介绍了如何在 Remix 中加载已部署的合约地址进行交互,以及通过交易收据(transaction receipt)查看交易结果和错误信息。
16
0
0
1天前
Solidity进阶:库、导入与代币
视频 AI 总结: **1. 概括视频的核心内容:** 视频详细讲解了Solidity中的代码复用机制,包括库(Library)和导入(Import)。库通过`delegatecall`实现功能复用,但有状态限制;导入则强调模块化和利用如OpenZeppelin等成熟库的重要性。随后,视频深入阐述了ERC-20代币标准,解释了其核心方法(如转账、授权)及其在区块链生态系统互操作性中的关键作用。最后,通过一个TokenBank作业,引导学习者实践ERC-20代币的创建与交互,并强调了`approve`和`transferFrom`在代币存款中的应用。 **2. 视频中提出的关键信息:** * **库(Library)的使用:** 库是代码复用的一种方式,通过`delegatecall`调用,在调用者的上下文执行。它不能有状态变量,不能接收以太币,也不能作为独立实体部署。`using for`语法糖可用于扩展类型功能。 * **导入(Import)机制:** 用于实现代码模块化,提高开发效率和安全性。鼓励复用经过审计的优秀代码库(如OpenZeppelin),可导入本地文件、GitHub链接等。 * **EIPs与ERCs:** EIP(Ethereum Improvement Proposals)是针对以太坊网络本身的改进提案(如EIP-1559);ERC(Ethereum Request for Comments)是应用层标准(如ERC-20、ERC-721),旨在统一接口,降低沟通成本。 * **ERC-20 代币标准:** 定义了同质化代币(Fungible Token)的规范,包括名称、符号、`transfer`(转账)、`approve`(授权)等核心方法。它是去中心化应用、钱包、交易所等互操作性的基础。代币余额存储在ERC-20合约内部的`mapping`中,而非账户原生余额。 * **OpenZeppelin:** 一个广泛使用的、经过审计的Solidity代码库,提供安全、标准化的合约实现,高度推荐用于复用代码。 * **代币与原生币转账区别:** 原生币(如ETH)转账直接修改账户余额,而代币转账是调用代币合约的`transfer`方法,由代币合约内部管理余额。 * **TokenBank作业提示:** 在实现TokenBank存款功能时,用户需先对TokenBank合约进行`approve`授权,然后TokenBank合约再通过`transferFrom`方法从用户账户中提取代币,而非用户直接`transfer`给TokenBank。
8
0
0
2天前
Solidity 进阶:ABI 与底层调用 Call/Delegatecall
视频 AI 总结: 视频深入探讨了以太坊智能合约的ABI(应用二进制接口)及其底层调用。ABI定义了合约接口,将函数调用编码为链上可识别的二进制数据(函数签名哈希前四字节加参数)。视频重点介绍了Solidity中的两种底层调用:`call`和`delegatecall`。`call`允许通过ABI编码灵活调用任意函数,且在转账时优于有gas限制的`transfer`方法。`delegatecall`则更为高级,它在执行目标合约代码时能保持调用者的上下文(`msg.sender`和`msg.value`不变),并在当前合约的存储中执行,是实现代理模式的关键。 关键信息: 1. **ABI (Application Binary Interface)**:用于描述合约接口,将函数调用(包括函数签名和参数)编码为链上可识别的二进制数据。函数签名通过哈希函数名和参数类型,取前四个字节得到。 2. **交易类型**:分为普通转账(无附加数据)、合约创建(传递字节码和参数)和合约调用(传递ABI编码数据)。 3. **`call`底层调用**: * 允许通过ABI编码灵活调用合约的任何函数,类似于编程语言中的反射机制。 * 在进行以太币转账时,`call`方法没有`transfer`方法的2300 gas限制,因此是推荐的转账方式(`transfer`被视为技术债)。 * 调用失败时,`call`会返回一个布尔值(`success`)和返回数据,而不会自动回滚交易,需要开发者手动检查返回值以确保安全性。 * `call`会切换上下文,即被调用合约中的`msg.sender`会变为调用它的合约地址。 4. **`delegatecall`委托调用**: * 与`call`最主要的区别在于它“保持上下文”,即被调用合约中的`msg.sender`和`msg.value`会保持为原始的外部调用者(EOA或最初的合约)。 * `delegatecall`会借用目标合约的代码,但在当前合约的存储和上下文中执行,这意味着状态改变会发生在调用`delegatecall`的合约上。 * 它是实现代理合约(Proxy Pattern)和可升级合约的关键机制。 5. **`address`类型的方法**:包括`balance`、`code`、`call`、`delegatecall`和`staticcall`。其中`staticcall`用于调用不修改状态的函数(类似`view`)。
16
0
0
2天前
作业讲解:Vibe Coding 实践 BigBank
视频 AI 总结: 该视频回顾了Solidity智能合约作业,主要围绕`BigBank`继承`Bank`及合约间相互调用。讲师利用AI辅助代码编写,并讨论了AI上下文管理。视频详细分析了AI生成的代码,包括继承、方法重写、修饰符应用及所有权转移至`Admin`合约。同时,演示了在Remix中部署和测试,并强调了ETH转账中`transfer`函数的局限性及`receive`函数的重要性。最后指出,在AI辅助开发中,提示词比代码本身更关键。 关键信息: 1. **作业与实践内容**:实现`BigBank`合约继承`Bank`合约,并实践合约间的相互调用。 2. **AI辅助开发**:利用AI(如Cursor, Codex)辅助编写智能合约代码,并讨论了AI上下文(context)的重要性、累积效应、成本及限制。 3. **Solidity核心概念**: * **继承(Inheritance)**:`BigBank`继承`Bank`,代码和字节码的合并。 * **方法重写(Method Overriding)**:在子合约中重写父合约的方法(如`deposit`),需使用`virtual`和`override`关键字。 * **修饰符(Modifiers)**:用于在函数执行前添加条件检查(如存款金额限制、权限验证)。 * **合约间调用**:一个合约(`Admin`)调用另一个合约(`Bank`)的方法。 * **所有权转移**:将合约的所有权从外部地址转移到一个合约地址。 * **ETH转账机制**:讨论了`transfer`函数的局限性(2300 gas限制)以及接收合约必须实现`receive`或`fallback`函数才能接收ETH的重要性。 4. **开发工具与环境**:使用Remix进行合约的编译、部署和交互测试。 5. **AI在Solidity中的局限性**:指出AI在Solidity领域因语言较新、语料不足、更新快等原因,不如在其他成熟语言(如Python)中表现完美,但仍是强大辅助工具。 6. **提示词的重要性**:强调在AI辅助开发时代,清晰准确的提示词(prompt)比最终生成的代码本身更为关键。
7
0
0
2天前
Solidity进阶:修饰器、错误处理、事件、接口与继承
视频 AI 总结: 视频详细讲解了 Solidity 语言的进阶特性,包括自定义修饰器用于权限控制和前置检查,以及 EVM 独特的错误处理机制,强调交易原子性和 `try-catch` 仅限外部调用。此外,视频还介绍了事件(Events)作为合约与外部通信及日志记录的方式,接口(Interfaces)用于定义合约交互规范,以及继承(Inheritance)实现代码复用,涵盖了抽象合约、`virtual` 和 `override` 等概念。最后,鼓励通过实践项目巩固所学。 关键信息: 1. **自定义修饰器 (Custom Modifiers)**: * 用于函数执行前的检查和权限控制(如 `onlyOwner`)。 * 提高代码复用性,类似于 Python 装饰器。 * 通过 `modifier` 关键字定义,使用 `_` 占位符插入被修饰函数体。 2. **错误处理 (Error Handling)**: * EVM 交易的原子性:任何错误发生时,之前所有状态修改都会回滚到初始状态。 * 主要机制:`require` (最常用,用于验证输入或条件)、`assert` (用于检查内部不变量)、`revert` (直接抛出错误) 及自定义错误。 * Gas 消耗:自定义错误比包含字符串的错误消息更节省 Gas。 * `try-catch`:仅用于捕获 *外部调用* 的错误,不适用于内部调用。 * `panic` 错误:通常由程序逻辑缺陷引起(如除以零、数组越界),会记录 `Lcode`。 * 无法捕获的错误:合约不存在、交易 Gas 耗尽等特定情况。 3. **事件 (Events)**: * 作用:合约向外部世界通知状态变化,记录链上日志,因为合约内部执行环境是封闭的。 * 用途:异步获取交易结果、廉价数据存储、外部监听和过滤(通过 `indexed` 参数)。 * 语法:`event` 关键字声明事件,`emit` 关键字触发事件。 4. **接口 (Interfaces)**: * 设计原则:依赖接口而非具体实现。 * 特点:只包含函数定义,无构造函数、无状态变量。 * 用途:定义合约间交互规范,实现跨合约调用时的类型检查,提高代码模块化。 5. **继承 (Inheritance)**: * 目的:代码复用(与组合是两种主要复用方式)。 * 可见性:`internal` 成员可被子合约访问,`private` 成员仅限自身访问。 * 抽象合约 (`abstract`):不能直接部署,用于定义通用逻辑和抽象方法。 * 方法重写:`virtual` 标记可被重写的方法,`override` 标记重写父合约的方法。 * `super`:用于调用父合约的方法。 * 编译时:父合约代码会被复制到子合约中;运行时:只有一个部署的合约实例。 6. **实践建议**:通过 Big Bank 案例练习继承、接口和合约间调用,例如使用一个合约作为管理员(admin)来管理另一个合约的权限,以加深对这些高级特性的理解。
18
0
0
3天前
作业讲解:Vibe Coding 实现 Bank 合约
视频 AI 总结: 视频演示了如何利用AI工具(如OpenAI的CodeX)快速生成一个Solidity智能合约,以实现一个简单的银行功能,即记录用户存款。讲师详细审查了AI生成的代码,指出并优化了其中冗余的设计(如`totalDeposit`变量与原生`balance`的重复),并强调了AI辅助编程的实践方法。视频还涵盖了将合约部署到测试网(如Sepolia或BNB Chain)进行测试的步骤,包括如何获取测试币,并讨论了`view`函数在合约调用中的Gas费用机制。 关键信息: 1. **AI辅助智能合约开发**: * 利用AI工具(如CodeX)根据自然语言需求生成Solidity智能合约代码。 * 强调AI是辅助工具,开发者需审查和优化AI生成的代码,尤其是在Gas效率和逻辑准确性方面。 * 建议向AI提供明确、小模块的需求,以避免过度设计和复杂性。 2. **合约功能与优化**: * 银行合约的核心功能是记录每个地址的存款金额,并跟踪前三名存款者。 * 优化建议:避免冗余存储,例如,合约的总余额可以通过`address(this).balance`直接获取,无需额外维护`totalDeposit`变量,以节省Gas。 * 合约应包含管理员(Admin)角色,用于执行特定管理操作。 3. **部署与测试**: * 演示了在本地模拟环境(Remix)和公共测试网(如Sepolia、BNB Chain Testnet)上部署和测试合约。 * 详细介绍了如何通过“领水”(Faucet)网站获取测试币,以及使用MetaMask钱包进行交易签名和部署。 * 强调了实践操作的重要性,鼓励学员亲自部署和测试合约。 4. **EVM与Gas机制**: * 解释了`address.balance`是EVM原生机制,用于记录账户余额。 * 澄清了`view`函数在外部调用时不消耗Gas,但在内部被其他状态修改函数调用时,其操作仍会计入整个交易的Gas消耗,并由交易发起者支付。 * Gas消耗是所有操作指令Gas总和乘以Gas价格。
20
0
0
3天前
Solidity 详解:变量与函数
视频 AI 总结: 本视频详细讲解了Solidity语言的基础语法,包括其特性、数据类型、函数定义和变量声明。视频强调Solidity作为一种编译型、强类型语言,专为EVM设计,并与JavaScript等语言有相似之处。核心内容涵盖了函数可见性、状态可变性(如`view`, `pure`, `payable`对Gas消耗的影响)、各种数据类型(布尔、整型、地址、数组、结构体、映射)的特点及使用注意事项,特别是整型溢出和数组遍历的Gas成本。此外,视频还深入探讨了内部与外部函数调用、构造函数以及`receive()`和`fallback()`这两个特殊回调函数的触发机制和重要性。 视频中提出了哪些关键信息: 1. **Solidity语言特性:** 编译型、高级语言、专为EVM设计,语法与JavaScript相似,是强类型语言。 2. **函数定义:** * **可见性:** `public` (内外皆可), `private` (合约内部), `internal` (内部及继承), `external` (仅外部)。 * **状态可变性:** `view` (只读状态变量), `pure` (不读不改状态变量), `payable` (可接收ETH)。 * **Gas消耗:** `view`/`pure`函数在读取时不消耗Gas,修改状态的函数消耗Gas。Gas限制适用于所有函数。 3. **变量定义:** * **类型:** 必须指定类型。 * **可见性:** `public` (自动生成getter函数), `private`, `internal`。 * **存储位置:** `memory` (临时内存), `storage` (链上持久化存储), `calldata` (函数参数,不可变)。 * **常量:** `constant` (编译时确定), `immutable` (构造时确定)。 4. **数据类型:** * **布尔型:** `true`/`false`,支持短路运算。 * **整型:** `int`/`uint` (有/无符号),不同位宽(如`uint8`),需特别注意**溢出/下溢**问题。 * **地址类型:** `address` (普通地址), `address payable` (可接收ETH)。`transfer`方法有2300 Gas限制。 * **数组:** 定长/变长,`length`, `push`, `pop`。**遍历数组的Gas消耗**是重要优化点,删除元素建议“移位再删除”。 * **结构体:** 自定义复合类型,可封装多个属性。 * **映射 (Mapping):** `key-value`对,只能是`storage`,不支持遍历,key不能是数组。 5. **函数调用:** * **内部调用:** 同一上下文,更高效。 * **外部调用:** 跨合约或`this`调用,切换上下文,可指定`value`和`gas` (不推荐)。 6. **特殊函数:** * **构造函数 (Constructor):** 合约部署时执行一次,不包含在运行时字节码中,用于初始化逻辑。 * **`receive()`:** 接收不带数据的ETH转账时被动调用,必须是`payable`。 * **`fallback()`:** 当调用不存在的函数或接收带数据但无匹配函数的ETH转账时被动调用,可`payable`。 7. **全局API:** `msg.sender`, `msg.value`, `block.timestamp`等,用于获取交易和区块信息。 8. **实践建议:** 编写智能合约时需关注Gas消耗,避免高Gas操作(如无限循环遍历数组)。合约要接收ETH必须显式实现`receive()`或`fallback()`(或`payable`函数)。
37
0
0
4天前
以太坊核心概念 2: EVM与Gas费用解析
视频 AI 总结: 视频首先介绍了AI工具的使用和中转接口。随后深入讲解了以太坊的核心概念,包括外部账户(EOA)和合约账户的区别、交易类型(转账、程序执行、合约创建)。重点阐述了以太坊虚拟机(EVM)如何执行智能合约字节码,以及Gas费用机制(Gas Limit, Gas Price, Base Fee, Priority Fee)如何防止图灵停机问题并激励节点。视频还介绍了MetaMask钱包的安装与使用,以及以太坊网络的节点、RPC服务和EVM兼容链的概念。 **关键信息:** * **AI 工具推荐:** 提到了推荐的AI工具,并建议网络不佳的用户使用国内工具或中转接口访问国际版模型。 * **以太坊账户类型:** 分为外部账户(EOA,由私钥控制)和合约账户(包含代码)。两者在链上存储结构相同,都包含 Nonce、余额、存储根和代码哈希。 * **交易类型:** 包括转账(无数据)、执行合约程序(Input Data 为函数调用)和创建合约(Input Data 为合约字节码)。所有交易都必须由 EOA 发起。 * **MetaMask 钱包:** 推荐的私钥管理工具,用于与区块链交互,强调安装时需核对网址防钓鱼。 * **以太坊虚拟机(EVM):** 运行在节点上,执行智能合约的字节码。EVM 无法访问外部数据,以确保共识一致性。 * **Gas 费用机制:** * **目的:** 支付节点资源消耗,防止智能合约出现无限循环(图灵停机问题)。 * **计算方式:** 每一步 EVM 操作都会消耗 Gas。 * **Gas Limit:** 用户为交易设定的最大 Gas 消耗量。 * **旧模型:** 费用 = `Gas Used * Gas Price`。 * **新模型(EIP-1559):** 费用 = `Gas Used * (Base Fee + Priority Fee)`。其中 `Base Fee` 动态调整并被销毁,`Priority Fee`(小费)支付给矿工/验证者。用户需设定 `Max Fee` 和 `Max Priority Fee`。 * **以太坊网络结构:** 节点运行客户端程序(共识层和执行层),保存完整账本,并通过 RPC 提供服务。存在公开和付费的 RPC 服务商。 * **EVM 兼容性:** EVM 生态系统繁荣,许多新链选择兼容 EVM,使得智能合约无需修改即可在不同链上运行。 * **开发环境:** 通常分为本地模拟环境(如 Foundry)、测试网和主网。 * **交易取消/替换:** 在交易未被打包前,可以通过发送一个具有相同 Nonce 但更高 Gas Price/Max Fee 的新交易来替换或取消之前的交易。 * **验证者质押:** 质押 32 ETH(或其倍数,最多 2048 ETH)可成为验证者,质押越多,被选中打包区块的概率越大。
39
0
0
5天前
以太坊核心概念,第一部分
视频 AI 总结: 该视频首先演示了如何使用 AI 编程助手(如 Antigravity)完成上一节课 POW (Proof of Work) 实践作业,强调了 AI 辅助编程的便捷性以及指令明确的重要性。随后,视频深入介绍了以太坊,解释了其诞生的背景(比特币的局限性,如出块慢、脚本功能有限、能耗高),并详细阐述了以太坊的关键改进,包括更快的出块时间、内置的 EVM (Ethereum Virtual Machine) 以及从 POW 到 POS (Proof of Stake) 的共识机制转变,最后演示了智能合约的编写、编译、部署和执行过程。 视频中提出了哪些关键信息: * **AI 编程助手应用**:演示了 Antigravity 等 AI 工具如何辅助编写代码,强调了清晰明确的提示词对 AI 输出结果的重要性。 * **POW 机制实践**:通过 Python 程序模拟 POW 过程,展示了哈希难度(前导零数量)与计算时间的关系,并提及比特币当前的高难度。 * **比特币的局限性**:指出比特币出块速度慢(10分钟)、脚本功能有限(仅支持简单转账)和巨大的能源消耗是其主要不足。 * **以太坊的诞生与改进**:由 Vitalik Buterin 提出,旨在构建一个“世界计算机”,支持程序在区块链上运行。主要改进包括: * **更快的出块时间**:12秒。 * **内置虚拟机 (EVM)**:允许在链上执行任意程序(智能合约)。 * **共识机制转变**:从 POW 切换到 POS (Proof of Stake),大幅降低能源消耗。 * **POS (Proof of Stake) 机制详解**: * **验证者 (Validator)**:需质押 32 ETH 成为验证者。 * **区块提议者 (Block Proposer)**:随机算法从验证者集合中选出,负责创建区块。 * **见证与签名 (Attestation)**:其他验证者验证区块并签名确认,累积足够签名后区块达成共识。 * **安全性来源**:通过质押资金担保网络安全,作恶者资金将被罚没。 * **以太坊执行逻辑**: * **智能合约 (Smart Contract)**:在 EVM 上执行的程序,具有可执行、中立、不受干扰的特性。 * **交易与状态变更**:交易中包含代码编码(字节码),通过 EVM 执行后,会修改链上数据库的状态。 * **ABI (Application Binary Interface)**:描述智能合约接口的 JSON 文件,用于链下与合约交互。 * **Web3 应用与智能合约**: * **去中心化后端**:智能合约充当去中心化的后端,由所有节点共同执行,确保数据不可篡改和逻辑中立。 * **信任机制**:无需信任单一实体,程序规则一旦写入链上即确定执行。 * **前端交互**:Web3 应用前端与 Web2 类似,但需连接钱包进行交易签名,交易执行是异步的。 * **Solidity 语言**:用于编写以太坊智能合约的编程语言,入门简单,但精通需深入学习。 * **智能合约开发流程演示**:使用 Remix IDE 演示了 Solidity 合约的编写、编译(生成字节码和 ABI)、部署(到模拟环境和测试网)和执行(调用合约方法、修改/读取状态)的全过程。 * **AI 工具补充**:提及了 Antigravity、Cursor、Cloud Code、CodeX 等 AI 编程工具,并讨论了它们的功能特点和在国内使用可能遇到的网络问题。
53
0
0
5天前
区块链价值与原理
视频 AI 总结: 视频深入探讨了区块链的价值与原理,通过对比Web2服务的中心化弊端(如数据垄断、隐私泄露、权力滥用),阐述了区块链如何通过去中心化网络和密码学技术,将数据控制权归还给个人。视频详细讲解了工作量证明(POW)共识机制,包括链式结构、哈希难度、最长链原则,以及如何防止双花攻击和数据篡改,强调了从信任中心化实体转向信任代码和网络的重要性。同时,也讨论了比特币的局限性及其演进。 关键信息: 1. **Web2的中心化问题:** * 互联网巨头垄断用户数据,导致隐私泄露、大数据杀熟、强制“二选一”等权力滥用现象。 * 用户对自身数据和资产缺乏控制权,所有权归属于平台。 2. **区块链作为解决方案:** * 核心目标是将数据和资产的控制权回归个人。 * 通过密码学和去中心化网络,实现对中心化实体的信任转移,转而信任代码和网络。 3. **区块链关键技术原理:** * **密码学(私钥/公钥):** 用户通过私钥对交易进行签名,证明所有权,确保只有本人能动用资产,而非依赖中心化数据库记录。 * **去中心化网络:** 由众多独立节点(服务器)共同参与维护,相互验证,防止单一实体作恶或篡改数据。 * **共识机制(以POW为例):** 解决独立节点间如何达成一致的问题。 * **链式结构:** 数据块(区块)通过哈希值首尾相连,任何中间数据的篡改都会破坏后续哈希链,使其失效。 * **工作量证明(POW):** 引入计算难度,要求矿工(节点)通过大量计算找到满足特定条件(如哈希值前缀为多个零)的随机数,才能添加新区块。这使得恶意篡改数据成本极高,几乎不可能。 * **最长链原则:** 当出现临时分叉时,网络认可最长且满足难度要求的链为有效账本,解决数据一致性问题。 * **双花攻击与51%攻击:** 解释了通过POW难度和最长链原则,如何有效防止同一笔资金被花费两次,以及发起51%攻击所需的巨大算力成本。 4. **比特币(早期区块链)的局限性:** * **交易速度慢:** 比特币约10分钟生成一个区块,交易确认时间长。 * **交易成本高:** 交易费用相对较高。 * **代码安全问题:** 链上代码一旦部署,漏洞难以修复,可能导致永久性损失。 * **用户体验差:** 私钥管理对用户是负担,丢失则资产无法找回。 5. **区块链技术发展趋势与思考:** * 新一代区块链(如以太坊、Solana)致力于提高交易速度和降低成本。 * 代码安全和用户体验仍是行业面临的挑战。 * 引发对“比特币价值”、“货币本质”、“庞氏骗局”以及区块链技术适用场景的哲学思考。 6. **作业内容:** * 实践POW计算过程,感受哈希难度与计算时间的关系。 * 实践非对称加密,感受私钥签名和公钥验证的方式。 * 将作业代码提交至GitHub仓库。
108
0
0
6天前
  • ‹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ...
  • 39
  • 40
  • ›
Tiny熊
Tiny熊
0xD682...E8AB
贡献值: 22890 学分: 915500
登链社区发起人 通过区块链技术让世界变得更好而尽一份力。
2286 关注 1303 粉丝
关于
关于我们
社区公约
学分规则
Github
伙伴们
DeCert
ChainTool
GCC
UpChain
合作
广告投放
发布课程
联系我们
友情链接
关注社区
Discord
Twitter
Youtube
B 站
公众号

关注不错过动态

微信群

加入技术圈子

©2026 登链社区 版权所有 | Powered By Tipask3.5|
粤公网安备 44049102496617号 粤ICP备17140514号 粤B2-20230927 增值电信业务经营许可证

发送私信

请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!

提醒

检测到你当前登录的账号还未绑定手机号
请绑定后再发布
去绑定
编辑封面图
封面预览

创建课程

编辑封面图
建议尺寸: 1920*1080
编辑封面图
封面预览