首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

以太坊再爆高危漏洞!黑客增发ATN 1100万枚token事件始末

) ds-auth库中setOwner代码如下: 此时setOwner会先验证auth合法性,而msg.sender就是ATN合约地址。...攻击者利用上述操作,伪造成合约账户进行恶意操作,可能造成如下影响: 绕过权限检查,调用敏感函数,例如setOwer; 窃取合约地址持有的代币; 伪装成合约地址与其他合约进行交互; 因此,在编写合约时,此类函数使用时需要对调用参数安全性进行判定...此类函数使用时需要对调用参数进行限定,应对用户输入call调用发起地址、调用参数做出严格限定。...对于一些敏感函数,不要将合约自身账户地址作为可信地址。 准备修复措施,增加Guard合约禁止回函数向ATN合约本身回。 增加黑名单合约,随时冻结黑客地址。...另一方面,智能合约在部署之前应进行安全审计,比如代码形式化验证等。 合约安全审计,依靠开发者经验和能力总有隐患,过去业内几次合约漏洞事件也说明了这个问题,开发者务必要引起重视。

47710

EVMPatch:自动修补以太坊智能合约

先前工作展示了如何通过在开发时进行离线分析或通过执行运行时验证来防御重入漏洞。另一个臭名昭著事件是Parity钱包攻击,在这种情况下攻击者将智能合约移动到无法再使用该合约所持有货币状态。...尽管某些合约集成了升级机制,但是一旦将特定合约标记为易受攻击,尚不清楚如何自动对其进行修补并测试所修补合约有效性。...这使攻击者可以销毁合约并破坏依赖于multisig wallet库合约所有合约。结果,大量以太币现在被锁定在那些违约合约中。最重要是,修补智能合约错误非常重要。...通过创建通用补丁模板,以便可以轻松地将其应用于所有合约。 EVMPATCH通过替换特定合约常量(即代码地址,函数标识符,存储地址),使补丁模板自动适应当前合约。...使用上表中列出与ERC-20代币合约相关总数506,607个实际交易来验证补丁正确性。在被识别为攻击交易中,发现了一个针对HXGToken特定交易。

31220
您找到你想要的搜索结果了吗?
是的
没有找到

