Author

Topic: Built-in mixer on Core (Read 228 times)

hero member
Activity: 882
Merit: 792
Watch Bitcoin Documentary - https://t.ly/v0Nim
November 28, 2023, 03:16:08 PM
#11
If we implement mixer on Core, this will help governments to tag Bitcoin as a currency that helps terrorists and criminals and so on.
You're telling me it isn't yet tagged as funding terrorism? Literally hundreds of articles every year, and even bills, proposing regulation of some sort to prevent "further terrorism funding".
It's still tagged but not so much. Is it good idea to add fuel to the fire? It's never a good idea.

And no. Bitcoin Core isn't Bitcoin. It's simply an implementation of a Bitcoin client. An optional mix setting in QT wouldn't be that kind of a red alarm. Gaining privacy on-chain is already possible and it works fine. There would be a red alarm if we hark forked into an enforced-private cryptocurrency on a protocol level.
I know Bitcoin Core is not a Bitcoin but Bitcoin Core is really the core wallet, it's the official wallet for Bitcoin. Probably not on paper declarations verified by government but it's clear. By the way, won't it cause scandal if we add mixer in Core? Is there really a necessity of this? This is the question. I think we don't really need it and there are more then enough 3rd parties to mix or coinjoin bitcoins.
Just my opinion, I don't refuse your one too, it's a debatable question where arguments are plenty on both sides.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
November 28, 2023, 03:04:26 PM
#10
If we implement mixer on Core, this will help governments to tag Bitcoin as a currency that helps terrorists and criminals and so on.
You're telling me it isn't yet tagged as funding terrorism? Literally hundreds of articles every year, and even bills, proposing regulation of some sort to prevent "further terrorism funding".

And no. Bitcoin Core isn't Bitcoin. It's simply an implementation of a Bitcoin client. An optional mix setting in QT wouldn't be that kind of a red alarm. Gaining privacy on-chain is already possible and it works fine. There would be a red alarm if we hark forked into an enforced-private cryptocurrency on a protocol level.
hero member
Activity: 882
Merit: 792
Watch Bitcoin Documentary - https://t.ly/v0Nim
November 28, 2023, 02:52:30 PM
#9
I think it's better to leave bitcoin core as it is right now but it's always to add features like RBF, Transaction cancel via double spend and so on, features that make bitcoin more friendly and help people to fix some basic mistakes. I am open for every innovative features to be added on Bitcoin Core but mixers are not a good idea on Core to my mind.
If we implement mixer on Core, this will help governments to tag Bitcoin as a currency that helps terrorists and criminals and so on. It will be a red alarm for companies to implement bitcoin, built-in mixer on core might also lead to moving away from bitcoin asap or governments will help centralized institutes like exchanges to become more stronger. Maybe I panic but don't really like the idea. If anyone wants super high privacy, there is a monero and they can use that. Leave bitcoin the way it is!
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
November 28, 2023, 07:03:50 AM
#8
You can't mix coins without receiving coins from other people's wallets, meaning from other people running Bitcoin Core and SPV clients, and since a node by itself has no access to private keys - it can only verify stuff - that means it cannot do that and the wallet subsystem would have to do that, BUT since the wallet can only see local addresses, such a venture is not possible.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
November 27, 2023, 04:53:08 PM
#7
Closest thing we have to that is Joinmarket. You import a Bitcoin Core wallet and configure it to connect with your Bitcoin Core node. Cannot start up without Bitcoin Core running. On start up, it connects with other Joinmarket nodes which run under the same protocol.

It is like a second-layer of Bitcoin Core.
member
Activity: 378
Merit: 93
Enable v2transport=1 and mempoolfullrbf=1
November 27, 2023, 09:45:01 AM
#6
I would just prefer to have it all inside Core so you can select to make a non-private transaction or a private transaction, which would enter into a pool of other people that are wanting to do a non-private transaction and join all of these somehow, with a fee market or something like that. I would like to get your view on this and if it's worth developing for Bitcoin Core with the eventual implementation or nobody is going to want this within the wallet software? And again the legal implications would also be interesting to know if anyone is an expert on this matter.

Until then I guess we have to keep using other wallets and webs to get any privacy out of Bitcoin.

