m0wer's avatar
m0wer
m0wer@stacker.news
npub1w3va...4c5c
JoinMarket NG
m0wer's avatar
m0wer 2 days ago
m0wer's avatar
m0wer 4 days ago
Xiaogang, Anhui - Wikipedia > In December 1978, eighteen of the local farmers, led by Yen Jingchang, met in the largest house in the village. They agreed to break the law at the time by signing a secret agreement to divide the land, a local People's Commune, into family plots. Each plot was to be worked by an individual family who would turn over some of what they grew to the government and the collective whilst at the same time agreeing that they could keep the surplus for themselves. The villagers also agreed that should one of them be caught and sentenced to death that the other villagers would raise their children until they were eighteen years old. At the time, the villagers were worried that another famine might strike the village after a particularly bad harvest and more people might die of hunger. > After this secret reform, Xiaogang village produced a harvest that was larger than the previous five years combined. Per capita income in the village increased from 22 yuan to 400 yuan with grain output increasing to 90,000 kg in 1979. This attracted significant attention from surrounding villages and before long the government in Beijing had found out. The villagers were fortunate in that at the time China had just changed leadership after the death of Mao Zedong. The new leadership under Deng Xiaoping was looking for ways to reform China's economy and the discovery of Xiaogang's innovation was held up as a model to other villages across the country. This led to the abandonment of collectivised farming across China by 1983 and a large increase in agricultural production. The secret signing of the contract in Xiaogang is widely regarded by historians and media as the beginning of the period of rapid economic growth and industrialisation that mainland China has experienced ever since.
m0wer's avatar
m0wer 1 week ago
@calle has it ever been considered to enable Touring complete (or closer to) spending condition scripts on cashu mints? As in smart contracts that could enable ZKPs for spending, allowing for something like Tornado Cash but on Bitcoin. #cashu
m0wer's avatar
m0wer 1 week ago
There's someone flooding all JoinMarket makers with !orderbook requests. Making them run out of storage with several GBs of logs per hour and also filling their CPU cycles. It does so through direct onion connections (last time was through directories) and with a bunch of nicks in parallel. I've implemented Tor level DDoS protection through a dynamic PoW requirement (0 in normal cases) in a branch of jm-ng as an experiment: It only works with the alpha release of Tor, but an expected release might come soon. I didn't know about this feature from Tor, but it's really neat. Some more info here: #JoinMarketNG #JoinMarket #CoinJoin
m0wer's avatar
m0wer 2 weeks ago
About the problem of deleting notes on Nostr, here's an idea: use a delegated key that rotates each month and expires. Once expired, request deletion from all your notes from all relays and then share the private key so that anyone can post bullshit with it, including yourself. You get plausible deniability for anything posted before last month and really encourage relays to delete all shit signed with that expired delegated key or they will get spammed to death. This might be a stupid idea. Please go ahead and let me know why.
m0wer's avatar
m0wer 2 weeks ago
Fixed my zap receiving ability by switching to Coinos. Will leave the fight of getting my self hosted lnbits working fast enough for later.
m0wer's avatar
m0wer 2 weeks ago
JoinMarket NG 0.11.1 is out! - Cold storage fidelity bond support for makers - Reproducible Docker builds!!! - BIP39 passphrase support - Dual offers (abs and rel simultaneously) for makers - Lots of fixes and UX improvements (thanks beta testers!) #JoinMarketNG #JoinMarket #CoinJoin #Privacy
m0wer's avatar
m0wer 2 months ago
Analyze JoinMarket Bitcoin CoinJoin transactions using ILP. # JoinMarket Analyzer: Understanding CoinJoin Change Outputs I've released a tool called **joinmarket-analyzer** to match inputs and change outputs in JoinMarket transactions, identifying who the taker was. **Goal:** The purpose is **not to spread FUD**, but to raise awareness. It's crucial to understand that this analysis **only affects change outputs**. The equal-amount outputs—which provide the actual privacy in a CoinJoin—remain indistinguishable. The tool uses Integer Linear Programming (ILP) to match inputs with their respective changes and determine which participant is the likely "Taker" (the one initiating the transaction and paying fees) and which are the "Makers" (liquidity providers earning fees). ## Example Usage You can run it easily with Docker: ```bash docker run --rm ghcr.io/m0wer/joinmarket_analyzer:master \ 0cb4870cf2dfa3877851088c673d163ae3c20ebcd6505c0be964d8fbcc856bbf \ --max-fee-rel 0.001 --max-solutions 1 ``` ## Results The tool outputs the probable structure of the transaction: ``` ... Taker: Participant 4 (pays 21,368 sats) 💰 Participant 1 (maker) Inputs: [0] Outputs: Equal=6.3M sats, Change=113M sats Fee receives: 458 sats ... 🎯 Participant 4 (taker) Inputs: [4] Outputs: Equal=6.3M sats, No change output Fee pays: 21,368 sats ... ``` [View this transaction on mempool.space]( ## Future Possibilities This tool lays the groundwork for more advanced privacy research: * **Entropy Evaluation:** Measure how "ambiguous" change outputs are. If multiple valid solutions exist, the Taker is harder to pinpoint. * **Algorithm Design:** Evaluate and improve taker algorithms to intentionally create ambiguous change structures. * **Market Stats:** Analyze historical CoinJoins to gather statistics on fee limits used by takers and earnings by makers. Check out the code and contribute: https://github.com/m0wer/joinmarket-analyzer