A{
var certificate_A;
var amount;
borrow(id_A/certificate, signed_request{pk_A & amount})
receive()
}
B{
var certificate_B
var transaction; //hash
send_request(id_B/certificate,
signed_transaction{ request{pk_A & amount},
pk_B })
receive()
}
S{
var message;
response{id_C/certificate, signed_response_message(
update_balance_B{update_balance_A, pk_A}, pk_B},
pk_C)
}
- A signs transaction and sends own certif. and amount to B
- B signs lending contract (message from A) with B's private key
- B sends request to MobilePay
- Server S responds to B with encrypted message with updated balances of A & B (B cannot decrypt the message for A, because doesnt have pk of A.)
- B decrypts the message and updates its own balance & sends update to A
- A makes update