正文
第一步,打开通道。如果Alice和Bob是第一次使用photon network进行转账交易,他们之前没有直接通道相连。那么对于交易发起者Alice来说, 她需要先使用打开通道功能,在Alice和Bob之间建立一条通道。此时,双方建立的通道内没有token,Alice和Bob可以在通道建立后,单独进行存款操作,也可以在建立通道的同时,存一部分token进通道内。完成了打开通道,就可以使用新建的通道。同理,Alice也可以与Charlie打开通道,Bob也可以与Charlie打开通道,我们假设是Bob与Charlie打开了通道。
第二步,存款进通道。如果Alice在第一步通道创建时没有进行存款,为了能够给Bob进行转账,则Alice需要使用通道存款功能,向新创建的通道存入一定数量的token,存款操作可以重复进行多次,Alice和Bob都可以向通道内存款。假定现在Alice向Alice Bob通道存了100 token进通道,则目前Alice Bob通道总容量为100 token,其中Alice为100 token,Bob为0 token。此外,Bob在Bob Charlie通道内也存入80 token。
第三步,链下转账。在光子网络的支持下,Alice可以向Bob发送30token的转账,因为目前Alice和Bob之间存在直接通道,并且在通道内Alice有100 token的余额,因此,直接通道转账成功。转账完成后,Alice的存款为70token,Bob的存款为30token,此时,因为交易成功发送,没有锁定token。Alice向Charlie发送20token的转账,因为Alice和Charlie之间没有直接通道,所以不能进行直接通道链下转账;但是,Alice和Bob,Bob和Charlie之间有直接通道,Alice可以通过Bob向Charlie进行间接通道转账。转账完成后,Alice Bob通道内余额为Alice 50token,Bob 50token; Bob Charlie通道内余额为Bob 60token,Charlie 20token。
第四步:关闭通道。Alice在与Bob交易完成后,不想再继续使用她们之间的这条通道,想取回通道内的资金,此时Alice可以使用关闭通道功能单方面关闭这条通道,并等待通道更新后进行结算。
第五步:更新通道。Alice为了不损失钱,在通道关闭的同时需要提交最新的余额证明,更新对方给自己的转账金额;同样,Bob得知Alice打算关闭他们之间的通道,为了防止自己受损失,Bob也需要使用更新通道功能,提交Alice转账给自己的证明,双方更新通道余额(并解锁已注册锁的交易)后,可以进行通道结算。