前言
上一篇分享了“模运算”相关的知识,并且计算了一些有限域的例子,这一篇我们讨论在通用零知识证明中经常提到的椭圆曲线和双线性配对。椭圆曲线作为双线性对的基础和前置知识,我们首先介绍一下其在实数域上的表现形式,然后通过计算的方法列出”F_101”和其扩域“F_101^2”上的全部元素的列表。
椭圆曲线相关知识---曲线方程
椭圆曲线的一般形式的方程其实比较复杂,称为Weierstrass方程,形如下面的形式:
我们先将a,b,c,d,e随意的取值为1,2,3,4,5,并通过画图来查看曲线在直角坐标系上的表现形式。根据二次方程求根公式,我们将其变换为x关于y的函数
IMF今日发布的加密货币科普视频实为两年前旧闻,且存在诸多疏漏:国际货币基金组织IMF今日在推特上发布了一条关于加密货币的科普视频,这段时长两分钟的视频最初发布于2018年6月。该视频称加密货币是“货币进化的下一步”,但没有特别提到DLT、区块链,甚至是代币名称等术语。BTC、XRP和ETH只出现在说明加密交易的图形中。尽管这段视频到目前为止已经获得了超过13.7万的点击量和2900个赞,但来自加密社区的许多反应都是批评的,他们指出了信息中的漏洞和似乎具有误导性的措辞。
Reddit用户nanooverbtc称:“他们犯了很多错误,比如把私钥称为密码。”该视频也没有讨论挖矿或加密货币供应。Kraken策略师Pierre Rochard等知名人士表示:“可证明的稀缺性是比特币有趣的原因,你忘了提这一点。”(Cointelegraph)[2020/8/24]
人民数字FINTECH推出区块链科普动画:人民日报数字传播发布微博称,人民数字FINTECH出品《趣味科普|区块链动画》。[2020/3/31]
根据方程作图如下:
根据上面的方程和作图过程了解道,曲线由上下两个半支组成,关于y=0.5对称。
对称的总是美的,但是这个曲线却有一点瑕疵,他的对称轴并不是x轴而是y=0.5。考虑到Weierstrass太过复杂,人们更经常使用的是在Weierstrass方程的基础上进行一些坐标变换和参数化简后的形式。新的形式关于x轴对称。
当取a=0,b=3时,画出曲线如下图,容易验证是曲线上一点,对称的也是。
中科院自动化研究所将面向大中小学生开展区块链等主题的科普讲座:5月21日,新华网讯,今年,中国科学院自动化研究所将举办第十四届“自动化之光”公众科学开放日活动。届时,自动化所将面向大中小学生分别开展《脑与智能》、《区块链技术与平行智能》、《大数据时代的视觉智能》、《动画真奇妙》等4个主题报告,用实例和生动的演示深入浅出地为大家揭示智能技术的原理和奥妙。[2018/5/21]
通过方程我们画出了曲线y^2=x^3+3的图像,但是说这就是椭圆曲线的图像其实并不准确。准确地说,我们画的是在实数域上这个方程的图像。在复数域上当然有更多的点也满足曲线方程但是我们的图像中并没有体现,例如。如果把曲线看作点的集合,那数域的扩张直接影响到我们要讨论的这个集合的大小,这在本文后半部分我们还会看到。
科普时报:区块链与云计算长期发展目标不谋而合:据《科普时报》今日报道,区块链与云计算两项技术的结合,从宏观上来说,一方面,利用云计算已有的基础服务设施或根据实际需求做相应改变,实现开发应用流程加速,满足未来区块链生态系统中初创企业、学术机构、开源机构、联盟和金融等机构对区块链应用的需求。另一方面,对于云计算来说,“可信、可靠、可控制”被认为是云计算发展必须要翻越的“三座山”,而区块链技术以去中心化、匿名性,以及数据不可篡改为主要特征,与云计算长期发展目标不谋而合。[2018/5/4]
另外为了让其拥有更多的性质,我们认为椭圆曲线其实还包括一个“无穷远”点。这个点在图中并不能体现出来,我们也不能以直角坐标的形式写出这个点的坐标,但是当我们说椭圆曲线时默认其点的集合中包含这个点。“无穷远点”一般用"O?"表示。
椭圆曲线相关知识---点的运算
就像讨论“F_7”时那样,有了元素的集合还需要有在集合上的运算。这条曲线就是椭圆曲线点的集合,但是为了构建密码算法还需要定义点的运算。不同于域中需要两种基本运算,这里我们只需要定义一种特殊的基本运算就可以,不妨将这种运算称作加法,用“+”表示。
金色财经独家分析 监管机构、媒体、业界提示风险 区块链科普道阻且长:新华社今日发文表示,近来“区块链”类案件频发,不法分子以“投资虚拟货币周期短、收益高、风险低”为借口,取用户信任并诱使其转账进行投资。无独有偶,同日消息,腾讯手机管家安全专家也提醒此类风险,并从技术上提出防建议。在美国,监管机构警示加密货币欺诈现象普遍承诺高收益而不披露潜在风险。金色财经独家分析,不法分子假借新技术之名进行,一方面是抓住民众趋利的心理,一方面反映出区块链科普的欠缺。区块链是新兴科技和底层技术并有改变社会生产关系的潜力,应该进行系统性的科普教育,当前,部分大学已经开始设置了区块链课程,但对于普通民众仍然有科普的需求,人们应该了解到系统和正确的知识,不仅要了解区块链的好,也要明确局限和弊端,以在高收益的诱惑下,保持清醒客观。[2018/4/11]
通过几何意义可以清楚的理解这种运算的定义,例如我们选取了曲线上的两个点A和B计算加法,把A+B的结果记为C,过程如下:
1)过AB做直线,交曲线于T;
2)过T做x轴垂线,交曲线于C点,C即为所求;
需要说明的是,当两个“加数”位置的点为同一个点时,步骤一中所做的其实是过该点的切线。另外,当AB的连线本身就垂直于x轴时,我们规定AB和曲线的第三个交点是无穷远点“O”。
在这样的规则下容易发现,任何点P都有一个对应的P’,使得P+P’=O;并且任何点A和O的运算的结果都是A本身。而且因为连线AB和连线BA其实是同一条直线,因此我们也能够得知这里定义的点的加法是满足交换率的。
根据定义再结合一些解析几何的知识,就可以求出点加法的坐标计算公式。例如假设A和B的坐标分别为(Xa,Yb)和(Xa,Yb),那么C点坐标如下:
其中"λ"是直线AB连线的斜率,或者当A、B重合时是A点的切线斜率。
现在我们将转而讨论有限域上的椭圆曲线,其上的椭圆曲线表现为一些散布的点。在有限域上A+B虽然已经没有明确的几何意义,但是有同样的计算公式。我们已经验证过是椭圆曲线上的点,那么我们就把该点记为G,并且从该点开始,计算G,G+G,G+G+G...看看会有怎样的规律。
以G+G为例,我们进行演算,首先计算λ,也就是G点的斜率:
然后计算C点坐标:
因此G+G的坐标为。而G+2G稍稍有不同,主要是λ需要从切线斜率修改为过AB的直线斜率:
因此我们也计算出G+2G=3G的坐标,以此类推进行计算,我们得到下表
读者可以选择表中的点,例如(32,42),来验证其是否在曲线上,也就是是否满足曲线方程y^2=x^3+3mod101,相关演算我们不在本文赘述。
经过计算和验证可以发现,这一系列点构成了一个周期为17的循环。如果我们将k个G相加记为kG,并且将O看作0G,那么有17G=O。这像极了模17加法的规律,并且在模17加法和为0的两个数对应的两个椭圆曲线点的和正好是O,我们说这样的17个点和加法一起构成一个有17个元素的循环群。因为这只是一篇科普性质的文章,我们不给出循环群的严格定义,但是正如它的名字中强调的“循环”,循环群最突出的性质就是能够由某个元素不断运算从而得到全部。
需要强调的是这17个点并不是F_101上椭圆曲线的全部,但仅利用这17个元素组成的集合我们已经能够在其中完成点的加法运算,也就是说任意选择集合中两个点进行加法,其结果不会跳出到集合之外。
在本篇最后,我们展示17个点在直角坐标系中的分布,读者可以体会其中的对称之美。下一篇我们将找到另一个17个元素的循环群并且在其基础上计算双线性映射,敬请期待。
附录
▲表2:模101元素逆元表
乔沛杨
趣链科技基础平台区块链底层密码学小组
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。