polymutex Profile Banner
polymutex Profile
polymutex

@polymutex

Followers
837
Following
13K
Media
113
Statuses
2K

Working on walletbeat, an L2Beat for wallets. Who watches the wallets? Mostly posting on Farcaster.

Joined January 2022
Don't wanna be here? Send us removal request.
@polymutex
polymutex
8 months
Working on walletbeat, an L2Beat for Ethereum wallets. Inspired by @VitalikButerin in one of his blog posts. Who watches the wallets?
Tweet media one
17
4
65
@polymutex
polymutex
3 days
๐Ÿšข This shipweek on Walletbeat:.- Ambire wallet data update.- Iterate on Safe multisig account support in tracked wallet data.- Adding EIP-7702 delegation handling to wallet data.- Setting up Vitest tests to do some wallet data integrity checks that can't be done at build time.
0
0
8
@polymutex
polymutex
7 days
RT @ameensol: squad
Tweet media one
0
21
0
@polymutex
polymutex
8 days
To another 10 years of Ethereum.
@ethereumfndn
Ethereum Foundation
8 days
Start the 10 year celebration now. To memorialize Ethereumโ€™s anniversary, the free, commemorative Ethereum Torch NFT is now available to mint. Minting will end on July 31st at 4PM UTC. Mint the commemorative NFT.
0
0
3
@polymutex
polymutex
9 days
Walletbeat hasn't given up ๐Ÿซก
Tweet media one
@wmitsuda
Willian Mitsuda (โ˜•, โ˜•) ๐Ÿฆ‡๐Ÿ”Š
12 days
IMHO weโ€™ve lost this battle many years ago already when having to rely on external RPCs (rotating or not) become the norm instead of making it easy to run your own RPC. damn, even so called โ€œeducatorsโ€ in this space donโ€™t run their own nodes and the first thing they teach.
1
0
10
@polymutex
polymutex
11 days
Donated more today. Please do the same. Roman needs help.
@rstormsf
Roman Storm ๐Ÿ‡บ๐Ÿ‡ธ ๐ŸŒช๏ธ
11 days
In NYC subway after long hours of work. Sleep deprived as hell. Trials are brutal.
Tweet media one
0
0
14
@polymutex
polymutex
11 days
@jimouris @CPerezz19 I think the "many requests from other users go through the same middleware" is an important part I missed. That does help add noise to the logs of the RPC providers. Maybe wallets and/or the middleware should also proactively generate their own noise!.
@jimouris
Dimitris
11 days
I'd argue that rotating RPCs in a TEE solves both problems. Problem 1 is solved since the RPC provider sees IPs from the TEE middleware. Problem 2 is solved since many requests (e.g., from other users) go through the same TEE middleware. Cont'd โคต๏ธ.
1
0
2
@polymutex
polymutex
11 days
@jimouris @CPerezz19 Response thread from @jimouris here!.Overall, I think we agree that:.- Rotating RPCs can be designed to be better for privacy than the status quo of raw unproxied RPCs.- Rotating RPCs aren't the endgame (PIR is).- There's more work to do here ๐Ÿซก.
@jimouris
Dimitris
11 days
I mostly agree with @polymutex; tho my take is that `Rotating RPCs` is not the final solution, but definitely enhances privacy. Here are my point-to-point takes โคต๏ธ.
1
0
1
@polymutex
polymutex
12 days
So give @jimouris a follow ๐Ÿซก.Also consider @CPerezz19 who did similar work (see below). But most importantly:.- Run your own node. - Ask your wallet developer to start caring about RPC-level privacy. Thanks for reading!.
@CPerezz19
CPerezz.eth โŸ  ๐Ÿฆ€
29 days
What you're seeing here is Metamask re-routed via ToRPC proxy to send all RPC requests via TOR to a Geth node. Enabling full privacy of IP/User-data with Address/funds/txs. Specially from wallet providers!๐Ÿ•ต๏ธ๐Ÿ•ต๏ธ. This is a pet-project (ToRPC) I've had lately. Privacy is normal.๐Ÿซก
Tweet media one
Tweet media two
Tweet media three
1
0
11
@polymutex
polymutex
12 days
Even if this thread appears critical of @jimouris's work, I want to emphasize that it is not intended as a dunk. I highly respect anyone who actually steps up to tackle this problem. This is under-researched and needs more attention, so it's heartening to see folks working on it.
1
0
6
@polymutex
polymutex
12 days
Things I didn't cover but also matter:.- RPC timing correlation attacks. - Wallets looking up multiple addresses' balance in a single RPC. - Non-Ethereum requests that leak similar data. Today's wallets are full of those; ask me how I know. - L2s with centralized endpoints. (lol).
1
0
6
@polymutex
polymutex
12 days
It is also better to have more providers than you have addresses. This way, each provider learns either one of your addresses, or none; never multiple. But the real fix?.- Run your own node!.- Ask your wallet developer to start caring about RPC-level privacy.
1
0
4
@polymutex
polymutex
12 days
Better solution: for an RPC about `address`, always send it to provider #`hash(address) modulo num_providers`. In other words, queries about the same address go to the same RPC provider. This ensures no provider learns your full set of addresses.
1
0
5
@polymutex
polymutex
12 days
Mixnets alone also don't solve problem 2. The problem remains that rotating RPCs naively (random provider on each request) is actually ๐™ฌ๐™ค๐™ง๐™จ๐™š for privacy: it means multiple providers get a view of multiple of your addresses over time.
1
0
5
@polymutex
polymutex
12 days
Why aren't mixnets used today?.- Users don't ask for RPC-level privacy out of their wallet developers. Walletbeat fixes this. - <100ms RPCs UX expectations. Mixnets/middleware add latency. - Integration in browser wallets requires reimplementing TLS in JS to encrypt the last hop.
1
0
5
@polymutex
polymutex
12 days
A proxy should be blind to what it passes through. Cryptography solves this without the need for TEE trust assumptions. Mixnets such as Tor/Nym/HOPR work this way: Encrypt the payload in multiple layers of encryption, where each hop peels one layer of encryption off the onion.
Tweet media one
1
0
5
@polymutex
polymutex
12 days
The client can verify this by performing a workload attestation dance. It is possible, but complicated to implement. I have not seen a real implementation of this in practice, and it's not clear to me if that would be easier to implement than just integrating an actual mixnet.
1
0
4
@polymutex
polymutex
12 days
TEEs are not bulletproof. But even if we assume they work as intended, the client still needs to verify that the middleware they are talking to is actually running in a TEE at all. Otherwise, the client (wallet) can't be sure the middleware isn't actually logging everything.
1
0
6
@polymutex
polymutex
12 days
The second solution solves problem 1 by introducing a middleware in a TEE. It is essentially a blind proxy, for which blindness is provided by the TEE. But problem 2 remains unsolved: Providers can still associate your Ethereum addresses with one another.
@jimouris
Dimitris
13 days
Simple idea: a server between the wallet and the RPC providers. The server randomly uses a different RPC for each request. Run this in a TEE ๐Ÿ”’! The cloud doesn't see your requests (careful, they still metadata!) - and the RPC doesn't see your IP (they see the cloud's)
Tweet media one
1
0
5
@polymutex
polymutex
12 days
The first solution proposed solves neither problem. In fact, it makes problem 1 ๐™ฌ๐™ค๐™ง๐™จ๐™š: instead of one provider that knows your IP and Ethereum addresses, now ๐™ข๐™ช๐™ก๐™ฉ๐™ž๐™ฅ๐™ก๐™š such providers know them both.
@jimouris
Dimitris
13 days
I see two ways of implementing rotating RPCs:.โžก๏ธ 1. Implement this functionality in wallets directly. Advantages ๐Ÿ‘.โ€ข Fast. โ€ข Disadvantages ๐Ÿ‘Ž.โ€ข This can't be adapted to any wallet as it'd need to be implemented every time. โ€ข **More importantly** RPCs still see the IP of the.
1
0
6
@polymutex
polymutex
12 days
๐—ฃ๐—ฟ๐—ผ๐—ฏ๐—น๐—ฒ๐—บ ๐Ÿญ: No provider should be able to associate your Ethereum address with your IP address. ๐—ฃ๐—ฟ๐—ผ๐—ฏ๐—น๐—ฒ๐—บ ๐Ÿฎ: No provider should be able to associate two of your Ethereum addresses with one another. Particularly important in the context of stealth addresses.
1
0
10