#C/C++实现区块链(上)之加密算法(原创算法,转载必究)

###本算法基于椭圆标准方程、线性代数、数据结构,纯属自制。仅供学习参考,不得用于商业用途。

#####首先了解下椭圆标准方程:
C/C++实现区块链(上)之加密算法(原创算法,转载必究)_加密算法

我们先模拟下长轴为Y轴时(即焦点F在Y轴上,F的横坐标为0的情况),然后根据椭圆的定义,得到椭圆上任意一点F,到焦点F1,F2的距离|MF1|+|MF2|是一个常数。,这个时候连接MF1和MF2。然后很容易得到椭圆标准方程从而得到椭圆的准线方程。
通过椭圆的准线方程,我们可以得知准线方程和椭圆相切于点A1,A2,A3,A4并可以很容易的得到这四个点的坐标分别为(0,a)、(0,-a)、(b,0)、(-b,0).
通过这四个点,我们从y轴的正半轴的远离原点的点开始构造向量,方向为先左后右。如图所示:

C/C++实现区块链(上)之加密算法(原创算法,转载必究)_C/C++_02

以下为矩阵创建算法:
C/C++实现区块链(上)之加密算法(原创算法,转载必究)_加密算法_03

以上为实现区块链的核心算法代码,基本思想为,根据public_key难以解出我的环路迭代次数和a、b值,并且对于可以对任意点在椭圆上的情况做出判断,看点M是否满足圆的标准方程的定义来实现安全性。

####创建区块
核心思想就是通过加密算法来加密区块。精通C的小伙伴们肯定都知道链表这种数据结构。区块即链表,区块链的基本结构如下:
C/C++实现区块链(上)之加密算法(原创算法,转载必究)_C/C++_04
其中第一个区块为创世区块。
而数字签名我将利用以上基于椭圆的加密算法来实现,不通过任何第三方MD5,RSA,或是HASH实现。