input-output-hk / cardano-sl

Cryptographic currency implementing Ouroboros PoS protocol
Apache License 2.0
3.76k stars 632 forks source link

[CSL-59] Come up with better name for Dynamic State SSC, rename #444

Closed jagajaga closed 7 years ago

jagajaga commented 7 years ago
@gromak

@shersh you need to come up with name, I don't know about actual renaming now, we'll do it later, after finishing POS-40 (dunno who will do it). So name is also not very urgent. More details later (if necessary).

jagajaga commented 7 years ago
@shersh

@gromak I'm not so fluent with pos paper primitives. Could you describe purposes of this data type and give link on it? And then I will come up with cool naming :sunglasses:

jagajaga commented 7 years ago
@gromak

@shersh as you probably know (if you don't know, make sure to read about it), paper starts with presenting Static State version where list of slot leaders is known for all slots in advance and then expands to Dynamic State where list of slot leaders is known only for limited amount of time, i. e. epoch. Dynamic State is achieve using two procedures: 1) obtaining secure randomness which is same for all parties and 2) follow-the-satoshi. The first part was abstracted into something that we call SSC (i. e. shared seed calculation) and there are two implementation for it, one of them is as described in paper. Currently it's called Dynamic State, but it's bad name, because Dynamic State is not only SSC, but more something general. Also it's long.

jagajaga commented 7 years ago
@shersh

@gromak Btw, in paper it is called Dynamic Stake (typo?). Am I right, that ''described in paper'' implementation of '''1) obtaining secure randomness''' is NIST Beacon? If so, why not call it somehow related to Trusted Beacon?

jagajaga commented 7 years ago
@gromak

Btw, in paper it is called Dynamic Stake (typo?).

Hmm, yes, typo, there is static state and dynamic stake.

Am I right, that described in paper implementation of 1) obtaining secure randomness is NIST Beacon?

No, NIST beacon is stupid implementation. ''Described in paper'' is more smart.

jagajaga commented 7 years ago
@shersh

Okay, in that case I'm proposing next name replacements for DynamicState (that should be DynamicStake):

TrustStake Trust(ed)Seed SecSeed SecStake SecSSC Trust(ed)SSC StrongSSC SafeSSC SafeStake SpicyStake (sorry, all this ''stakes'' and ''beacon'''s make me think in different direction)

jagajaga commented 7 years ago
@gromak

I don't like versions with Trust, because Trust usually means trusted third party, but this SSC is the opposite.

Does Sec mean Secure? If yes, then why not full word? It's not so long. Anyway, now my favorite name is SecureSeed or SecureSSC (or maybe SecureSsc, because we may want to have SecureSSCStorage and 4 capital letters in a row are not allowed by style guide).

As I understood from recent discussions, proper name for this SSC is Coin tossing with guaranteed output delivery. Unfortunately, this name is too big, so ideally we need a short name which reflects this name.

jagajaga commented 7 years ago
@shersh

Does Sec mean Secure? Yes. But SecureStake is not much shorther than DynamicStake :)

Okay, taking '''Coin tossing with guaranteed output delivery''' into account I can add next names:

CoinToss(ing) CoinDelivery SecureTossing SecureCoins

Among these ones my favourite is SecureTossing. But SecureSeed or SecureSsc is shorter and follows style guide. But anyway, I can't fit too many words in one name. Probably, it is better to choose smth among these proposals and just add comment with SSC transcript and '''coing tossing...''' thing.

jagajaga commented 7 years ago
@gromak

My vote is for SecureSsc. @neongreen what do you think?

jagajaga commented 7 years ago
@neongreen

I'm fine with SecureSsc. I'm also fine with CoinTossing or CoinToss (or even Tossing) because it's more specific than SecureSsc and doesn't have Ssc in it (we have too many things with Ssc in them already and I'm afraid that SecureSsc would get confused with one of the SSC typeclasses).

jagajaga commented 7 years ago
@gromak

What about GodTossing? Where GOD = Guaranteed Output Delivery.

jagajaga commented 7 years ago
@gromak

Or maybe GodCoinToss which is still shorter than DynamicSta{t,k}e :)

jagajaga commented 7 years ago
@shersh

@gromak GodTossing is awesome :sunglasses: Also I'm okay with GodCoinToss. And this is really more specific than SecureSsc. I agree with @neongreen here.

jagajaga commented 7 years ago
@gromak

Let's assume that this issue is only to come up with name. Renaming will be done as part of CSL-105. I am closing this issue, name is GodTossing.