/**
- @title Escrow Contract
- @dev Contract allows to send ether through verifier (owner of contract).
- Only verifier can initiate withdrawal to recipient's address.
- Verifier cannot choose recipient's address without
- transit private key generated by sender.
- Sender is responsible to provide transit private key
- to recipient off-chain.
- Recepient signs address to receive with transit private key and
- provides signed address to verification server.
- (See VerifyTransferSignature method for details.)
- Verifier verifies off-chain the recipient in accordance with verification
- conditions (e.g., phone ownership via SMS authentication) and initiates
- withdrawal to the address provided by recipient.
- (See withdraw method for details.)
- Verifier charges commission for it's services.
- Sender is able to cancel transfer if it's not yet cancelled or withdrawn
- by recipient.
- (See cancelTransfer method for details.) */