Web3入门—去中心化交易所的部署
一、ERC20代币合约部署 本次代币合约部署过程参考https://www.wtf.academy/en/course/solidity103/ERC20 ERC20是什么 ERC20是以太坊上的一种代币标准,由Vitalik Buterin于2025年11月提出。它实现了代币转移的基本逻辑: 账户余额 转移 批准转账 代币总供应量 令牌信息(optional):名称、符号、小数 基于此衍生的IERC20规定了代币需要实现的功能和事件,一种接口合约。定义接口的原因在于ERC20代币拥有通用的函数名和输入输出函数;在接口函数中只需要定义函数名和输出输出参数,无需关心函数内部的具体实现方式;因此函数分为内部实现和外部接口两部分,重点在于接口之间共享数据的实现和约定。这就是为什么在合约的实际部署过程之中通常需要ERC20.sol和IERC20.sol来实现一个合约。 Solidity 作为当前社区中一种用于编写以太坊虚拟机 (EVM) 智能合约的主流编程语言,能够帮助我们快速完成本次部署;不过在本次正式开始编写之前,我们还需了解...
密码学入门——消息认证码
加密&完整性Goal:在无需保密性的情况下提供完整性,基本机制如MAC(消息认证码) MACs:基本组成:(发送方和接收方共享同一密钥k)$$S(k,m)\to tag\space \space ;V(k,m,tag)\to ‘yes’/‘no’$$$$[其一致性要求为\forall k \in \mathcal{K},m\in \mathcal{M}:V(k,m,S(k,m))=’yes’]$$ 若双方不共享同一密钥k,则难以达到完整性目的保障,比如CRC(循环冗余检验):$$CRC(m)\to tag\space ,Verify(m,tag)\stackrel{?}{=} yes$$但是攻击者可以直接拦截并伪造新的消息和验证码,从而破解消息。 系统安全性(目标): 攻击者可以通过m向挑战者寻问其生成的tag,之后攻击者伪造一个新的(m,tag)(优势为挑战者最终输出’yes’的概率大于1/2)若攻击者在已知消息-标签对后,无法为同一消息生成一个新的有效的标签,则此系统处于安全状态(SU-CMA:存在性不可伪造性)...
密码学入门——流密码
Welcome!

