Skip to content

Commit 9602e79

Browse files
committed
README.md update
1 parent ac710cb commit 9602e79

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

README.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,37 @@
1-
# Eth2Phone Server
1+
# Eth2Phone
22
Sending Ether to a phone number with user verification via SMS.
33

44
## Project Overview
55
Sending ether to mobile phone number. Receiver doesn’t even need to have a wallet, but simply needs to open the web app, follow simple steps and receive ether using one of the possible ways.
66

77
## Demo
8-
Play with the demo at https://eth2phone.github.io/ . The demo app supports Ropsten network right now.
8+
Play with the demo at https://eth2phone.github.io/ . The demo app supports Ropsten and Mainnet networks right now.
99

10-
## Video:
10+
## Video:
1111
* [Sending demo](https://screencast-o-matic.com/watch/cbQoD1IbCD)
1212
* [Receiving demo](https://screencast-o-matic.com/watch/cbQoDXIbCp)
1313

1414
## Transfer details
15-
![Architecture](/Algorithm.png)
16-
1. Sender generates verification private-public key pair. Sender transfers ether to smart contract and assigns verification public key. On withdrawal smart-contract verifies that receiver's address is signed by the verification private key.
17-
2. Sender encrypts verification private key with random secret code and sends encrypted keystore data to verification server.
18-
3. Sender passes the secret code to receiver by the way he chooses (voice, sms, e-mail, etc.)
19-
4. Receiver types in his phone number and the secret code. Hashed phone verification request is sent to server. (So not at any point in time verification server has the verification private key.)
20-
5. Server sends the verification code via SMS to the phone entered.
21-
6 Receiver gets the code from SMS and types it in. If the code is correct, server returns encrypted keystore data to receiver.
22-
7. Receiver decrypts keystore data with the secret code provided by sender and gets verification private key. Receiver signs address to transfer to ether with verfication private key. Receiver sends signed address to verification server. Verification server tries to withdraw ether through smart-contract to signed address. If signature is correct, the transaction is executed and receiver gets the ether.
23-
24-
## Running on Ropsten
25-
You should be good to go if you set Metamask to point at the correct network.
15+
### Send
16+
![Send](/public/send.png)
17+
1. Sender generates transit private-public key pair.
18+
2. Sender deposits ether to escrow smart contract and assigns transit public key to the deposit. On withdrawal escrow smart-contract verifies that receiver's address is signed by the transit private key.
19+
3. Sender encrypts transit private key with random secret code and sends encrypted transit private key to verification server.
20+
4. Sender passes the secret code to receiver by the way he chooses (voice, sms, e-mail, etc.)
21+
22+
### Receive
23+
![Receive](/public/receive.png)
24+
1. Receiver types in his phone number and the secret code. Hashed phone verification request is sent to server. (So not at any point in time verification server has the transit private key.)
25+
2. Server sends the verification code via SMS to the phone entered.
26+
3. Receiver gets the code from SMS and types it in. If the code is correct, server returns encrypted transit private key to receiver.
27+
4. Receiver decrypts the transit private key with the secret code provided by sender and gets the transit private key. Receiver signs address of his choice with the transit private key. Receiver sends signed address to verification server.
28+
5. Verification server tries to withdraw ether from escrow smart-contract to signed address. If signature is correct, the transaction is executed and receiver gets the ether.
29+
30+
## Running on Ropsten or Mainnet
31+
Works best with Trust Wallet on mobile. You can also use a browser with Metamask on desktop.
2632
Load https://eth2phone.github.io/ and use the app.
2733

34+
2835
## Code structure
2936
`./src/controllers/SenderController` - controller for handling sender's requests
3037

@@ -34,9 +41,10 @@ Load https://eth2phone.github.io/ and use the app.
3441

3542
`./src/services/TransferService` - service for handling interaction with Transfer models stored in MongoDB
3643

37-
`./src/services/VerifiedProxyService` - service for handling interaction with VerifiedProxy Contract.
44+
`./src/services/EscrowContratService - service for handling interaction with Ethereum blockchain via e2pEscrow Contract.
45+
3846

3947
This repo contains NodeJS server code for handling SMS-authentication. Front-end code + smart-contracts are located in the separate repository - https://github.com/Dobrokhvalov/eth2phone
4048

4149
## License
42-
MIT Liscense
50+
MIT Liscense

public/receive.png

13 KB
Loading

public/send.png

14.5 KB
Loading

0 commit comments

Comments
 (0)