Wasabi Wallet, BTCPay Server, and Trezor all offer these pools to coinjoin with so you gain full privacy for all of your transactions.  It would be great if Bitcoin Core also offered the same, but the reliance on a service provider brings too many potential options for configuration that would cause a lot of bloat.
copper member
Activity: 906
Merit: 2258
November 27, 2023, 12:34:31 AM
#5
Quote
Could the network of nodes be used in a way to create a built-in system to send joined transactions of sorts within the Bitcoin Core?
You can use different sighashes than SIGHASH_ALL, and you can use PSBT, to create a transaction, that is "partially signed". Maybe more UI improvements are needed, to make it as simple as "Coin Control": for example, you select some inputs, some outputs, click "Create transaction", and then pick sighashes in the UI. And then, you can see, what is signed, and what is not.

So, the first step to join any transactions, is to make them different than SIGHASH_ALL. The second step is to observe your mempool, and join some transactions, if they can be joined. All of that can be technically done, but having built-in privacy is not the first step: it is the final step, and there are many low-hanging fruits, which are required first, before you even start thinking about privacy.

Quote
Or is this considered outside of the scope of the project and you are always going to need to use some sort of 3rd party software or web as a service?
It is not "outside of the scope", because if you cannot reach functionality X, then it probably means, you can split it into N steps, and merge at least some of them into Bitcoin Core. For example: is it possible to add Lightning Network support into Bitcoin Core here and now? No. Why not? Because you cannot handle multisig properly from UI. First, focus on getting just that, and then think about LN. Not the other way around. Can you make 2-of-2 multisig on Taproot, from UI? If not, then it is more important than implementing LN in Core. See? You think about winning a marathon, but your legs are not yet implemented. Or they are implemented in console-only mode, so you can technically run quite fast, but you need external tool, because it is not yet automated on UI level.

Quote
Could there be any legal implications in doing this?
No, if you handle things correctly. Providing multisig is just providing a tool, that is available in the protocol. And it is implemented in console, but not in UI. The same with sighashes. And the same with a lot of other stuff.

Quote
see, "privacy enhancing" coins like XMR, I reckon had some sort of problems when being listed in some wallets
We don't have those features on the protocol level, to be affected by them. Unless you try to bring 2P-ECDSA implementation into Bitcoin Core, but it is a different story: https://duo.com/labs/tech-notes/2p-ecdsa-explained

Quote
I would like to get your view on this and if it's worth developing for Bitcoin Core with the eventual implementation or nobody is going to want this within the wallet software?
1. My view on this is something you can read above.
2. It is worth developing, and it is in progress.
3. People want that, but their strategy is to implement the basic protocol support first, and add more features later, if there will be no other tools available.

Quote
And again the legal implications would also be interesting to know if anyone is an expert on this matter.
I am not an expert, but I think if something is directly available in console, then it can be safely ported into UI, and nobody will complain. Because if there would be some legal implications, then they should be raised when console version was released. Unless you have some law, that allows something in console, but bans it in UI, but I cannot think of any such example. And if you bring up anything like that, then what about ASCII-art?

Quote
Then how do you choose the PERFECT Coin Join or Mixing technique to introduce to Bitcoin Core?
1. Silent payments are already chosen.
2. Supporting N-of-N multisig on Taproot is already chosen.
3. Adding more sighashes is already chosen.
4. OP_CAT or similar improvements are already chosen.

It depends, who you ask, but some work is already in progress. We even had some failed attempt with OP_CHECKTEMPLATEVERIFY as a soft-fork.

Quote
How do you pick the right one then?
Just by posting Pull Request on GitHub, or a proposal to a mailing list, and voting on that. There are procedures for reviewing proposals, and code changes, just use them, and convince the right people to merge it.

Quote
What if a new, better Privacy option is worked on right now and pops up soon?
Then, the first merged thing wins, and the second one has to make changes. As with every other code review, if you merge something first, then you can expect conflicts in the second Pull Request. Also, that thing already happened. Because we currently have a lot of address types, but if we would know in 2009, what we know today, then the history could be completely different, than it is. We could have compressed P2PK from the very beginning, and it could be the only available address type. And then, P2SH could be hidden behind P2PK, as well as all other address types. It would be better for privacy, but it was discovered too late, so we have to handle many different address types, because the history is already set in stone.

Quote
Do we enforce every body to sit on the same 'pool' you say or do we add other options too?
Each Pull Request is handled individually. And sometimes, a better proposal could cause closing some earlier Pull Requests, before they will be merged.

And of course, you can always roll up your own client, because you cannot beat something with nothing. But if you want to merge something into Bitcoin Core, then you have to stick to their rules, there is no other way.

Quote
How do you choose who gets to be the Coordinator on Bitcoin Core?
All nodes should behave as a P2P-based Coordinator. If you don't understand it, then answer that question: "how do you choose who gets to be the one that accepts new transactions into blocks on Bitcoin Core"? You can say "miners", but it is only a partial answer. You can say "mining pools, and their nodes". It is a better answer, but not full.

