hlandau / ncdocs

Various Namecoin-related documents
7 stars 1 forks source link

New name for UXTO-CB? #2

Closed indolering closed 9 years ago

indolering commented 9 years ago

So, I don't quite understand the rationale for the coinbase part of this acronym, as we are reffering to the data structure inserted into the CB that is used for attestation – it seems to be only tangentially related to the CB itself. What if we called it UTXO-A for UTXO-Attestation?

Forgive my ignorance, but if it's confusing to me then we should probably rework the explanation....

indolering commented 9 years ago

Or maybe UTXO-CA?

indolering commented 9 years ago

And what about NX attestation? Since we are basing the acronym on what the attestation does, why don't we follow the same convention for UTXO-CB? Maybe CA for Current Attestation and NXA for non-existance attestation?

JeremyRand commented 9 years ago

CB makes sense, because it primarily differentiates from other modes where the UTXO set is stored/calculated but is not placed in the coinbase.

I don't fully understand what NX is supposed to mean. I talked to @hlandau on IRC a while back and we came up with UNO (unspent name operation).

indolering commented 9 years ago

Non-existance, as in proving that a name doesn't exist.

JeremyRand commented 9 years ago

I don't think NX makes sense as part of the nomenclature, as proof of nonexistence is only one of the two features involving the UNO set.

Both UTXO and UNO can be used for two things: database pruning by a node after downloading the chain, and one node proving to another node some fact about that set without the second node ever having had the chain. For example, my libcoin implementation is getting down to 107 MiB of storage by pruning to the UNO set, but it is not using any proofs of nonexistence (it doesn't need to because it downloads the full chain).

So yeah, basically I think UTXO and UNO labels should refer to things that involve those sets, whether it's pruning or a coinbase data structure.

hlandau commented 9 years ago

NX comes from DNS's NXDOMAIN error code. It means 'nonexistence', not 'unexpired'.

I think UTXO CB is fine, but perhaps UTXO CBA (Coinbase Attestation) is clearer?

indolering commented 9 years ago

I'm fine with "CBA", UTXO-CBA and NX-CBA?

JeremyRand commented 9 years ago

@hlandau , "CBC" (coinbase commitment) seems a bit closer to the terminology that the Bitcoin guys use.

@indolering and @hlandau , I don't think NX makes sense here, since it's not consistent with UTXO. Either have "UTXO" and "UNO" for the commitments, or have some abbreviation for "existence" instead of UTXO. (I prefer the former.)

hlandau commented 9 years ago

Errm, UTXO and UNO and NX are all different things. UTXO: the set of all unspent transaction outputs. UNO: the set of all unspent name outputs (a subset of UTXO). Not really much reason to use this for attestation; more useful if you're storing the unspent output set on disk. NX: a cryptographic data structure which can be used to prove that an item does not appear in the UTXO or UNO set.

indolering commented 9 years ago

What about following the DNSSEC naming for non-existence: NSEC?

JeremyRand commented 9 years ago

@hlandau I'm aware that NX is a data structure type while UNO is a set. I'm saying that if we're talking about the UNO set, then we should have UNO in the name to be unambiguous (particularly since it's plausible that Bitcoin might add a UTXO-NX-CBC structure at some point). I'd be fine with "UNO-NX-CBC" instead of "NX-CBC".

Are we okay with "CBC" instead of "CB"/"CBA", to be more consistent with Bitcoin developers' terminology?

JeremyRand commented 9 years ago

NX means nonexistence while NSEC implies a specific implementation of proving nonexistence (providing adjacent values). I would prefer NX, but I don't feel particularly strongly.

indolering commented 9 years ago

So, UTXO-CBC and UNO-NX-CBC. @hlandau – can you N/ACK on this? I'd like to get that blogpost out today :)

ryancdotorg commented 9 years ago

Using NSEC does imply a specific implementation.

If we're going for consistency, maybe we should use CN-NX-CB.

JeremyRand commented 9 years ago

@ryancdotorg What is CN?

ryancdotorg commented 9 years ago

current name

indolering commented 9 years ago

@ryancdotorg if the Bitcoin team is going to use CBC, I would prefer to use that acronym.

JeremyRand commented 9 years ago

Current implies less than 36 kiloblocks old; UNO is the subset of current that has not been spent by another transaction. So I prefer to keep UNO.

ryancdotorg commented 9 years ago

UNO -> CN, CBC is fine.

ryancdotorg commented 9 years ago

I don't really care that much if you want to keep UNO

JeremyRand commented 9 years ago

@hlandau are UTXO-CBC and UNO-NX-CBC okay?

hlandau commented 9 years ago

CBC makes me think of Cipher Block Chaining but if the Bitcoin team are definitely going to use that terminology then UTXO-CBC and UTXO-NX-CBC are OK.

Please note that whether UTXO or UNO is used is completely orthogonal to NX-CBC as it will use a separate tree. So (UTXO|UNO) CBC and (UTXO|UNO)+NX CBC might be better terminology.

indolering commented 9 years ago

Sorry to reopen this, but if we are going to use UNO for the actual implementation shouldn't we use UNO-CBC and UNO-NX-CBC?

JeremyRand commented 9 years ago

@hlandau I don't believe the Bitcoin devs are using the abbreviation CBC specifically, but they're referring to them as commitments rather than attestations. So I think CBC is closer to their terminology.

@indolering We would not want to only use UNO, since that would break lightweight currency clients.

ryancdotorg commented 9 years ago

Just call everything "marklar".

Seriously though, we can change this later. It's okay to rename stuff.

We have some alphabet soup, though. I do see "coinbase commitment" mentioned by the guys working on this for bitcoin. Can we use "CC" so it doesn't sound like cipher block chaining?

This is getting absurd. Just post something and change it later if we decide to change the names.

ryancdotorg commented 9 years ago

To be clear, I really don't care what stuff is called. Just putting suggestions out there to try to address objections. Assume that I'm fine with anything.

indolering commented 9 years ago

Okay, we will keep CBC and change it to CC if Bitcoin devs do so. I Googled "coinbase commitment" and got 50 results. So yeah, early days.

indolering commented 9 years ago

Okay, I've got pending pull requests that change everything to Marklar.

indolering commented 9 years ago

Ugh, NM, I fixed the "State of Namecoin" doc but I don't have time to fix "Introduction to Namecoin Deployment Types".