About Chain Consensus
Hashcash
Proof-of-Stake (PoS). The aim is brute forcing partial hash collision for the π first bits of the hash target which initiated with 0 π = 0000 β β¦ β¦ β¦ .000 (k times). Prerequisites:
Parameter π is defined to distinguish between service names
Parameter π is defined as the number of bits from the left side of bit-string
The notation of π΄ β‘b π΅ is defined for whether two sub bit-string of A,B from the left side (πππππ₯ 0 π‘π π) are equal or not. The output of the comparison is True or False.
Notation || is defined as concatenation between two bit-string
π₯ is a random bit-string
π is True if π» (π || π₯) starts with π bits filled with zero.
Cost-function interactive algorithm between client and server [8]:
Input: π , π₯ Output: True, False
ππππ£ππ πππππ’π‘ππ πΆ = πΆβπππππππ (π , π) πππ π ππππ π‘π π‘βπ ππππππ‘
The client searches for π₯ such that π»ππ β (π || πΆ || π₯) β‘π 0 π
πΌπ π»ππ β (π || πΆ || π₯) β‘π 0 π ππ πππ’π ππππ£ππ β πΆπππππ‘ π ππππ π , π₯
ππππ£ππ πππππ’πππ‘ππ π = πΈπ£πππ’ππ‘π π»(π || πΆ || π₯) β‘π 0 π
πΌπ π = πππ’π π ππ‘π’ππ π Else Return πΉπππ π
Cost-function non- interactive algorithm [8]
Input: π , π₯ Output: True, False
Client finds π₯ such that π» (π || π₯) β‘π 0 π
Client publishes π , π₯ 9
π΄ππ πππππ πππππ’π‘π π = πΈπ£πππ’ππ‘π (π || π₯)
πΌπ π = πππ’π π ππ‘π’ππ π Else π ππ‘π’ππ πΉπππ π
Elliptic Curve Digital Signature Algorithm (ECDSA)
As far as all curves in Elliptic Curve Cryptography (ECC) are not efficiently secure therefore numerous standard organization evaluate how equations of curves are secure for example, NIST introduced fifteen curves as standardized to be used in industry and financial technology [20]. ECDSA is based on asymmetric ECC and is more efficient in processing and bandwidth sake of short keys and more performance compared with RSA or Elgamal cryptosystem [21]. We take a brief look at the elliptic curve cryptosystem but not with all details. (Appendix A) The elliptic curve is simplified form of Weierstrass equation over algebraic field πΎ as a form of
For cryptographic purposes, coefficients, and variables belong to field πΎ that can be prime finite field or binary field. All points lie on the equation plus with abstract notation β forms an Abelian algebraic group with additive operation. This cryptosystem is based on the hardship of discrete logarithm elliptic curves. Curve ππ25519 (twisted Edwards curves) and πππ256π1 are two well-tested and robust secure, applied cryptographic curves with specified parameters. πΈππ256π1 was implemented in either Bitcoin and Ethereum but still, processing time, key size, memory usage and resistance against quantum attacks can be more optimized. Therefore, there are much controversial debates to new implementation for new digital signature schemes. The first exposed solution was changing to ππ25519 sake of optimized key features rather than πππ256π1 with fast signing process and small signature and high level security [22]. Still ππ25519 is 11 vulnerable against quantum attack. Other alternatives can be evaluated for instance, Lamport signatures in Ethereum.
Key generation in ECC
Input: π 2 = π₯ 3 + aX + b , π, π, prime number ππ, Base point πΊ, The order of subgroup π, cofactor β Output: private and public key
ππππ£ππ‘π πππ¦ β πΆβπππ π π ππππππ ππ’ππππ πππππ {1, 2, 3, β¦ . , π β 1}
ππ’ππππ πππ¦ β πΆππππ’π‘π ππππ£ππ‘π πππ¦ Γ πΊ ( πππ‘π π‘βππ‘ π‘βπ ππ’ππππ πππ¦ ππ πππππ‘ ππ ππ’ππ£π)
π ππ‘π’ππ private key and public key
Signing ECDSA
Input: π 2 = π₯ 3 + aX + b a, b, prime number ZP, Base point G, The Order of Subgroup = n, Private key, message=M Output: π, signature 1, signature 2
π β πΆβπππ π ππππππ πππ‘ππππ π , π β [1, π β 1]
π (π₯π , π¦π) β πΆππππ’π‘π π Γ πΊ
π0 β πΆππππ’π‘π (π₯π πππ π)
πΌπ π0 == 0 π‘βππ Go to 1 Else π β πΆππππ’π‘π [ π β1 (π
π0 Γ ππππ£ππ‘π πππ¦) ] πππ π (π β1 ππ ππ’ππ‘πππππππ‘πππ πππ£πππ π)
π ππ‘π’ππ (π0 , π)
Verifying ECDSA
Input: π, π0 , ππ’ππππ πππ¦, πππ π πππ = π , πππππ ππ π π’πππππ’π = π , πππ π πππππ‘ πΊ Output: True, False
π1 β πΆππππ’π‘π (π β1 Γ π) πππ π
π2 β πΆππππ’π‘π (π β1 Γ π0) πππ π
π β πΆππππ’π‘π π2 Γ πΊ + (π2 Γ ππ’ππππ πππ¦ )
πΌπ π₯π == π0 (πππ π) π‘βππ π ππ‘π’ππ πππ’π Else π ππ‘π’ππ πΉπππ π
Last updated