Can we figure this out somehow?

16 replies 196 views
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#1Oct 10, 2024, 02:07 AM
I've been using ELECTRUM for a really long time, like way longer than I can recall. But with all this talk about fees and dust limits, I started wondering if there's any way to track which node you used to send a transaction. I'm especially curious about this for mobile wallets like Electrum. I'm planning to run a little experiment to see if I can find out which nodes I used to broadcast a specific transaction in the past, or maybe even the nodes that confirmed it, like the very first one.
3 Reply Quote Share
cryptobridgeSenior Member
Posts: 221 · Reputation: 1481
#2Oct 12, 2024, 11:19 AM
There is this thread that did tested some minimum dust transactions some years back for segwit and non segwit address [TESTED IT] Minimum transaction value, you can do the same, connect to different nodes with known min relay fee betweent 0.1 and 1 sat/vbyte. Try dust limit or try inputs less than dust limit if they are going to be accepted on their mempool. Since you use electrum, we have some active servers like LoyceV's 0.1 sat/vbyte Electrum Server Adventure and DireWolfM14's Electrum SPV Server, you can test try both.
2 Reply Quote Share
humbleledgerLegendary
Posts: 1027 · Reputation: 6554
#3Oct 14, 2024, 10:52 AM
I received a 40 sat transaction last year. Start reading here.
1 Reply Quote Share
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#4Oct 14, 2024, 02:04 PM
Well I do understand what you are saying but the main point I'm trying to make is if for example I made a transaction a couple weeks ago, is it possible for me to actually go back and check the transaction and get the node that propagated the transaction? I've been doing a little reading for a while now. From what I've gathered so far it seems it's not possible but I'm still looking to see if there's a way around it actually. Honestly I'm surprised to see this never thought it's possible looks very feasible for paying forum evil fees last I tried I couldn't broadcast less than 1000 sat/vbyte but I can't remember whose node I was connected to.
4 Reply Quote Share
cryptobridgeSenior Member
Posts: 221 · Reputation: 1481
#5Oct 14, 2024, 05:53 PM
This isn't possible. If you are connected to a node you know or your personal node, that's the first node that accept your transaction to it mempool, upon arrival they get propagated to immediate nodes that you are connected until this relay to all other active node on the network waiting to be mine. Once it's mine and added to the block, the miner relay to other mining nodes to be kept permanently. You can only check the mining pool that mine your transaction on the network and the block it was mined to but not node. You can't even view nodes activities on block explorer. Yea, it's not.
0 Reply Quote Share
sage_moonSenior Member
Posts: 273 · Reputation: 1371
#6Oct 14, 2024, 11:05 PM
I couldn't find anything in the source code that would allow Electrum to save a log that does what you're asking, but I assume you could achieve it by modifying the source code so that each transaction log is saved locally. You wouldn't be able to see what happened before that, but you could collect it for future reference. The only way you could investigate this would be if you didn't have an automatic configuration and had a specific server selected, but given your question, it's obvious that's not the case. Is it possible for someone to trace the origin? Yes, what an attacker would do is run their own Electrum servers, and then there would be no doubt about the origin, unlike with spy nodes. They know it with absolute certainty... even so, you could protect yourself by configuring your network. The ideal protection would be Tor, your own Electrum server, and your own node.
3 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#7Oct 14, 2024, 11:36 PM
As mcdouglasx said, you can't. Currently, your option here is to enable logs, and take note of the "as new interface" lines' timestamp indicating the Electrum server (node) that you're currently using at that time. Other connection-related logs are for extra servers that aren't used to broadcast your transactions. Then the tricky part: You must cross-check the transaction in your history and the "adding signature for" log's timestamp indicating when it's signed by the wallet. "Tricky" because it could've been signed and saved locally but broadcasted on a later date, in this case, you should see a log about saving it to wallet.storage next to it. In case it's saved externally (e.g.: psbt) and imported later to broadcast, you can't fully rely on the logs about its txid in the synchronizer since it can also mean that it's broadcasted elsewhere. But since it's personal (you said "I used to broadcast"), you should be able to remember if it's the case. On the other hand, the time in the GUI are based from the confirmation time, not when it's broadcasted so you can't rely on it. Once you get a good indication of its timestamp based from your assessment on the available info, compare that to the last "new interface" line during that session. That should be the first node where you broadcasted the transaction. Of course, if you haven't enabled logging at that time, you can't do this. This can be done by checking which miner mined the particular block where your transaction is included. Using blockexplorers could answer this if the miner (pool) is known.
3 Reply Quote Share
silentchainHero Member
Posts: 473 · Reputation: 2317
#8Oct 15, 2024, 09:32 PM
What would prevent OP’s node from broadcasting  transaction to a single node of their choice? In my view doing it this way would let OP have their cake and eat it too. Or am I missing something?
4 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#9Oct 16, 2024, 03:21 AM
I think you missed the part where he said "in the past". Of course, if it's starting today, he can do that to get an absolute control where he wants to broadcast his transactions. But since he's asking, it's a given that he's not using a static Electrum server (node) or he has no idea which server that he used in the past.
2 Reply Quote Share
silentchainHero Member
Posts: 473 · Reputation: 2317
#10Oct 17, 2024, 04:25 AM
Nope, I didn’t miss that. From what OP said I understood that they just wanted to be prepared for such task, so that I emphasized that if OP is obsessed with the idea of identifying the first node that broadcasts their initial transaction, there is a real way to do it provided this method is applied consistently to all of OP’s transactions. But still I don't understand why on earth OP  needs it. In my view it is entirely pointless task.
5 Reply Quote Share
falcon_wizardSenior Member
Posts: 123 · Reputation: 896
#11Oct 17, 2024, 08:45 AM
I consulted a little bit with good-old Google but it wasn't much help. I couldn't find any topics or discussions about OP's question from the past. ChatGPT says it isn't possible either (for whatever that's worth). The Bitcoin Evidence Base AI was no help either and responded worse to the prompt than ChatGPT. @Mia Chloe Is it just curiosity or why are you looking for the nodes that broadcast your past transactions? I am curious.
4 Reply Quote Share
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#12Oct 17, 2024, 09:17 AM
I'm curious why you are curious about my curiosity lol.....  well basically I made a broad a couple weeks before I made this post and if I can remember correctly I use about 0.5 sats/vbytes but I couldn't remember what node I was connected to if it was direwolf's or just a random public node. The rest of it is just out of curiosity but I think I've gotten the most of the answers though funnily I'd have to use desktop Electrum for most of the work around mobile barely has some features.
6 Reply Quote Share
falcon_wizardSenior Member
Posts: 123 · Reputation: 896
#13Oct 17, 2024, 10:06 AM
I don't know many Electrum servers that accept below 1 sat/vByte transactions although some time since their introduction have passed and the list should be longer. There is LoyceV (electrum.loyce.club:50002) and another one that I tested in the past but was recently offline for a bit (electrum.labrie.ca). True. Electrum for desktop is significantly better than its mobile alternative. Try Blue Wallet if you are using Android. I find it to be better. You can connect to Electrum servers of your choice from the settings.
1 Reply Quote Share
darklordSenior Member
Posts: 226 · Reputation: 1417
#14Oct 17, 2024, 03:32 PM
hi Mia do you just want to charge below 1sat/vbyte? I used to use fees even up to 0.2sat/vbyte a few months ago, but I use my own private server. But are you sure you want to do it when the mempool is quite dense as it is now? recently I sent BTC at a fee of 1.56sat/vbyte already two hours unconfirmed. I think if you just want to set the electrum server in the mobile version, you can still do it.
4 Reply Quote Share
yield_forkFull Member
Posts: 162 · Reputation: 728
#15Oct 17, 2024, 05:49 PM
No, and it's a good thing this isn't possible, because point of view, there would be a serious privacy problem in the wallet that would allow such a feature. Cause that would make the work of surveillance agencies a lot easier, don't you think? I remember that in the remote past, the block explorer blockchain[.]info (now .com), recorded the IP of the transaction that last relayed the transaction (probably) of all transactions. But that was a long time ago, more than 14 years ago i think, can anyone remember? https://bitcoin.stackexchange.com/questions/3934/locating-transactions-by-the-relayed-by-ip-in-blockchain-info Additionally, Bluewallet (and ibis wallet, although in beta) supports the electrum seed version format, but does not create electrum seeds.
0 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#16Oct 19, 2024, 08:51 PM
It's not very useful anyways since the logged IP doesn't mean that it's the first node who broadcasted it. It's just the IP of their peer who relayed the transaction to them, they can't tell if it's just relayed to that node or if it's the actual sender. I'll expand the best answer in that reference: Using --connect to a node will isolate your node to connect exclusively to it. So when you broadcast, it'll be only relayed to that node at first and then that node will relay it to its peers to propagate. If one of its peers is that blockexplorer that logs IP, its IP will be logged instead. It indirectly explains how t works.
3 Reply Quote Share
falcon_wizardSenior Member
Posts: 123 · Reputation: 896
#17Oct 20, 2024, 12:57 AM
It might not be the best time to send sub 1 sat/vByte transactions. You are right. I am looking at the mempool at https://jochen-hoenicke.de/queue/#BTC,2h,weight to get an estimate. At the time of writing this, you would need to pay 1.2 sat/vByte for a reasonable high chance of a next block confirmation. If we go down to the 0.2 sat/vByte level for example, we can see around 15 vMb of unconfirmed transactions waiting to be picked up by miners.
6 Reply Quote Share
?Reply
Sign in to reply to this topic

Related topics