Skip to content

Commit 43da01f

Browse files
authored
Merge pull request #14671 from ethereum/crowdin-january-zh-20250113163032940
chore: import translations for zh
2 parents f4c8485 + b433cec commit 43da01f

File tree

8 files changed

+48
-9
lines changed

8 files changed

+48
-9
lines changed

public/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ contract ExampleDapp {
202202

203203
## 事件和日志 {#events-and-logs}
204204

205-
事件可以让你通过前端或其它订阅应用与你的智能合约通信。 当交易被挖矿执行时,智能合约可以触发事件并且将日志写入区块链,然后前端可以进行处理
205+
事件让你的智能合约能够与前端或其他订阅应用程序进行通信。 一旦交易被验证并添加到区块中,智能合约就可以触发事件并记录信息,然后前端就可以处理和利用这些信息
206206

207207
## 附带注解的示例 {#annotated-examples}
208208

public/content/translations/zh/developers/docs/smart-contracts/compiling/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ contract Greeter {
3333
PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xCFAE3217 EQ PUSH2 0x46 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0xD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x80 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xC8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SLT 0xec 0xe 0xf5 0xf8 SLT 0xc7 0x2d STATICCALL ADDRESS SHR 0xdb COINBASE 0xb1 BALANCE 0xe8 0xf8 DUP14 0xda 0xad DUP13 LOG1 0x4c 0xb4 0x26 0xc2 DELEGATECALL PUSH7 0x8994D3E002900
3434
```
3535

36+
这些代码称为**操作码**。 以太坊虚拟机操作码是以太坊虚拟机 (EVM) 能够执行的低级指令。 每个操作码都代表一个具体的操作,例如算术运算、逻辑运算、数据操作,控制流等等。
37+
38+
[更多关于操作码的信息](/developers/docs/evm/opcodes/)
39+
3640
## Web 应用程序 {#web-applications}
3741

3842
编译器还将生成你需要的**应用程序二进制接口 (ABI)** ,以便你的应用程序能够理解合约并调用合约的功能。

public/content/translations/zh/developers/docs/smart-contracts/deploying/index.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ lang: zh
5353

5454
- [相关文档](https://portal.thirdweb.com/deploy/)
5555

56+
**Crossmint - _企业级 Web3 开发平台,可用于部署智能合约,启用信用卡和跨链支付,使用应用程序接口创建、分发、销售、储存和编辑非同质化代币。_**
57+
58+
- [crossmint.com](https://www.crossmint.com)
59+
- [相关文档](https://docs.crossmint.com)
60+
- [Discord](https://discord.com/invite/crossmint)
61+
- [博客](https://blog.crossmint.com)
62+
5663
## 相关教程 {#related-tutorials}
5764

5865
- [部署你的第一个智能合约](/developers/tutorials/deploying-your-first-smart-contract/) _ – 介绍如何在以太坊测试网络上部署你的第一个智能合约。_

public/content/translations/zh/developers/docs/smart-contracts/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,4 @@ contract VendingMachine {
109109
- [Coinbase:什么是智能合约?](https://www.coinbase.com/learn/crypto-basics/what-is-a-smart-contract)
110110
- [Chainlink:什么是智能合约?](https://chain.link/education/smart-contracts)
111111
- [视频:智能合约简介](https://youtu.be/ZE2HxTmxfrI)
112+
- [Cyfrin Updraft:Web3 学习与审计平台](https://updraft.cyfrin.io)

public/content/translations/zh/developers/docs/smart-contracts/languages/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ lang: zh
1111
- Solidity
1212
- Vyper
1313

14+
Remix 集成开发环境提供了一个全面的开发环境,用于创建和测试用 Solidity 和 Vyper 语言编写的智能合约。 [尝试使用浏览器版本的 Remix 集成开发环境](https://remix.ethereum.org)开始编写代码。
15+
1416
更有经验的开发者也可能想要使用 Yul:一种用于[以太坊虚拟机](/developers/docs/evm/)的中间语言,或者是 Yul+ 语言,这是一种 Yul 扩展。
1517

1618
如果你很好奇,喜欢帮助测试仍在大力发展的新语言,则可以尝试使用 Fe,这是一种新兴的智能合约语言,目前仍处于起步阶段。

public/content/translations/zh/developers/docs/smart-contracts/libraries/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ contract MyNFT is ERC721 {
7979

8080
为你的项目使用智能合约库有几个好处。 首先,它为你提供了现成的构建模块,你可以将其纳入你的系统,而不必自己编码,从而节省了你的时间。
8181

82-
安全性也是一个重要的优点。 开源智能合约库也经常受到严格审查。 鉴于许多项目都依赖于它们,社区有强烈的动机来对它们持续审计。 在应用程序代码中发现错误比在可重用的合约库中发现错误要常见得多。 一些库还接受了[外部审计](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/audit),以提高安全性。
82+
安全性也是一个重要的优点。 开源智能合约库也经常受到严格审查。 鉴于许多项目都依赖于它们,社区有强烈的动机来对它们持续审计。 在应用程序代码中发现错误比在可重用的合约库中发现错误要常见得多。 一些库还接受了[外部审计](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/audits),以提高安全性。
8383

8484
然而,使用智能合约库有可能将你不熟悉的代码纳入你的项目。 导入一个合约并将其直接包含在你的项目中是很诱人的,但如果没有很好地理解该合约的作用,你可能会由于一个意外的行为而无意中在你的系统中引入一个问题。 一定要确保阅读你要导入的代码的文档,然后在使其成为你的项目的一部分之前审查代码本身。
8585

public/content/translations/zh/developers/docs/smart-contracts/security/index.md

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ contract VendingMachine {
7878

7979
遗憾的是,单独使用单元测试对提高智能合约的安全性效果甚微。 单元测试也许可以证明函数对于模拟数据正确执行,但单元测试的有效性受限于编写的测试。 这就意味着很难检测到威胁智能合约安全性的边缘情况和漏洞。
8080

81-
更好的方法是将单元测试与基于属性的测试相结合,后者是通过[静态和动态分析](/developers/docs/smart-contracts/testing/#static-dynamic-analysis)进行的。 静态分析依赖于底层的表示(例如[控制流程图](https://en.wikipedia.org/wiki/Control-flow_graph)[抽象语法树](https://deepsource.io/glossary/ast/))分析可达到的程序状态和执行路径。 相比之下,动态分析技术(例如模糊测试)用随机输入值执行合约代码,以检测违反安全属性的操作。
81+
更好的方法是将单元测试与基于属性的测试相结合,后者是通过[静态和动态分析](/developers/docs/smart-contracts/testing/#static-dynamic-analysis)进行的。 静态分析依赖于底层的表示(例如[控制流程图](https://en.wikipedia.org/wiki/Control-flow_graph)[抽象语法树](https://deepsource.io/glossary/ast/))分析可达到的程序状态和执行路径。 同时,动态分析技术([例如智能合约模糊测试](https://www.cyfrin.io/blog/smart-contract-fuzzing-and-invariants-testing-foundry))使用随机输入值执行合约代码,以检测违反安全属性的操作。
8282

8383
[形式化验证](/developers/docs/smart-contracts/formal-verification)是另一项验证智能合约安全属性的技术。 与常规测试不同,形式化验证能够确证智能合约中没有错误。 这是通过制定细致描述安全属性的形式化规范并证明智能合约的形式化模型符合这一规范来实现的。
8484

@@ -90,7 +90,10 @@ contract VendingMachine {
9090

9191
进行独立代码审核的方式之一是委托执行智能合约审计。 审计员是确保智能合约安全、没有质量缺陷和设计错误的关键所在。
9292

93-
尽管如此,你也不应将审计看作终极方案。 智能合约审计无法发现所有漏洞并且主要是为了额外增加一轮审核,这有助于检测到开发者在最初的开发和测试中遗漏的问题。 你还应遵循[与审计员合作的最佳做法](https://twitter.com/tinchoabbate/status/1400170232904400897)(例如正确记录代码并添加行内注释),让智能合约审计发挥最大作用。
93+
尽管如此,你也不应将审计看作终极方案。 智能合约审计无法发现所有漏洞并且主要是为了额外增加一轮审核,这有助于检测到开发者在最初的开发和测试中遗漏的问题。 你还应遵循与审计员合作的最佳做法(例如正确记录代码并添加行内注释),让智能合约审计发挥最大作用。
94+
95+
- [智能合约审计提示和技巧](https://twitter.com/tinchoabbate/status/1400170232904400897) - _@tinchoabbate_
96+
- [充分利用你的审计](https://inference.ag/blog/2023-08-14-tips/) - _推理_
9497

9598
#### 漏洞奖励 {#bug-bounties}
9699

@@ -112,7 +115,7 @@ contract VendingMachine {
112115

113116
-[开发环境](/developers/docs/frameworks/)下测试、编译、和部署智能合约
114117

115-
- 在如 Mythril 和 Slither 等基本代码分析工具中运行代码。 理想情况下,应在合并每个拉取请求前进行这一操作,并比较输出中的不同之处
118+
- 通过基本代码分析工具运行代码,例如 [Cyfrin Aaderyn](https://github.com/Cyfrin/aderyn)Mythril 和 Slither。 理想情况下,应在合并每个拉取请求前进行这一操作,并比较输出中的不同之处
116119

117120
- 确保代码在编译时没有错误,并且 Solidity 编译器没有发出警告
118121

@@ -126,7 +129,7 @@ contract VendingMachine {
126129

127130
虽然以太坊智能合约默认是不可变的,但通过使用升级模式可以实现一定程度的可变性。 如果重大缺陷导致合约不可用并且部署新逻辑是最可行的选择,有必要升级合约。
128131

129-
合约升级机制的原理有所不同,但“代理模式”是智能合约升级最常见的方法之一。 代理模式将应用程序的状态和逻辑拆分到_两个_合约中。 第一个合约(称为“代理合约”)存储状态变量(如用户余额),而第二个合约(称为"逻辑合约")存放执行合约函数的代码。
132+
合约升级机制的原理有所不同,但“代理模式”是智能合约升级最常见的方法之一。 [代理模式](https://www.cyfrin.io/blog/upgradeable-proxy-smart-contract-pattern)将应用程序的状态和逻辑划分为_两个_合约。 第一个合约(称为“代理合约”)存储状态变量(如用户余额),而第二个合约(称为"逻辑合约")存放执行合约函数的代码。
130133

131134
帐户与代理合约互动,代理合约通过[`delegatecall()`](https://docs.soliditylang.org/en/v0.8.16/introduction-to-smart-contracts.html?highlight=delegatecall#delegatecall-callcode-and-libraries)的低级调用将所有功能调用分发给逻辑合约。 与普通的消息调用不同,`delegatecall()` 确保在逻辑的合约地址上运行的代码是在调用合约的语境下执行。 这意味着逻辑合约将始终写入代理的存储空间(而非自身存储空间),并且 `msg.sender``msg.value` 的原始值保持不变。
132135

@@ -214,7 +217,7 @@ contract EmergencyStop {
214217

215218
防止与链上治理有关的问题的一种方法是[使用时间锁](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/)。 时间锁阻止智能合约执行某些操作,直到经过特定的时间长度。 其他策略包括根据每个代币锁定的时间长短为其分配“投票权重”,或者检测一个地址在历史时期(例如,过去的 2-3 个区块)而不是当前区块的投票权。 这两种方法都减少了快速累积投票权以影响链上投票的可能性。
216219

217-
更多关于[设计安全的治理系统](https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/)[去中心化自治组织中的不同投票机制](https://hackernoon.com/governance-is-the-holy-grail-for-daos)的信息
220+
在分享的链接中查看更多关于[设计安全的治理系统](https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/)[去中心化自治组织中不同的投票机制](https://hackernoon.com/governance-is-the-holy-grail-for-daos)[利用去中心化金融的常见去中心化自治组织攻击向量](https://dacian.me/dao-governance-defi-attacks)的信息
218221

219222
### 8. 将代码的复杂性降到最低 {#reduce-code-complexity}
220223

@@ -448,7 +451,7 @@ contract Attack {
448451

449452
##### 如何防止预言机操纵
450453

451-
避免预言机操纵的最低要求是,使用从多种来源查询信息的去中心化预言机网络,以避免单点故障。 在大多数情况下,去中心化预言机有內置的加密经济学激励机制,鼓励预言机节点报告正确的信息,使它们比中心化预言机更安全。
454+
[避免预言机操纵](https://www.cyfrin.io/blog/price-oracle-manipultion-attacks-with-examples)的最低要求是使用从多个来源查询信息的去中心化预言机网络,以避免单点故障。 在大多数情况下,去中心化预言机有內置的加密经济学激励机制,鼓励预言机节点报告正确的信息,使它们比中心化预言机更安全。
452455

453456
如果你打算通过查询链上预言机获得资产价格,考虑使用实施了时间加权平均价格 (TWAP) 机制的预言机。 [时间加权平均价格预言机](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles)查询资产在两个不同时间点(可以修改)的价格,并计算出基于所得平均值的现货价格。 选择较长的时间段可以保护协议免受价格操纵,因为最近执行的大宗订单无法影响资产价格。
454457

@@ -468,6 +471,8 @@ contract Attack {
468471

469472
- **[ABI 编码器](https://abi.hashex.org/)** - _免费在线服务,用于编码你的 Solidity 合约函数和构造函数参数。_
470473

474+
- **[Aderyn](https://github.com/Cyfrin/aderyn)** - _Solidity 静态分析器,遍历抽象语法树 (AST) 来找出可疑漏洞,并以易于使用的 Mardown 格式打印输出问题。_
475+
471476
### 智能合约监测工具 {#smart-contract-monitoring-tools}
472477

473478
- **[OpenZeppelin Defender Sentinels](https://docs.openzeppelin.com/defender/v1/sentinel)** - _一种用于自动监测和响应智能合约中事件、函数和交易参数的工具。_
@@ -506,6 +511,16 @@ contract Attack {
506511

507512
- **[Code4rena](https://code4rena.com/)** - _竞争性审计平台,激励智能合约安全专家查找漏洞,帮助提高 web3 的安全性。_
508513

514+
- **[CodeHawks](https://codehawks.com/)** - _竞争性审计平台,为安全研究者举行智能合约审计比赛。_
515+
516+
- **[Cyfrin](https://cyfrin.io)** - _Web3 安全发电站,通过产品和智能合约审计服务提高加密货币安全性。_
517+
518+
- **[ImmuneBytes](https://www.immunebytes.com//smart-contract-audit/)** - _Web3 安全公司,通过经验丰富的审计员团队和一流的工具,为区块链系统提供安全审计。_
519+
520+
- **[Oxorio](https://oxor.io/)** - _智能合约审计和区块链安全服务,为加密货币公司和去中心化金融项目提供以太坊虚拟机、Solidity、零知识、跨链技术方面的专业知识。_
521+
522+
- **[Inference](https://inference.ag/)** - _安全审计公司,专注于为基于以太坊虚拟机的区块链进行智能合约审计。 多亏他们的审计专家,他们发现了潜在问题并提出了可行的解决方案,在部署之前进行修复_
523+
509524
### 漏洞奖励平台 {#bug-bounty-platforms}
510525

511526
- **[Immunefi](https://immunefi.com/)** - _智能合约和去中心化金融项目的漏洞奖励平台,安全研究人员在该平台上审查代码、披露漏洞、获得报酬并使加密应用更加安全。_
@@ -514,6 +529,10 @@ contract Attack {
514529

515530
- **[HackenProof](https://hackenproof.com/)** - _针对加密项目(去中心化金融、智能合约、钱包、中心化交易所等)的专业级漏洞奖励平台,借助这一平台,安全专家可提供漏洞诊断服务,研究人员会因为提供经过验证的相关漏洞报告获得报酬。_
516531

532+
- **[Sherlock](https://www.sherlock.xyz/)** - _Web3 中的智能合约安全性承销商,通过智能合约管理审计人员的报酬,以确保相关漏洞得到公平的支付。_
533+
534+
- **[CodeHawks](https://www.codehawks.com/)** - _竞争性漏洞奖金平台,供审计人员参与安全竞赛和挑战,并且(很快)能够参与他们自己的私人审计。_
535+
517536
### 已知智能合约漏洞及利用情况的刊物 {#common-smart-contract-vulnerabilities-and-exploits}
518537

519538
- **[ConsenSys:已知的智能合约攻击](https://consensys.github.io/smart-contract-best-practices/attacks/)** - _针对最重要的合约漏洞提供适合初学者的解释,多数案例提供了代码示例。_
@@ -530,6 +549,8 @@ contract Attack {
530549

531550
- **[Ethernaut](https://ethernaut.openzeppelin.com/)** - _基于 Web3 和 Solidity 的实战演练,其中每个等级都是一个需要“攻破”的智能合约。_
532551

552+
- **[HackenProof x HackTheBox](https://app.hackthebox.com/tracks/HackenProof-Track)** - _以奇幻冒险作为背景的智能合约黑客挑战。 成功完成挑战还有机会参与私人漏洞奖金项目。_
553+
533554
### 确保智能合约安全的最佳做法 {#smart-contract-security-best-practices}
534555

535556
- **[ConsenSys:以太坊智能合约安全最佳实践](https://consensys.github.io/smart-contract-best-practices/)** - _保护以太坊智能合约安全的完整指南列表。_
@@ -542,6 +563,8 @@ contract Attack {
542563

543564
- **[智能合约安全验证标准](https://github.com/securing/SCSVS)** - _旨在确立智能合约安全性标准的第十四部分检查清单,面向开发者、架构师、安全审核者和供应商。_
544565

566+
- **[学习智能合约安全与审计](https://updraft.cyfrin.io/courses/security)** - _智能合约安全与审计终极课程,专为寻求提升其安全性最佳做法和希望成为安全研究者的智能合约开发者而创建。_
567+
545568
### 智能合约安全性教程 {#tutorials-on-smart-contract-security}
546569

547570
- [如何编写安全的智能合约](/developers/tutorials/secure-development-workflow/)
@@ -553,3 +576,5 @@ contract Attack {
553576
- [智能合约安全性准则](/developers/tutorials/smart-contract-security-guidelines/)
554577

555578
- [如何安全整合代币合约与任意代币](/developers/tutorials/token-integration-checklist/)
579+
580+
- [Cyfrin Updraft - 智能合约安全与审计完整课程](https://updraft.cyfrin.io/courses/security)

src/intl/zh/page-index.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
"page-index-learn-tag": "学习",
6666
"page-index-learn-header": "了解以太坊",
6767
"page-index-meta-description": "以太坊是一个全球性的去中心化金融和新型应用程序平台。在以太坊,我们可以编写代码来控制资产,并构建在世界上任何地方皆可访问的应用程序。",
68-
"page-index-meta-title": "以太坊完整指南",
68+
"page-index-meta-title": "Ethereum.org: 以太坊完整指南",
6969
"page-index-network-stats-total-eth-staked": "保护以太坊安全的价值",
7070
"page-index-network-stats-tx-cost-description": "平均交易费用",
7171
"page-index-network-stats-tx-day-description": "过去 24 小时内的交易次数",

0 commit comments

Comments
 (0)