支付通道与状态通道技术详解
1. 单向支付通道的关闭
在单向支付通道中,接收方可以使用发送方发送的最新值和签名来关闭通道。以下是实现该功能的代码示例:
// src/components/Recipient.js
async closeChannel() {
const { web3, recipient } = this.props;
const { channel, signature, received } = this.state;
// 发送关闭交易
await channel.methods.close(
received.toString(), signature
).send({ from: recipient });
// 更新接收方的余额
const balance = BN(await web3.eth.getBalance(recipient));
this.setState({ channel: null, balance });
}
调用此方法后,通道合约将被销毁,接收方将收到发送方进行的所有微支付的总和。
2. 双向支付通道
双向支付通道允许两个平等的参与方相互交换资金,双方都可以发送和接收资金。但这种对称性使得通道的实现更加困难,例如在这种模型中,哪一方应该被允许关闭通道是一个问题。
假设 Alice 和 Bob 进行微交易,Bob 向 Alice 发送了一笔大额支付,但在 Alice 兑现之前,Bob 提交了一条旧消息并关闭了通道。这就导致了一个问题:恶意参
超级会员免费看
订阅专栏 解锁全文

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



