Closed SyntheticBird45 closed 10 months ago
Update: We consider using a runtime generated certificate for using TLS 1.3 with QUIC. This will reduce node overhead by not using the Snow library for Noise protocol
Website fingerprinting on early QUIC traffic https://arxiv.org/abs/2101.11871
According to this paper there is 8 different parameters that can be used in order to fingerprint Monero network:
@Boog900 Is this an active effort (to implement a brand new P2P network entirely instead of just matching Monero? I'd argue this should be closed for now/recast under the light of "Add support for experimental P2P network solutions" which don't yet lock down to QUIC/express it as an explicit need.
Nope this is not an active effort, also just noting that there is a PR open to add p2p encryption to monerod which we will also implement in Cuprate.
Summary
edit: This protocol is named Perovskite (reference to the other material used with Cuprate)
One of the features of Cuprate is traffic obfuscation. While we'll certainly implement Levin encryption when it'll be ready, the external protocol (out of Tor) used between Cuprate peers is based on QUIC. This issue is to track down discussions surrounding the design of this protocol.
Details
Why QUIC and not another protocol ?
Majority of web communications are TLS-based and since web represent the majority of internet flow, it is legitimate to ask why using QUIC while TCP-based solutions exist. The three main reasons are the following :
Original plans
The original plan was to implement this protocol using the Quinn library because it is async (unlike Quiche from Cloudflare which is fairly low-level). It would have implemented the similar specifications to the proposal for Levin protocol from vtnerd :
From what I would add a time processing obfuscation with random offset between 0-50ms before sending back a packet. But it's a bad idea, because for miners, these 50ms would certainly be precious. So if you have any idea to improve randomness and reduce fingerprinting, please share it with us
Another plan
Since then, I found out that WebTransport is an experimental protocol being actively stabilized for web browser. WebTransport is basically WebSocket for HTTP/3. A library from mozilla exist with support for it. It could be a solution to make network traffic more w e b Original RFC for WebTransport here : https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3/