Avatar
Knic
34d526ced5f36b05eba40389a35c7e1bfaaee85e99b53fc72f0b4f60c1f7438b
Bitcoiner
Replying to Avatar Keith Mukai

Two significant-ish "akshually"s but also a DEFENSE of nostr:npub10pensatlcfwktnvjjw2dtem38n6rvw8g6fv73h84cuacxn4c28eqyfn34f in regards to nostr:npub17tyke9lkgxd98ruyeul6wt3pj3s9uxzgp9hxu5tsenjmweue6sqq4y3mgl.

On nostr:npub10uthwp4ddc9w5adfuv69m8la4enkwma07fymuetmt93htcww6wgs55xdlq #320, nostr:npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx said:

"There's multiple conspiracies with OpenSats and two of the key ones is Knots and SeedSigner. And neither have submitted applications. If you're a developer or a contributor working on either of those things, opensats.org/apply"

Akshually:

1.) SeedSigner DID submit an OpenSats application for the project as a whole. The application languished for months (perhaps 6mo to a year?) and was ultimately declined with the explanation that it was easier/preferable to support individual devs than whole projects.

2.) Based on that feedback, I submitted an OpenSats application to fund just me specifically. That was also declined. BUT the rationale was because nostr:npub17xvf49kht23cddxgw92rvfktkd3vqvjgkgsdexh9847wl0927tqsrhc9as had just announced a 6mo grant for me. I was encouraged to reapply to OpenSats before that HRF funding expired.

The delays around 1.) were totally understandable. OpenSats is a VOLUNTEER effort and had even fewer human resources at that time. But also: they don't owe us a f'n thing!! They're under no obligation to say "Yes" nor should we ever have the arrogance to think we deserve to demand a "Yes"!

BUT the delays to get to ANY answer were VERY frustrating and likely added to some of the bad blood in the water amongst those watching the project closely. Eventually each "later, soon..." response was received with increasing cynicism and creeping conspiracy theories.

The "No" was totally reasonable. Getting to "No" faster would have been better.

The "No" on 2.) was also totally reasonable. No complaints from me whatsoever. I also strongly believe that THEY WOULD HAVE BEEN A "YES" had the HRF funding not come through.

I consider O'Dell a friend and an ally. When I saw him in Nashville I gave him a hug and said, "I appreciate you."

I'm not about drama.

Not here to start any shouting matches.

Just trying to paint a clear picture about what was good and what was bad throughout our interactions with OpenSats thus far.

And full disclosure: I'm prepping a new grant application for myself for OpenSats. So, sure, I have personal reasons for not wanting to burn this bridge.

But the reality is that there was just nothing outrageous or awful or controversial about our interactions. Circumstance and timing weren't right for attempts 1.) and 2.). Crossing my fingers for upcoming 3.).

Conspiracy theories are dumb.

That awkward moment you realize the person your hugging is conceal carrying

I was getting around 20 a day when I tested a bitaxe ultra a month ago but I prefer solo lottery

Replying to Avatar mike

Yes

Your node earns more than your BitAxe? That’s pretty good!

Replying to Avatar Printer

At gobrrr.me, we value open-source development of the tools and the resulting products we offer a lot. This is why a key part of the shop's mentality from the very beginning was the will to give back a part of our profit to the developers, so that they can continue to work on the projects and improve them over time.

Why am I telling you this? Well, depending on sales in the given months, donations were very small at times, but sometimes also quite sizable. Well, today we reached a milestone. Over the course of the last (almost) three years, we were able to donate over 2 Million Sats to open-source projects like nostr:nprofile1qyw8wumn8ghj7mn0wd68ytfj9eax2cn9v3jk2tnrd3hh2ep0qy2hwumn8ghj7un9d3shjtnwdaehgu3wvfnj7qgawaehxw309ahx7um5wgkhyetvv9ujuamvweejuumsv93k2tcpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qg4waehxw309aex2mrp0yhxgctdw4eju6t09uq3zamnwvaz7tmwdaehgu3wwa5kuef0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uqsuamnwvaz7tmwdaejumr0dshszxrhwden5te0dehhxarj9enx6apwwa5h5tnzd9az7qg4waehxw309ahx7um5wghx77r5wghxgetk9uqzpukfdjtlvsv62w8cfnel5uhzr9rqtcvysztwdeghpn89kanen4qqf0ru5h , another donation receiver this month was open source miners united, whom I couldn't find on nostr, sadly.

I didn't post our open-source contributions with proof for a while, they never stopped, though. Partly because I have no idea if we're the only ones doing this.

Anyway, hopefully we can inspire others to also give back to open-source development of the products they profit from. It's the only way to support volunteer projects like these and keep them alive.

