区块链技术:交易、验证、互操作性与可扩展性解析
1. 交易处理
在区块链中,交易处理并非简单的资金可用性验证,尤其是涉及智能合约交互时。以以太坊为例,其采用基于账户的状态模型,状态由一组账户(区块链地址)及其对应信息构成。账户分为两类:
- 外部拥有账户:由普通用户拥有,状态为其以太币(ETH)余额。
- 合约账户:代表已部署的智能合约,状态包括ETH余额、合约代码以及用于保存合约运行时状态的存储区域。
以太坊的交易是资产/价值和可选数据从发送者到接收者的转移,包含发送者、接收者、转移的代币数量以及若接收者为合约账户时的数据部分。若交易被合约账户接收,将执行相应合约代码。以太坊引入“gas费用”概念,交易包含startgas和gasprice两个值:
- startgas:代表交易执行允许的最大计算步骤数,发送者需根据交易复杂度合理确定该值,若矿工执行步骤超过此阈值,交易将停止并回滚。
- gasprice:发送者为每个计算步骤支付给矿工的ETH费用,为加快处理速度,发送者可提高该值,使矿工将交易包含在下一个区块中。
交易发生时,状态转换步骤如下:
1. 检查交易格式是否正确且有效,否则终止。
2. 设置交易费用为startgas × gasprice,从发送者余额中扣除,若余额不足则终止。
3. 初始化GAS = startgas,减去每字节一定数量的gas以支付交易字节数。
4. 将交易中指定的值从发送者余额转移到接收者余额:
- 若接收者不存在,则创建。
- 若接收者存在且为合约账户,运行合约代码直至完成或耗尽GAS。
5. 若转移失败,回滚除费用支付外的所有状态更
超级会员免费看
订阅专栏 解锁全文
852

被折叠的 条评论
为什么被折叠?