Each node, no matter if owned by some mining pool or not, can create a candidate block. Which means, the functionality should be added there: when constructing the candidate block. If you can see some transactions in your mempool, and if you can join them, and make things more private by doing so, then your node should do that. But to achieve that, the transactions should be opened for joining. So, they should use correct sighashes (or even use some not-yet-invented sighashes and data structures) to allow joining in the first place. And that should be implemented first, before you even start thinking about implementing any Coordinator.
staff
Activity: 3458
Merit: 6793
Just writing some code
November 26, 2023, 08:15:23 PM
#4
Anything that requires a central coordinator is a non-starter for the Bitcoin Core wallet.
hero member
Activity: 882
Merit: 1873
Crypto Swap Exchange
November 26, 2023, 02:08:56 PM
#3
I believe there are many reasons Bitcoin Core does not have such functions implemented yet.  And possibly will never have them.  Because it is called Bitcoin CORE for a reason.

Instead of focusing on implementing Lightning Network, Mixing / Coin Join options et cetera, I think developers prefer they stick to the very basic functions of Bitcoin and work on improving that.  Think how much more work is necessary to implement Lightning or Coin Join.  Think how many vulnerabilities this may produce inside Core.

Then I am not sure how many Bitcoin Core developers would get themselves implicated in this.  There is a particular fear floating around this Mixing / Coin Join side of Bitcoin.  They are risking a bit even by being Bitcoin Core developers.  Starting to work on Privacy by Default will increase risks.  I would not want Core developers giving up when we can have separate developers working on Privacy options.

Thirdly think about consequences.  Centralized Exchanges and Authority HATE Mixers and Coin Joins.  Fuck Centralized Exchanges.  We should discuss a little bit about the hate coming from Authority.  This may lead to Authorities being even more restrictive than they currently are.  I love Bitcoin how it is for now.  Privacy NOT by default but an option.  This makes Authorities happy by making it possible to use Blockchain Analysis on the average user and it makes the Privacy oriented people happy by letting us have our own way.  With its own set of consequences, but we deal with that happily.  Although I would be happier if there were no consequences for us.

Then how do you choose the PERFECT Coin Join or Mixing technique to introduce to Bitcoin Core?  We can already see a lot of hatred from one Bitcoin Privacy community to another.  See the drama and hatred between Samourai, Join Market and Wasabi.  They accuse each other of having flaws.  How do you pick the right one then?  What if a new, better Privacy option is worked on right now and pops up soon?  Do we enforce every body to sit on the same 'pool' you say or do we add other options too?

Most of the Privacy processes involve a 'Third Party'.  For example Wasabi always needed Coordinators.  How do you choose who gets to be the Coordinator on Bitcoin Core?

There are more reasons I can not remember right now.  The point I am trying to make is that Coin Joining and Mixing are optional features and if a perfect way to Privacy is ever found, I believe one day we will see an implementation.  At least partially.

Anyway.  My opinion is this.  I think it is better to have separated alternatives.  I would have hated my life if Bitcoin Core implemented Wasabi protocol and all of a sudden Wasabi announced a cooperation with Blockchain Analysis.  I would have uninstalled Bitcoin Core in the next minute.

It may be better and smarter to let Bitcoin Core developers work on the CORE functions of Bitcoin and let others get Privacy right.
hero member
Activity: 1659
Merit: 687
LoyceV on the road. Or couch.
November 26, 2023, 01:53:56 PM
#2
I think the Bitcoin Core philosophy is not to add functionality that can be built by third parties connected to a full node.
sr. member
Activity: 317
Merit: 448
November 26, 2023, 01:43:35 PM
#1
Could the network of nodes be used in a way to create a built-in system to send joined transactions of sorts within the Bitcoin Core? Or is this considered outside of the scope of the project and you are always going to need to use some sort of 3rd party software or web as a service?

Could there be any legal implications in doing this? (see, "privacy enhancing" coins like XMR, I reckon had some sort of problems when being listed in some wallets).

I would just prefer to have it all inside Core so you can select to make a non-private transaction or a private transaction, which would enter into a pool of other people that are wanting to do a non-private transaction and join all of these somehow, with a fee market or something like that. I would like to get your view on this and if it's worth developing for Bitcoin Core with the eventual implementation or nobody is going to want this within the wallet software? And again the legal implications would also be interesting to know if anyone is an expert on this matter.

Until then I guess we have to keep using other wallets and webs to get any privacy out of Bitcoin.
Jump to: