If you use three relays, then you have three 'sessions' nest...

npub1zthq85gksjsjthv8h6rec2qeqs2mu0emrm9xknkhgw7hfl7csrnq6wxm56
hex
8f2cdb1c9313f6e7b420edc5b07e52f9feb7e9f3aa740d33d5811bef06d07c00nevent
nevent1qqsg7txmrjf38ah8ksswm3ds0ef0nl4ha8e65aqdx02czxl0qmg8cqqprpmhxue69uhhyetvv9ujuem4d36kwatvw5hx6mm9qgsp9msr6ytgfgf9mkrmapuu9qvsg9d78ua3ajntfmt580t5llvgpesvyx52fKind-1 (TextNote)
↳ 回复 SatsAndSports (npub1zthq85gksjsjthv8h6rec2qeqs2mu0emrm9xknkhgw7hfl7csrnq6wxm56)
I'm making great progress(*) working on MONAD, which I just seriously started researching and planning on Sunday night Monetized Onion Network Access...
If you use three relays, then you have three 'sessions' nested inside each other so that each relay learns very little about your connection. You have one session with the first relay, and you use that connection to open a second session with the second relay, and so on. Typical onion routing.
NoiseNK encryption+authentication in session, which itself wraps HTTP2 which can be used for multiplexing multiple requests. One of the streams inside HTTP2 is used to control the payments. So the client exposes a SOCKS5 proxy which might be processing multiple requests in parallel, which is responsible for setting up these nested sessions and making the payments, while all the relays (except the last) just see a single encrypted stream. The relays know the previous hop and the next hop, but that's it; except that the final relay might see you exiting to multiple 'normal' final connections.
Don't be misled by the 'HTTP' in 'HTTP2'; the multiplexed connections can be any arbitrary TCP session, I use it for 'ssh' and am happy with the latency
If there are multiple users, then a given pair of relays would have one connection per user, which has one of that user's sessions (which might itself be many managin multiple 'exit' connections). Those per-user connections are wrapped inside QUIC, which apparently is the very scalable way to multiplex large numbers of connections. This should help a little with privacy, as external viewers see all the traffic between two relays as just one QUIC connection, and QUIC itself adds another layer of encryption. Also, QUIC sometimes merges packets from separate user's streams into one packet, which might help a little with privacy too
I'm not implying QUIC is designed for privacy, but I find it a good place to start.
Links (I haven't pushed recently, trying to only push with each major update):
-
MONAD itself: https://github.com/SatsAndSports/MONAD
-
Cashu Spilman Channels: https://github.com/SatsAndSports/cashu_spilman_channels
原始 JSON
{
"kind": 1,
"id": "8f2cdb1c9313f6e7b420edc5b07e52f9feb7e9f3aa740d33d5811bef06d07c00",
"pubkey": "12ee03d11684a125dd87be879c28190415be3f3b1eca6b4ed743bd74ffd880e6",
"created_at": 1775219010,
"tags": [
[
"e",
"41c1597d6fa7780df95c3cff8ece46874fbc49d1199f3e606ceed04c671c3f94",
"wss://nos.lol/",
"root",
"12ee03d11684a125dd87be879c28190415be3f3b1eca6b4ed743bd74ffd880e6"
]
],
"content": "If you use three relays, then you have three 'sessions' nested inside each other so that each relay learns very little about your connection. You have one session with the first relay, and you use that connection to open a second session with the second relay, and so on. Typical onion routing.\n\nNoiseNK encryption+authentication in session, which itself wraps HTTP2 which can be used for multiplexing multiple requests. One of the streams inside HTTP2 is used to control the payments. So the client exposes a SOCKS5 proxy which might be processing multiple requests in parallel, which is responsible for setting up these nested sessions and making the payments, while all the relays (except the last) just see a single encrypted stream. The relays know the previous hop and the next hop, but that's it; except that the final relay might see you exiting to multiple 'normal' final connections.\n\nDon't be misled by the 'HTTP' in 'HTTP2'; the multiplexed connections can be any arbitrary TCP session, I use it for 'ssh' and am happy with the latency\n\nIf there are multiple users, then a given pair of relays would have one connection per user, which has one of that user's sessions (which might itself be many managin multiple 'exit' connections). Those per-user connections are wrapped inside QUIC, which apparently is the very scalable way to multiplex large numbers of connections. This should help a little with privacy, as external viewers see all the traffic between two relays as just one QUIC connection, and QUIC itself adds another layer of encryption. Also, QUIC sometimes merges packets from separate user's streams into one packet, which might help a little with privacy too\n\nI'm not implying QUIC is designed for privacy, but I find it a good place to start.\n\nLinks (I haven't pushed recently, trying to only push with each major update):\n\n- MONAD itself: https://github.com/SatsAndSports/MONAD\n\n- Cashu Spilman Channels: https://github.com/SatsAndSports/cashu_spilman_channels",
"sig": "11b8593dd21c1645aef92a8780c41a9fdb5331e5a26478de274ec01a23c9862e85d8bdef2e091c2c2f4b92c0a4107982cbe6ff0b8875f5844acbe32305097122"
}