Ethereum基础
Ethereum (PoS) 运行逻辑
交易:用户通过以太坊网络发起交易,例如转账、创建智能合约或调用智能合约的功能。每个交易包含有关发起人、接收人、转移金额、数据以及为了防止欺诈而支付的手续费(gas费)的信息。
交易验证:交易被网络中的节点接收,并进行由验证者进行初步验证,例如检查交易的数字签名和账户余额。
区块的形成:一旦交易被验证,它们会被网络中的验证者收集并放入区块中。在创建区块的过程中,会根据交易所附带的手续费(高费用可能优先处理)来选择交易。
使用权益证明:
验证者的参与者将他们的以太币作为“抵押”锁定,以获得处理交易和创建新区块的机会。验证者的选择基于他们的抵押金额和其他因素,如随机性。
验证者对新区块中的交易进行验证并提议新区块。其他验证者会对这个区块进行检查,并通过一个共识过程对其进行认证。
区块的确认:一旦区块被网络广泛接受(多数节点同意并在其各自的区块链版本上添加该区块),该区块就被视为已确认。确认的区块将连接到区块链上,所有其中的交易也随之被最终确认。
智能合约运行举例
当我通过借贷协议抵押了 10 ETH并借出了 100 USDC,整个过程在以太坊区块链上是如何进行的?
1. 合约调用
首先,你会通过以太坊钱包或应用与借贷平台的智能合约进行交互。这通常通过调用智能合约的特定函数开始,例如,你可能会调用一个名为deposit
的函数来抵押 10 ETH,并调用borrow
函数来借出 100 USDC。
2. 交易创建和签名
如同任何以太坊交易,你需要指定交易的具体参数,如:
To(目标地址):智能合约的地址。
Value(数值):抵押的ETH数量(10 ETH)。
Data(数据):包含你要调用的合约函数及其参数的特定信息,如借出100 USDC。
Gas Limit 和 Gas Price:为了执行这些操作,你需要设置合适的Gas限制和价格。
交易生成后,你需要使用你的私钥对其进行签名,以验证你的身份并授权交易。
3. 广播和网络验证
签名的交易被广播到以太坊网络。网络节点接收到交易后,将执行以下检查:
验证签名和Nonce:确保交易没有被篡改,并且是连续的。
检查账户余额:确保你有足够的ETH来支付Gas费用和抵押。
4. 智能合约执行
一旦交易被验证,矿工将其包括在新的区块中。执行交易时,以太坊虚拟机(EVM)会按照智能合约编码的逻辑进行操作:
抵押ETH:智能合约记录你抵押的 10 ETH,并可能在内部账户余额中为你发放相应的代币(如cETH或其他代表你抵押份额的代币)。
借出USDC:根据合约逻辑和当前协议的状态(如流动性、抵押率等),合约计算并批准你借出 100 USDC 的请求。这通常涉及到检查你的借贷条件是否满足,如抵押物足够覆盖借款。
5. 状态更新和记录
智能合约执行所有操作后,合约的状态将更新(如借款记录、新的余额等),这些状态变更被记录在区块链上。完成后,合约也会发出事件或日志,这可以被前端应用捕捉并相应地更新用户界面。
6. 确认交易
当区块被矿工挖掘并添加到区块链上后,其中的交易(包括你的合约操作)被视为已确认。通常建议等待若干确认以确保交易的不可逆性。
通过这一流程,以太坊可以确保即使是复杂的借贷操作也能安全、透明且不可篡改地执行。智能合约的代码质量和逻辑严密性对于系统的整体安全性至关重要,因为合约代码一旦部署,其逻辑就固定下来,任何错误或漏洞都可能被利用。
Last updated