BitAxe cost me $2 a month to run. Cheap lottery ticket. Free if you power with solar.

The power consumption is like 100x higher though. That’s a lot of lottery tickets every month.

switch to ocean.xyz and setup BOLT12 to start seeing sats flow from your #BitAxe

Replying to Avatar waxwing

A train of thought coming from: "we can't do ZKPs using sigma protocols or bulletproofs on chain, because we only have ECC operations against one generator (G)":

Imagine one of the very simplest things you can do with 2 generators: proof of discrete log equivalence or DLEQ for short. This is basically the simplest possible generalization of Schnorr; one secret, two bases. This requires two ephemeral commitments (the nonce k mult. the 2 generators) and only one scalar response (one "signature", if you like).

Of course, you can't verify such a thing on chain; you can't check sJ = R_2 + hash(..)Q where Q = xJ and P = xG. You can only verify the first version, w.r.t. G: sG = R + eP, which is ofc standard Schnorr, here bip340.

But .. is there a way adaptors could help? Because an adaptor is something you verify offchain, and so it isn't restricted to one base/ generator.

Imagine your goal is "unlock a payment only if P and Q have the same DL wrt G, J" (yes I know, bizarre, but I'm fumbling towards the first sentence, here).

Obviously if we're including "verify something offchain before taking an action", we'll find it sanest to stick to a 2 party protocol first. Let's see:

1. Alice sends Bob P, Q, R1, R2 (having calculated from a random k, R1 = kG, R2 =kJ, and already knowing x_a s.t. Q=x_a J and P=x_a G); her private key is x_a

2. Alice pays into a 2-2 multisig with Bob, where her key is P, and the aggregate key is Pagg, with U1. When Alice signs it (not yet), the signature will look like:

s_a = k1 + H(R_agg + T, Pagg, txmsg_U1)x_a

Notice the +T which will be for an adaptor that Alice adds. This process is already well understood for Schnorr multisig. I am glossing over Musig related details, claiming they don't change the following.

3. Alice provides an adaptor over J for ``spending'' U1. Before writing this out, consider: we want the s-value to be the same over J as it is over G. This is problematic, because the s value comes from a structure that is basically : s = k + e*x, where e is the hash, and as per bip340, that hash *must* be exactly: H(R, P, m) where P is the onchain key, R is the onchain nonce and m is the actual transaction message. So if we do things naively, i.e. make an adaptor over the J base like:

s'J = R2 + H(R2+T, Q, message)Q

.. then we're going to fail to create the desired scenario: that the real signature 's' is the same between the J and G bases. In order to solve this we have to play a trick. We don't change the nonce or public key fields in the hash at all, i.e. we do:

s' = k2 + H(R_agg + T, Pagg, txmsg_U1)x

and have Bob verify:

s'J =?= R2 + H(R_agg + T, Pagg, txmsg_U1)Q

Superficially that is unsound; the reason is that such signatures can be forged if the corresponding nonce point R2 is not fixed into the hash/FS challenge, which it appears it isn't (also not "key-prefixing" by including the public key, here Q, in the same challenge is, at the least, problematic). However this can be solved, albeit in an unorthodox way: include both R2 and Q, which are curve points, as data inside the bitcoin transaction! (spending U1). It will just be "dead" data (e.g. OP_DROP) because you won't be able to sign against them; they use the wrong basepoint, but it is still easy).

4. Bob verifies this adaptor using (to repeat): s'J =?= R2 + H(R_agg + T, Pagg, txmsg_U1)Q.

5. Now Bob knows that if he sees the valid s for this equation, he gets the private key t of T w.r.t. J. Importantly, he also knows that if that one s corresponds to the s that is needed to spend U1, then Q and P have the discrete log equivalence property we are proving. But simply convincing Bob of a fact like that is uninteresting in itself; you can do that by simply directly sending him ZKPs of various types. So, :

6. Alice also provides offchain a DLEQ proof that T = tJ and T2 = tG

7. Alice makes another adaptor on a payment of another utxo U2, using the same t: s'_2 = k_3 + H(R_3 + T2, P2, m)P2.

8. Bob now knows that if U1 is spent, it reveals s, proves that DL Q/J = P/G, and that he can spend U2 using s_2 = s'_2 + t, having extracted t from s - s', and knowing that that t value corresponds to T2.

This could be seen as "just an adaptor based atomic swap with a bunch of extra steps", but I'd call it more "atomic swap gated by DLEQ", i.e. it will fail unless Q/J = P/G holds.

As a math major, I want to verify your proofs but I need more knowledge about this math in specific. Where can I learn more?