Skip to content

Instantly share code, notes, and snippets.

@PlasmaPower
Last active December 24, 2018 02:50
Show Gist options
  • Save PlasmaPower/41a052409af189c5f33e6315598bfcc7 to your computer and use it in GitHub Desktop.
Save PlasmaPower/41a052409af189c5f33e6315598bfcc7 to your computer and use it in GitHub Desktop.

Here are my recommended tangram whitepaper fixes:

Section 3.3:

With strong commitment to research and development means that we are constantly looking for
new innovative ways to enhance online security, with the long-term ambition of establishing a

The first part needs reworded. "With X means that Y" isn't grammatically correct.

Section 6, section 27.1:

That's not what "double spending" usually means. The goal isn't to get any one node to accept two destinations of the coins, it's to get two different nodes to accept different destinations of the coins.

Section 7, section 8.4:

 encryptedMemofield: optional user data field,

but later:

The encrypted memo field is present in every transaction

Section 11:

Hash-based payments are simply a payment system consisting of hashes.

means nothing, and exactly what "hash-based payments" are isn't defined.

Section 13.1:

an individual's
masterKey, which (again) is a key derived function.

KDF = Key Derivation Function The masterKey would be the output of a KDF, not a "key derived function"

If any coin is not authentic and does
not have the necessary property requirements during the phases of the (_get) and (_set) functions,

The _get and _set function phases are refered to nowhere else, so they don't really mean anything so someone without insider information.

Section 13.2:

Below describes the authentication procedure for sending a coin(s):

"for sending a coin(s)" doesn't read well. I'd use "for sending coins".

Section 17:

There ‘stake
is locked and the

There -> their

Every node can include the following messages:

"include" doesn't make sense here to me. Maybe "receive" or "send"?

Section 17.1:

It says twice that the protocol is non-interactive, but the protocol described is actually interactive. In addition, the description of the protocol should be improved in the following ways:

  • What "a" is should be explained (it's probably the private key, but I only know that because of prior experience with these things)
  • The verifier accepts if the prover’s public key, P, is a valid public key. it also needs to validate the response it received of course

Section 19.1:

Furthermore, we in troduce the usage of

There's a space in the middle of "introduce"

Section 27.7:

The introduction of stake slashing mitigates the nothing-at-stake problem. It could be argued
that this will not force all nodes to behave altruistically but rather maliciously.

I'm assuming the second part of that means the exact opposite. It says that it'll make nodes malicious, but I think you mean that it'll make nodes altruistic.

Section 29.9:

The implementation appears to be off-chain secret sharing, not an on-chain smart contract (it can't make decisions). I would refrain from calling it a contract.

It is generally used to divide up responsibility for possession of bitcoins.10

Is that "10" a reference? If so it should have brackets around it and a space before it like the other references.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment