Avatar
Naruto
7286946a0e00a4861eb7547ee0a98d476ae2bdd359b32da6a24dc6efbedc1002
I never go back on my word
Replying to Avatar Rijndael

Here's my understanding of ARK. I hope nostr:npub18aq8s3z9xl87e74twfk93mljxq6alv4a79yheadx33t9np4g2wkqrtmask can correct me where I mess things up or miss something important :)

Lets ignore getting money into and out of the system for a minute and just talk about what happens once you have money in the system.

In ark, you have a a virtual utxo or a VTXO. The core operation you do is sending a vtxo to someone else

Every 5 seconds the ASP does a coinjoin round. The way you send someone a vtxo is through the coinjoin: you provide an input, they get an output. This happens every 5 seconds so that a mobile user can take out their phone, hit "send" and be done with it. Because coinjoins involve multiple interactive steps for input registration, output registration, and signing, the ASP does them very freqently so that end users dont have to sit there with their phone open for minutes at a time.

At the Ark-layer, the abstraction is that I just send you a vtxo via this coinjoin. Now you have a vtxo and you can hold it, spend it, etc.

What happens at the bitcoin layer is that the ASP created an L1 bitcoin transaction that has one (or more) input and three outputs. The input(s) are provided by the ASP. The outputs are: one for the ASPs change, a "connector output", and a vtxo commitment. the connector output and the vtxo commitment are both CTV commitments to many outputs.

So when I send you vtxos, what that actually means is that in the vtxo-commitment output for that particular coinjoin transaction, there is a spend-path that would let you get your money out onchain after 24 hours (more on this later). This is the unilateral exit path. If I send you money, and you want out of ark, you can reveal a transaction committed to in the vtxo commitment output, and get an onchain payment.

Now, not everyone will want to take onchain payment. Most people will want to take their VTXO and use it in a future pool (coinjoin) transaction to send it to someone else or to self-send it. So, the way that works is when you want to spend your VTXO, you and the ASP sign a 2/2 key path that sends that VTXO to the recipient (via their new VTXO). That transaction also includes an output from the new pools connector commitment. This make the whole thing atomic in a dispute-resolution.

So you have a ton of users who all have VTXOs committed in these outputs. Most want to spend them in ARK. So what happens is the vtxocommitment output can be redeemed onchain by the recipient whenever, can be refunded after two weeks, and can be swept by the ASP after 4 weeks. The idea being that after everyone who is going to claim their onchain funds does, the ASP can sweep that output and use it to fund a new coinjoin/pool round (remember the ASP provides all the inputs, so eventually those inputs should be coming from old pool rounds).

That means that users will need to self-send or move funds every four weeks by creating new vtxos. not a huge deal, but something to build into wallets.

What happens if a user tries to double-spend? well, on the unilateral redeem path, the idea is that if the user has previously signed away that vtxo, then the ASP could reveal that transaction onchain before the user is able to collect their funds.

Because these coinjoins happen every 5 seconds, payment is fast and easy and non-interactive for the receiver. and that coinjoin/pool transaction should end up in the next block. So there is some temporary mempool-doublespend risk where the ASP could double-spend a vtxo between when a payment was sent and when it ends up in a block. You can mitigate that risk by usinga vtxo to pay an LN invoice or something, or just treat it as an unconfirmed transaction and wait for a block.

Overall it's a really interesting design. There are high liquidity requirements (the ASP has to provide onchain liquidity for all the transactions happening in a 4 week perioid until they can sweep old vtxo commitments) and there's the onchain footprint of a 1+ input, 3 output tx every 5 seconds. So we won't have a TON of these, but I think they could be a really interesting way to scale end-user wallets. a hypthetical future might be that end-users use fedimint/cashu type wallets or Ark wallets and then the clearing between ASPs and mints is over lightning.

I think I hit the high-level points. Tell me what I got wrong. Thanks!

Why would someone choose Fedi/cahsu over Ark? Better theoretical privacy maybe?

The invention of the computer and then the internet promised a more democratic world; a world where people have more power and knowledge at their fingertips; where people would be able to resist power structures' control and manipulation for their gain at the people's expense. We've made good progress, but it hasn't fully panned out yet. Bitcoin is the next critical step fowards toward that end. I'm enjoying watching history progress.

Honestly, fuck you. My government is recklessly irresponsible with fiscal and monetary policy and Bitcoin serves me as useful insurance against their continued egregious incompetence.

Interesting times we're living in

Has it happened during a bear market? I can't recall

If you lose access to this data but still have your seed, how does restoring your history look like? Can the ecash server instantly provide you all your transactions and only yours?

Bitcoin makes me optimistic for a better future for humanity.

Bitcoin maxis make me pessimistic.

On your first two paragraphs, I get the view. I disagree it's the ideal structure for the business landscape (for the government to protect IP) but I'm not gonna go on about that. I insulted you because you characterized my view as socialist and entitled, which it clearly is not. My view is closer to anarchy than anything haha.

I'm pretty sure this particular saga started because coinkite is going to be on the open source stage at the bitcoin conference. That is confusing to people who are unaware. Coinkite accepting to be there is sketch.

https://twitter.com/ck_SNARKs/status/1650875333212602370

Also, here is what Seth had to say about a business choosing not to be FOSS:

https://twitter.com/sethforprivacy/status/1651243037966708746

So he doesn't view it as negatively as I do.

That's a cleaner argument. I'll discuss this argument without insulting you.

If someone thinks they can execute ideas better than someone else, I think we should want and encourage that. Innovators then make their money by executing their ideas better than the competition. Ideas and by extension, goods and services, then flow at cheapest cost from best competitor to the market. Monopolies lose protected edge granted to them by the government.

This is the opposite of socialist. It's pure free market competition. The strong survive, the consumers benefit.

Right there are some people who like free markets but only when it suits them. They use laws to protect their business when it doesn't. They call it acumen. Everyone else who doesn't do this is socialist, commie, entitled, and lazy. You sound like the next Steve Jobs man, keep going.

PSA: free and open source software is now socialist shitcoining.

Preferring the government not prevent competition in the free market is now socialist shitcoining.

Bitcoin maxipads are such idiots sometimes. It's comical.

#[2]

I think he understands it, he just selectively chooses to ignore it when he thinks he can get away with it. And bitcoin maxis give him a pass on everything so long has he keeps that whole charade up.

Lmao bingo to the ad hominem. Classic.

Lol, my arguments have been fine. Yours have been alright too, much better than anything nvk has said on the topic. From what I've seen him say on this and how he's acted, I think you're giving him too much benefit of doubt.

Yes I don't like how nvk acts for valid reasons, in this instance included.