A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | milestones | owner | estimated work | start date | end date | 1wallet.crazy.one | reference | @1wallet_ | ||||||||||||||||||||||||
2 | M2 | 1 day | 6/28 | mainnet launch with 10^2 = 100 users, each with $100 assets | ||||||||||||||||||||||||||||
3 | M3 | 19 days | 7/3 | 7/31 | mainnet launch with 10^3 = 1000 users, each with $100 assets | |||||||||||||||||||||||||||
4 | M4 | 8/1? | mainnet launch with 10^4 = 10,000 users, each with $1000 assets | |||||||||||||||||||||||||||||
5 | M5 | 9/10? | mainnet launch with 10^5 = 100,000 users, each with $1000 assets | |||||||||||||||||||||||||||||
6 | ||||||||||||||||||||||||||||||||
7 | 🍠aaron | Client Security | ||||||||||||||||||||||||||||||
8 | M5 | - | ✅Make the client resilient to brute-force attacks | |||||||||||||||||||||||||||||
9 | M5 | 2 | ✅Implement a new method that imposes a difficulty parameter on operation execution | |||||||||||||||||||||||||||||
15 | M5 | 2 | ☑️Replace EOTP hash function with a stronger candidate, Argon2 | |||||||||||||||||||||||||||||
19 | M5 | - | Document and analyze this method and the choice of the hash function | |||||||||||||||||||||||||||||
23 | M4 | - | ✅Offer Double OTP as a composable authentication method for enhanced security | |||||||||||||||||||||||||||||
27 | M4 | <1 | ✅Make a one-time recovery EOTP residing on the client that is time-independent | |||||||||||||||||||||||||||||
28 | M3 | <1 | 7/4 | 7/5 | ✅Ensure a commit is confirmed on blockchain, before revealing an operation (transfer or recovery). | |||||||||||||||||||||||||||
29 | ||||||||||||||||||||||||||||||||
30 | ☁️giv | User Interface | ||||||||||||||||||||||||||||||
31 | M3 | ☁️giv | 1 day | 7/1 | 7/5 | ✅display the total number and the total asset of 1wallet generated (waiting for Jenya to deliver API endpoint) | ||||||||||||||||||||||||||
32 | M3 | 🍠aaron | 3 | 7/5 | 7/9 | ✅command line interface (for slowmist audit, hackathon spec, client security focus) | ||||||||||||||||||||||||||
33 | ✅Add a button and a screen on wallet display page, that allow the user to set recovery address, if it is currently empty #7 | |||||||||||||||||||||||||||||||
34 | M5 | ☁️giv | 3 days | 7/5 | 7/8 | Substantially reduce client bundle size | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||||||||
36 | M5 | ☁️giv | dune analytics on the total number of 1wallet addresses | |||||||||||||||||||||||||||||
37 | M5 | ☁️giv | dune analytics on the total assets of 1wallet addresses | |||||||||||||||||||||||||||||
38 | M5 | 2 days | Add buttons and a screen on wallet display page, that allow the user to increase or decrease the wallet's spending limit | |||||||||||||||||||||||||||||
39 | M5 | If the user does not use any composable authentication method (i.e. has not set double OTP) | ||||||||||||||||||||||||||||||
43 | M5 | If the user has already set a composable authentication method, require the user to use the composable authentication method (double OTP) to adjust the limit | ||||||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||||||||
46 | 🍠aaron | Relayer | ||||||||||||||||||||||||||||||
47 | M3 | 🍠aaron | 1 | 7/4 | 7/5 | ✅simple IP-based rate-limiting | ||||||||||||||||||||||||||
48 | M3 | 🍠aaron | <5 | 7/16 | 7/21 | use relayer to sign for predefined transactions (nft purchase on da vinci, telegram tips) | https://eips.ethereum.org/EIPS/eip-777 | https://eips.ethereum.org/EIPS/eip-1207 | NFT transfer should happen on the NFT contract itself, so no signature is needed. The buying and selling of NFT is another matter. Selling may require signature. Need to find out exactly how it is verified right now, and how trading of NFT is done on Da Vinci. s: buy/sell nft is similar to other tx signing, which can be done later. for m3, let's support hrc20/hrc721 token transfers to/from 1wallets | |||||||||||||||||||||||
49 | M3 | 🍠aaron | <5 | 7/21 | 7/26 | use relayer to sign for staking transactions | Signature is verified against the signer's address. Stakes will be taken from signer's address. So we can't have the wallet contract to stake but have the relayer to sign. s: relayer for off-chain staking or delegation is similar to staking derivatives or staking pool. schedule a call with rj on a minimal setup even in a trusted pool settings? | |||||||||||||||||||||||||
50 | M4 | Account abstraction: gasless wallet creation | account abstraction: externally owned account (eoa) | near's account model | ||||||||||||||||||||||||||||
51 | M4 | Client-side transaction signing | ||||||||||||||||||||||||||||||
52 | M4 | Transaction authorization without forwarder | ||||||||||||||||||||||||||||||
53 | M5 | ~0 | ✅Compute stateless incoming request fingerprints using the hash of concatenations of geo-IP, user-agent, HTTP ACCEPT header, and wallet root hash. | |||||||||||||||||||||||||||||
54 | M5 | <1 | ✅Impose rate-limits for requests based on fingerprints. Requests exceeding rate limits per fingerprint will be responded with error-429 (Too Many Requests), subject to a delay that is doubled per consecutive error-429 resposnes, starting from 1 second. | |||||||||||||||||||||||||||||
55 | M5 | - | ✅ | Wallet creation: 1 per minute per fingerprint, and 30 per minute globally | ||||||||||||||||||||||||||||
56 | M5 | - | ✅ | Implement response prioritization: if a request is capped by global rate limit, it will be placed in a priority queue instead of responded with error-429 error. A counter will be kept for the number of requests in the queue per geo-IP, user-agent, and fingerprint. When an item is placed in queue, its priority will be set to -1 multiply by the sum of the counter values for its corresponding geo-IP, user-agent, and fingerprint. The server periodically (at a small interval) picks the request with the highest priority to serve. Any request staying for more than 10 seconds is automatically removed. | ||||||||||||||||||||||||||||
57 | M5 | - | ✅ | Commit: 30 per minute per fingerprint | ||||||||||||||||||||||||||||
58 | M5 | - | ✅ | Reveal (of any kind): 30 per minute per fingerprint | ||||||||||||||||||||||||||||
59 | M5 | - | ✅ | Others: 6 per minute per fingerprint | ||||||||||||||||||||||||||||
60 | M5 | ✅ Implement response prioritization: when an incoming requests exceeds the rate limit, it will be placed in a priority queue for the type of the request. The request with the smallest The priority is determined as the following: the sum of number of requests from each of the following | ||||||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||||||||
62 | 🍠aaron | Smart Contract | ||||||||||||||||||||||||||||||
63 | M5 | 1 | ✅Implement the patch to prevent the attack described above | |||||||||||||||||||||||||||||
64 | M5 | <1 | ✅Implement the new recovery mechanism (Part I §3, Part II §3) | |||||||||||||||||||||||||||||
65 | M4 | 1-2 | Implement the daily spending limit mechanism (Part II §4) | |||||||||||||||||||||||||||||
66 | M4 | 1-2 | ✅Implement activation of double OTP (Part I §2(a)(ii)) | |||||||||||||||||||||||||||||
67 | M4 | <0.5 | ✅Wrap up reviews for two outstanding pull requests: | |||||||||||||||||||||||||||||
68 | M3 | 🍠aaron | <1 | 6/25 | 7/12 | ✅Ivan's review on ONEWallet contract #3 | ||||||||||||||||||||||||||
69 | M3 | 🍠aaron | 7 | 7/12 | 7/19 | ✅Slowmist code review on the "command line" version (li to cooridinate) | ||||||||||||||||||||||||||
70 | M3 | 🍠aaron | 10 | 7/5 | 7/15 | ✅Dimitris' review/audit on security | ||||||||||||||||||||||||||
71 | M3 | 🍠aaron | 10 | 7/5 | 7/15 | ✅Adriana's review/audit on security | ||||||||||||||||||||||||||
72 | M3 | 🍠aaron | 1 | 7/6 | 7/6 | ✅Automatically trigger recovery process when the recovery address sends 0.1 ONE to the wallet | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||||||||
74 | dApp Integrations | |||||||||||||||||||||||||||||||
75 | M3 | ☁️giv | <3 | ✅support HRC21 (native and bridged asset) | ||||||||||||||||||||||||||||
76 | M3 | ☁️giv | <3 | ✅support HRC721 (NFT asset) | ||||||||||||||||||||||||||||
77 | M4 | 🎽li | gifting "one launch" (binance.us launch video by robin) to the first million 1wallet users | https://davinci.gallery/edit/0x541e2e5c7161c24c82371b252b20f790ccbea9f8 | ||||||||||||||||||||||||||||
78 | M4 | ☁️giv | 2 days | ✅NFT asset display gallery | ||||||||||||||||||||||||||||
79 | M4 | ☁️giv | 1 day | crazy.one names for wallet address | ||||||||||||||||||||||||||||
80 | M4 | ? | Integrate with Harmony staking | https://github.com/polymorpher/one-wallet/issues/9 | https://github.com/harmony-one/onewallet/blob/master/src/popup/pages/API/SignTransaction.vue#L263 | |||||||||||||||||||||||||||
81 | M4 | ☁️giv | 2-4 | Implement encrypted connection and session management, per WalletConnect spec | ||||||||||||||||||||||||||||
82 | M4 | ☁️giv | <1 | Implement user interface for parsing a WalletConnect QR code (via copy-paste) and parsing the underlying wc:... connection string. | ||||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||||||||
84 | 🍠aaron | Specification | ||||||||||||||||||||||||||||||
85 | M4 | - | The introduction of the new methods for client security in Part I | |||||||||||||||||||||||||||||
86 | M4 | 2 | New algorithms, hash functions, benchmark, and security strengths in practice | |||||||||||||||||||||||||||||
87 | M4 | 1 | Double OTP | |||||||||||||||||||||||||||||
88 | M5 | 2 | Yubikey or other generic, tamper-proof private-key based signing device. | |||||||||||||||||||||||||||||
89 | M5 | <1 | Alternatives considered during the design of the new methods for client security | |||||||||||||||||||||||||||||
90 | M4 | 2 | The user experience considerations and flow design in Part II | |||||||||||||||||||||||||||||
91 | M4 | 2 | The smart contract and protocol updates in Part IV | |||||||||||||||||||||||||||||
92 | M4 | ? | Feedback from Ivan @ivan-homoliak-sutd | |||||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||||||||
100 | ||||||||||||||||||||||||||||||||
101 | ||||||||||||||||||||||||||||||||
102 | ||||||||||||||||||||||||||||||||
103 | ||||||||||||||||||||||||||||||||
104 | ||||||||||||||||||||||||||||||||
105 | ||||||||||||||||||||||||||||||||
106 | ||||||||||||||||||||||||||||||||
107 | ||||||||||||||||||||||||||||||||
108 | ||||||||||||||||||||||||||||||||
109 | ||||||||||||||||||||||||||||||||
110 | ||||||||||||||||||||||||||||||||
111 | ||||||||||||||||||||||||||||||||
112 | ||||||||||||||||||||||||||||||||
113 | ||||||||||||||||||||||||||||||||
114 | ||||||||||||||||||||||||||||||||
115 | ||||||||||||||||||||||||||||||||
116 | ||||||||||||||||||||||||||||||||
117 | ||||||||||||||||||||||||||||||||
118 |