智能合约开发语言 — Move 与 Rust 对比 (#2)

实现这一点主要困难是——你如何从闪电贷智能合约中保证借出金额将在同一笔交易中得到偿还?为了使贷款能够无抵押,交易需要是原子——即如果借出金额没有在同一笔交易中归还,整个交易需要失败。...EVM 闪电贷 EVM 具有动态调度,因此可以使用可重入实现,如下所示: 闪电贷用户创建并上传自定义智能合约,调用时将通过调用将控制权传递给闪电贷智能合约 闪电贷智能合约将请求借款金额发送到自定义智能合约并调用自定义智能合约...executeOperation()回函数 然后,自定义智能合约将使用收到借出金额来执行其所需操作(例如套利) 自定义智能合约完成操作后,需要将借出金额返还给闪电贷智能合约 至此,自定义智能合约...但是如果没有可重入性和闪电贷智能合约自定义智能合约可能性,你如何在 Solana 上实施闪电贷?好吧,这要归功于指令内省[5]。...当你执行cargo build-bpf(构建 Solana 智能合约典型命令)时,Cargo 会拉动这个 Solana 特定版本 rustc 来进行智能合约编译(原来 rustc 无法工作)。

88830

手把手教你写出智能合约Hello, World

所以,以太坊这份面向Dapp新手开发教程,从去中心化应用最基础知识点开始,一步一步介绍如何用以太坊客户端开发出一个最简答智能合约,也就是Dapp后端代码。...以太坊客户端 本教程将重点介绍Alethzero客户端上手使用,以及如何用它创建简单智能合约 ,也就是去中心化应用后端程序。...我们之前编写智能合约将存储在这个数据库中。智能合约在用户或其他智能合约用时将被触发执行。 如果您认为这种必要方法在处理速度方面存在限制,那么您是对。...它可以验证托管服务,可以为‘分布式社交应用程序’中好友点赞,可以将一定数量智能合约规定通证传输给另一个用户,等等。 为了执行这个功能,智能合约将需要瓦斯,就像你汽车需要燃料一样。...“待处理”窗格视图如下: 在您按下执行(‘Execute’)按钮后,如果您查看“待处理”(Pending)窗格中特定事务‘create’字段,会有类似‘1f530b6b ...’内容(当然,因为每个智能合约会创建一个唯一

2.4K90

如何招聘完美的以太坊开发者

什么是智能合约智能合约是自动化合约。它们是自动执行,并且在其代码上写入特定指令,这些指令在特定条件下执行。 ? 你可以在我们其他文章中了解有关智能合约更多信息。...智能合约是以太坊生态系统中任务完成方式。当有人想要在以太坊完成特定任务时,他们会与一个或多个人签订智能合约。...这是因为这个特定函数是一个构造函数。它唯一功能是将调用该函数地址指定为合约所有者。...车辆合约构造函数接收三个属性:model,make和vin,后者可用于识别特定车辆。 创建新合约将返回其新分配地址。在函数中,使用车辆映射,我们将给定vin绑定到该地址。...这是你开发人员应该熟悉另一个核心概念。 以太是生态系统中主要标记。这是激励玩家完成智能合约动力。 gas是满足特定合约所需燃料量。 当有人提交智能合约时,它具有预先确定gas价值。

82020

如何面试中判断区块链以太坊工程师是否优秀 原

什么是智能合约智能合约是自动化合约。它们是自动执行,并且在其代码上写入特定指令,这些指令在特定条件下执行。 ? 你可以在我们其他文章中了解有关智能合约更多信息。...智能合约是以太坊生态系统中任务完成方式。当有人想要在以太坊完成特定任务时,他们会与一个或多个人签订智能合约。...这些步骤中每一步都与前一步骤直接相关。还有一个要考虑因素,它是智能合约一个组成部分。你可以看到,在与自动售货机整个交互过程中,你(请求者)与机器(提供商)合作。绝对没有第三方参与。...车辆合约构造函数接收三个属性:model,make和vin,后者可用于识别特定车辆。 创建新合约将返回其新分配地址。在函数中,使用车辆映射,我们将给定vin绑定到该地址。...这是你开发人员应该熟悉另一个核心概念。 以太是生态系统中主要标记。这是激励玩家完成智能合约动力。 gas是满足特定合约所需燃料量。 当有人提交智能合约时,它具有预先确定gas价值。

1.4K10

面向企业区块链教程(一)

此外,您还会找到另一个名为 bootnode 可执行文件,我们将使用它来生成 enode ID。稍后我们将看到什么是 enode ID。...Enode 包含一个名为节点 ID 512 位公钥,用于验证网络上特定节点通信。Enode 还包含节点 ID IP 地址和端口号。与节点 ID 相关联私钥称为节点密钥。...第三章:编写智能合约 在上一章中,我们了解了 Quorum 工作原理以及各种共识协议是如何保护它。现在我们了解了 Quorum 工作原理,让我们继续编写智能合约。...接下来,我们声明了两个状态变量:data 保存一些数据;owner 保存了他们以太坊钱包地址,也就是合约部署地址。状态变量构成智能合约状态,并存储在智能合约存储中。...,但它们只在特定地址部署一次,它们代码被各种合约重复使用。

5100

区块链安全技术总结

另一个问题是,以太坊modifiers(修改器)特性导致特权函数恶意调用。在以太坊应用中modifiers会被用作定义某些只能被特定地址(特权地址)调用函数。...0x05区块链中坚力量-智能合约 智能合约(Smart contract):以信息化方式传播、验证或执行合同计算机协议。...delegatecall 方式调用时,相当于将外部合约 B func()代码复制过来(其函数中涉及变量或函数都需要存在)在 A 上下文空间中执行。...修复: 所提币、钱包转账,所以除了在编写合约时候需要严格验证输入数据正确性,而且在 Off-Chain 业务功能上也要对用户所输入地址格式进行验证,防止短地址攻击发生。 7....修复: 所提币、钱包转账,所以除了在编写合约时候需要严格验证输入数据正确性,而且在 Off-Chain 业务功能上也要对用户所输入地址格式进行验证,防止短地址攻击发生。 8.

2K41

如何智能合约审计?

你有没有考虑过如何审计一个智能合约来找出安全漏洞? 你可以自己学习,或者你可以使用这份便利一步步指南来准确地知道在什么时候该做什么,并对合约进行审计。...让我们直接开始审计合约吧: 如何审计一个智能合约 为了教会你如何进行审计,我会审计我自己写一份合约。这样,你可以看到可以由你自行完成真实世界审计。...审计概览和优良特性: 快速查看将被审计智能合约并找到良好实践。 对合约攻击: 在本节中,你将讨论对合约攻击以及会产生结果。这只是为了验证它实际上是安全。...优秀特性 这个合约提供了一系列很好功能性代码: 使用Oraclize生成安全随机数并在回中进行验证。 修改器检查游戏结束条件,阻止关键功能,直到奖励得以分配。...所以我建议是在函数开始时就更新条件、将投注次数设置为0,以确保 distributePrizes() 在被超出预期地多次调用时不会产生实际效果。

1.3K20

币聪财经-什么是以太坊代币?ERC-20,ERC-223,ERC-721和ERC-777详解

话虽如此,对以太坊如何运作基本理解实际上可以使一般情况下更容易理解加密货币。您可以看到,以太坊是一个分布式平台,可以在其上编写智能合约(使用Solidity编程语言)并执行。...智能合约中使用ERC-20标准包含6个基本功能,这些功能使令牌成为可靠功能。代码非常简单,您无需掌握任何计算机科学知识即可理解它。让我们一块一块地完成它。...另一个高质量但新鲜且鲜为人知项目0xcert专注于不可替代令牌,并使任何人都能够在区块链上创建,拥有和验证独特资产。...此外,0xcert使开发人员可以轻松创建针对各种类型独特资产量身定制dapps和智能合约。...在该标准中,在以太坊网络上建立了智能合约中央登记处。注册表使任何人都可以“检查”智能合约地址并检查它支持功能。 ERC-777使用相同ERC-820中央注册表,使智能合约功能易于验证

1.3K00

为将傅恒与魏璎珞爱情上链,作为技术小白我读了EVM上百行代码,终于搞定了

创建智能合约 在了解什么是智能合约后,接下来,通过代码实例教你如何创建智能合约。 创建智能合约操作就是一笔简单交易,在这笔交易中接收者地址为空,数据字段包含要创建智能合约编译字节码。...以太坊黄皮书上写到,新创建智能合约帐户地址包含发件人和帐户随机数数据经RLP(Recursive Length Prefix,递归长度前缀)编码并经Keccak哈希计算得到哈希值最右边160...这意味着智能合约可以在运行时从不同地址动态加载代码。存储,当前地址和余额仍然指向调用智能合约,只有代码来自被智能合约。这样使得可以在Solidity语言中实现类似程序库(library)功能。...也许你会有疑问,为什么要加载这个0x40地址? calldatacopy和calldatasize是什么?你需要做是在Truffle控制台上运行相同命令来验证结果是否正确。...通过Storage智能合约代码了解它是如何工作: 打开一个Truffle控制台来测试它存储架构,首先编译并创建一个新智能合约实例: 然后,可以确定地址0保存数字2,地址1保存智能合约地址

86330

让价值流动——区块链跨链技术

Interledger协议使两个不同记账系统可以通过第三方“连接器”或“验证器”互相自由地传输货币。 比如说:在不同账本之间进行价值转移和互换,总会碰到各种问题。...BTC Relay是一种基于以太坊区块链智能合约,把以太网络与比特币网络以一种安全去中心化方式连接起来。BTC Relay通过以太坊智能合约允许用户在以太坊区块链上验证比特币交易。...BTCSwap这个合约能知道这件事以便BTCSwap合约可以释放Bob之前eth 3.Alice通过bitcoin交易信息以及BTCSwap合约地址来调用btcrelay.relayTx(),btcrelay...验证这笔交易通过后就触发BTCSwap合约里面的processTransaction方法 4.BTCSwap合约在被触发后确认这个btcrelay地址是一个合法地址,然后释放之前Bobeth,交易完成...Lisk侧链模式在处理高交易量下如何解决网络拥堵问题提供了一个方法,用户只有用到相关用时才需要下载对应侧链,大大减少了无效同步数据,保持了整个网络高效运行。

1.3K60

用Hardhat和Ethers引入并测试知名NFT智能合约

译文出自:登链翻译计划[1] 译者:darren[2] 校对:Tiny 熊[3] 在本教程结束时,你将了解以下内容: 如何找到特定项目的智能合约代码 如何将该代码添加到本地开发环境 如何安装和设置一个简单...(Bored Ape Yacht Club),然后追踪智能合约代码。...)”页面,点击”Contract(合约)”标签: 这就是 BoredApeYachtClub 是经过开源验证合约源代码。...: 如何找到特定项目的智能合约代码 如何将该代码添加到本地开发环境 如何安装和设置一个简单安全帽开发环境 如何编译合约并为其编写测试 希望这能让你对使用 Hardhat、Ethers、Chai 和 Mocha...当你编写自己 Solidity 合约时,可以遵循相同流程,当与前端存储库结合使用时,你将拥有完整开发套件强大功能,其中包含非常直观流程和详尽文档。

1K30

智能合约开发语言 — Move 与 Rust 对比(#1)

使用这种机制,在 Solana 智能合约中实现了权限和所有权功能——例如为了访问某些资金,智能合约可以要求用户提供必要签名。 另外,在进行程序调用时,客户端需要指定该程序在调用期间将访问哪些帐户。...PDA (程序衍生地址)帐户是一种特殊帐户,它使程序能够在不拥有或存储私钥情况下提供帐户签名。PDA 保证只有为其生成 PDA 程序才能为其创建签名(而不是其他用户和程序)。...PDA 保证除了程序之外没有人可以直接访问程序资源。PDA 也可用于在确定地址创建帐户。 这些是 Solana 上安全智能合约编程基本构建模块。...为了使结构在交易中持久化,我们将其转换为可以拥有者、共享或不可变对象而已(特定于 Sui,这在其他 Move 变体版本中略有不同) ! 4....并且运行时没有进行特定检查以确保该对象在通过不受信任模块时没有被非法修改。那么是什么保证了这个对象安全呢?如何保证不可信代码不会滥用该对象?

95630

CSDN首发Chainlink(预言机)讲解:基础知识总结 到底什么是预言机本篇带你解析

智能合约 智能合约可以连接到现实世界资产市场价格,以产生强大应用程序。将智能合约与链下数据和服务安全地连接起来,使它们成为混合智能合约。这是使用预言机完成。...在了解到如何使用之前我们得先知道如何进行部署 部署智能合约 是将代码推送到过程blockchain ,此时它驻留在链上地址。一旦部署,代码就无法更改,并且被称为不可变。...只要知道地址,它功能就可以通过接口、在Etherscan上或通过web3js、web3py、ethers等库调用。合约也可以写成与区块链上其他合约交互。 智能合约如何使用预言机?...这个函数将使用预言机合约提供接口来请求数据,并将数据返回给智能合约。 处理返回数据:一旦预言机获取到数据,它将通过回函数将数据返回给智能合约。...智能合约可以在回函数中对数据进行处理,例如验证数据有效性、更新合约状态等。

10610

Chainlink(预言机)讲解:基础知识总结 到底什么是预言机本篇带你解析

智能合约 智能合约可以连接到现实世界资产市场价格,以产生强大应用程序。将智能合约与链下数据和服务安全地连接起来,使它们成为混合智能合约。这是使用预言机完成。...在了解到如何使用之前我们得先知道如何进行部署 部署智能合约 是将代码推送到过程blockchain ,此时它驻留在链上地址。一旦部署,代码就无法更改,并且被称为不可变。...只要知道地址,它功能就可以通过接口、在Etherscan上或通过web3js、web3py、ethers等库调用。合约也可以写成与区块链上其他合约交互。 智能合约如何使用预言机?...这个函数将使用预言机合约提供接口来请求数据,并将数据返回给智能合约。 处理返回数据:一旦预言机获取到数据,它将通过回函数将数据返回给智能合约。...智能合约可以在回函数中对数据进行处理,例如验证数据有效性、更新合约状态等。

5400

年薪百万技术面试都问啥?来收下这份必考题葵花宝典吧|套路

答:共识是按照特定协议(如以太坊协议)验证交易,将交易打包进区块并加入区块链过程。 问:以太坊挖矿操作工作原理是什么呢? 答:从原理上说,以太坊中挖矿操作几乎与比特币相同。...问:如何设定智能合约以太币余额限制,如果向有余额限制智能合约中发送超额以太币会发生什么?...答:你必须指定其中发件人地址“from”。其他一切都是可选。 问:将以太币发送到特定地址函数是否只有 web3.eth.sendTransaction()一个?...地址类型 关键字:address 地址类型用于保存长度为20字节值(以太坊地址长度)。地址类型有其内部数据成员,是所有智能合约基础。...接下来让我们谈谈智能合约可执行代码单元,也就是我们刚才提到函数。 (7)函数 如何在Solidity中声明一个函数呢?

1.2K10

一种转移并在Os拍卖不可转移灵魂绑定代币方法

在以太坊中,多签钱包往往是一个智能合约,而合约要实现多签管理,有两大种路径分别对应 Ownbit 多签钱包使用持签授权法:用你私钥对相应花费(金额、目标地址等等)进行签名,并给出签名结果 Gnosis...其解析原理是,依据前8位对应合约ABI文件可以得知对应函数名与参数列表,后续每64位按不同参数类型做不同转换做解析 所以,对于提案,只需要清晰规定,目标地址、金额、交易附带参数,即可执行任意操作...为地址提供了流动性和可整合性,A3S使地址能够安全地交易、租赁和托管。因此,他是地址成为可以转移和定价链上基础设施。...用户从智能合约地址工厂中铸造一个 Commander NFT,它就会自动部署相应智能合约智能合约所有者指向相应 NFT 持有者。...谁持有这个NFT,即是拿着这个智能合约遥控器,如果NFT发生了转移,那么智能合约管理权也发送了转移。

59120
领券