区块见闻 区块见闻
Ctrl+D收藏区块见闻

GAME:探索椭圆曲线配对_Artwork NFT

作者:

时间:

作者:VitalikButerin

原标题:《ExploringEllipticCurvePairings》

发表时间:2017年1月14日

密码学的众多基础建设,例如「确定性阈值签名」(deterministicthresholdsignature,暂译)、zk-SNARKs与其他形式较简单的零知识证明等等,背后关键的原始模型之一是椭圆曲线对。椭圆曲线在三十余年来广泛使用于加密、数位签章等密码学应用,「椭圆曲线对(ECpairings)」是最近基于其上的新玩意,它引进了加密乘法,让基于椭圆曲线的协定,所能做的事情大为增加。这篇文章会详细地介绍椭圆曲线对,以及简要解释它如何运作。

因为这概念真的不容易,不太预期你读第一遍甚至是第十遍时就真的完全理解,但希望这篇文章能至少告诉你一些箇中奥妙。

椭圆曲线本身就已经是一个不太容易理解的主题,但这篇文章大多时候会假设你对它的运作原理有些认识,如果你没有基本概念的话,我会推荐这篇文章作为入门。总的来说,椭圆曲线处理的是一些称为「点(points)」的数学物件,直白说是二维平面上的点(x,y),以及一些加减运算的特别公式,你还可以让点去乘以一个整数。

这是点的加法在图上看起来的样子

除此之外有个特别的点叫做「无穷远点」(O),在点的运算规则中作为零元素,也就是对于所有点都有P+O=P。一条曲线还拥有一个称为「阶(order)」的特质,也就是存在一个正整数n,对于所有P都使得P*n=O。还有某个事先协议好的「生成点(generatorpoint)G」,也就是挑选来作为加法单位元素、代表数字1那个角色的点。理论上任何曲线上的点都可以当生成元,重要的是那个G是统一选定的。

谷歌云正在策划更多以Web3为中心的产品:金色财经报道,谷歌云Web3负责人James Tromans表示,谷歌云正在策划更多以Web3为中心的产品,使其计算产品成为行业公司和开发人员的首选。谷歌云最近推出了一项旨在支持Web3领域参与者的启动计划。Tromans表示,谷歌云将继续在 BigQuery(谷歌的“无服务器数据仓库”)上提供以太坊等链上数据集,其云计算服务部门继续以与其区块链节点引擎相同的方式构建服务,帮助客户成为Web3生态系统中的变革性参与者是该公司使命的核心部分。该高管没有详细说明可能正在制定的任何具体举措。[2023/7/22 15:51:47]

配对就是进一步允许你验证某类更复杂的等式:例如,如果P=G*p、Q=G*q、R=G*r,当你要检查p*q=r是否成立,你只要有P,Q,R三个点的座标做为输入就行了。这也许看起来像是椭圆曲线最基本的安全保证被打破了,因为乍看之下,要是知道P点的座标就泄漏了p的值。但事实上这样泄漏的风险非常局限──准确来说,判定性的Diffie-Hellman问题很容易,但是计算性的版本仍然是「计算上不可行(computationallyinfeasible)」的。至少难度就跟不知道这个值差不多。

第三种理解「配对」的方式,也许是在我们讨论的大部分使用情境里最有启发性的方式是,如果你把椭圆曲线上的点看成一个单向加密函数,那么对比传统椭圆曲线的数学原理让你检验变数间的线性约束,椭圆曲线对就是让你检验变数间的二次约束。能够做到二次以后,就足够让我们做些像是确定性阈值签名、QAP(quadraticarithmeticprograms,一种零知识证明)等等有趣的应用。

现在的问题是我们上面引进的e(P,Q)这个运算子到底是什么?这就是一组「配对」。数学家们有时候也把它叫做「双线性映射」,「双线性」在这里基本上表示它满足以下条件:

香港财政司司长陈茂波:现在是Web3发展的黄金机遇,也是惊心动魄的时刻:4月12日消息,在“2023 香港Web3嘉年华”主会场上,香港特别行政区政府财政司司长陈茂波在发表开幕演讲时表示,要以科技变革的历史视角看待 Web3 的发展,科技的变革引领着商业的创新,而商业行为也会驱动更好科技的变革,互联网就属于这一类变革的力量,区块链技术的兴起,让互联网已经进入 Web3 时代。香港将推动虚拟资产市场可持续和负责地发展,适当的监管是必须的,这样才能营造可持续的发展空间。现在是 Web3 发展的黄金机遇,也是惊心动魄的时刻,回顾历史,Web3 的发展在经历震荡后将会再次快速发展。[2023/4/12 13:58:11]

e(P,Q+R)=e(P,Q)*e(P,R)e(P+S,Q)=e(P,Q)*e(S,Q)

注意到这里的+和*可以是任意的运算子;当你新建立一类数学物件的时候,抽象代数上不在意+和*是如何被「定义」的,只要和我们习以为常的运算一致就可以了,像是a+b=b+a、(a*b)*c=a*(b*c)、(a*c)+(b*c)=(a+b)*c。

假如现在P,Q,R,S仅仅是数字,那配对函数十分容易构造:我们可以定义e(x,y)=2^(xy)。那么我们就会看到:

e(3,4+5)=2^(3*9)=22?e(3,4)*e(3,5)=2^(3*4)*2^(3*5)=212*21?=22?

它确实是双线性的!

然而像这样简单的配对不适合用在密码学上,因为要分析单纯运作在整数上的数学物件简直轻而易举;整数的性质使得除法、对数等等许多操作变得容易。整数也没有「公钥」或是「单向函数」的概念。进一步说,上面描述的那种配对是可逆的:知道x、知道e(x,y),做个除法和对数就可以算出y。我们想要的数学结构是尽可能接近「黑盒子」:你可以做些加减乘除,但也就只能这样了。这个时候椭圆曲线和椭圆曲线对就派上用场了。

Web3社交工具Inspect宣布将于1月17日关闭:金色财经报道,Web3社交工具Inspect宣布,将于1月17日关闭网站和Chrome扩展程序。Inspect表示,成立至今已汇集了1k+社区,并产生了175k+新的NFT连接。

据Rootdata介绍,Inspect Chrome扩展程序可让用户在不离开Twitter的情况下轻松了解有关NFT及其社区的更多信息。对于NFT,Inspect会放置一个以太坊/Solana徽标,单击该徽标会直接在用户推特提要上弹出有关特征、销售、稀有性等的信息。[2023/1/4 9:51:39]

人们发现,确实能在椭圆曲线的点上设计双线性映射──也就是当输入是椭圆曲线上的两个点P和Q,构造一个函数e(P,Q)映射到一个F_p12的元素,但做到这件事情底下的数学实在是十分复杂。

第一,我们来介绍质数体(primefields)和扩体(extensionfields)。上图画的曲线虽然漂亮,但那是在你假设曲线的等式定义在平常所用的实数上才会长成那样。如果我们真的在密码学里使用实数,那你就可以用对数「倒回去」,那一切就没用了,更何况储存实数所需的空间可能会无尽地长。因此,我们改用实数体上的数字。

一个质数体由数字0,1,2,…,(p?1)所成集合构成,其中p是一个质数,而其运算由下定义:

a+b:(a+b)%p?a*b:(a*b)%p?a-b:(a-b)%p?a/b:(a*b^(p-2))%p

基本上,所有运算都在模(modulo)p下进行(这里有模运算的简介)。除法是个特例。一般来说,3/2不是整数,但我们想要只处理整数,所以我们改成去找整数x使得x*2=3,而这里的*当然是指上面定义的模数乘法。幸亏有费马小定理,除法的那个指数定义能满足需要,但还有个更快的做法,那就是用扩展欧几里得演算法。假设p=7,下面有几个例子:

Ava Labs推出面向Web3用户的Core网站,拥有跨链、交易等多项功能:10月20日消息,据官方公告,Avalanche开发公司Ava Labs宣布推出面向Web3用户的Core网站,这是一款免费的一体化“指挥中心”产品,帮助用户查看和使用Avalanche网络、Avalanche子网和以太坊中的Web3应用。Ava Labs表示该产品与其他投资组合dApp不同的是其对Avalanche、比特币和以太坊网络进行了全面优化,拥有跨链、交易、法币购买、控制、搜索等多项功能。[2022/10/20 16:31:09]

2+3=5%7=5?4+6=10%7=3?2-5=-3%7=4?6*3=18%7=4?3/2=(3*2^5)%7=5?5*2=10%7=3

如果你试着操作这样的运算,你会发现它是前后一致的,而且满足所有寻常的规则。最后的两个例子说明(a/b)*b=a,你还可以发现(a+b)+c=a+(b+c)、(a+b)*c=a*c+b*c,还有其他你高中所知道和喜爱的代数等式都还会继续运作。现实上使用的椭圆曲线,点和等式通常都是在质数体上运算的。

现在我们来谈谈扩体。你先前可能已经看过扩体了,数学课本上最常遇到的例子是复数体──以实数体为基础加入sqrt(-1)=i这个新的元素后扩张而成的。简单来说,扩体就是在一个现成的体上,「发明」一个新的元素,并且定义好这个新元素跟现有的元素的关系(在刚刚的例子里的话是i^2+1=0);这个关系式不能被现有的数字满足,那把这个新元素加进「旧有的元素的所有线性组合(linearcombination)」组成的集合便是构造出来的集合。

我们也可以对质数体进行扩张;举个例子,在模7的质数体里加入我们刚刚所说的i,那么我们有

澳洲上市公司Crowd Media拟融资210万美元开发可创建数字化身的Web3 AI平台:5月30日消息,澳洲上市公司Crowd Media拟融资210万美元以开发可创建数字化身的Web3人工智能平台。据悉,该平台基于对话式AI技术构建计算机生成的数字化身,其合作伙伴Impssbl已经利用相关技术构建了交互式NFT,将AI生成的数字化身转换为NFT艺术品。(SMALL CAPS)[2022/5/30 3:50:04]

(2+3i)+(4+2i)=6+5i?(5+2i)+3=1+2i?(6+2i)*2=5+4i?4i*(2+i)=3+i

最后的等式可能比较难以理解;其实那条等式的第一步是先把左边的乘法做分配变成4i*2+4i*i,得到8i-4。因为我们是在模7的环境下做运算,这个数字就变成了i+3。至于除法的部份则是:

a/b:(a*b^(p^2-2))%p

这边费马小定理的指数从p变成了p2,当然也可以使用扩展欧几里得演算法来更有效率地运算。因为对于在体中的任一个元素x都会有x^(p2?1)=1,所以我们称(p2?1)为「体中乘法群的阶」。

对于实数体,代数基本定理保证了它的二次扩体(quadraticextension):复数体,是完备的──这个体不能再被扩张,因为所有可能的新元素j与现有的复数之间应该要满足的数学关系,都有一个在体内的元素早已满足。但在质数体中,就没有这个问题,我们可以对其进行三次扩张(cubicextension),高次扩张,甚至扩张再扩张等等。椭圆曲线就是建立在这些模运算的复数上的。

对这些数学如何实作成程式码有兴趣的话,这边有一些实作质数体以及扩体的例子。

回头来看椭圆曲线对。椭圆曲线对是一个G2×G1→Gt的映射,其中:

G1是一条椭圆曲线,线上的点满足形如y2=x3+b的式子,而且点的x,y座标都是F_p的元素。

G2也是一条椭圆曲线,同样满足G1的曲线,但G2中的元素的x,y座标是F_p12的元素

Gt是椭圆曲线的运算结果形成的集合。在我们讨论的曲线中,Gt是F_p12

它主要必须满足的性质是双线性,在这个脉络下这样代表:

e(P,Q+R)=e(P,Q)*e(P,R)e(P+Q,R)=e(P,R)*e(Q,R)

选择配对函数还有两个重要的准则:

运算要足够有效率

非退化

所以我们该怎么做到这件事?

让配对函数得以运作背后的数学十分困难,而且需要一些进阶的代数,超过我们目前为止所见,但我会大致说明。首先我们需要定义「因子(divisor)」的概念,基本上是另一种方式来表示作用在椭圆曲线上的点的函数们。一个函数的因子基本上计算了一个函数有多少个零点和取值无限大的点。为了理解清楚一些,我们来看看几个例子。让我们选定一个点P=(P_x,P_y),然后考虑以下函数:

f(x,y)=x?P_x

它的因子是+?2*。原因如下:

这个函数在P点的值等于零,因为x取值P_x,所以x?P_x=0

这个函数在?P点的值等于零,因为?P和P的x座标相同

这个函数在x趋向无限大的时候也趋向无限大,所以我们说这个函数在O点取值无限大。计算这个无穷远点要算两次,所以O要乘以乘数-2。

计算上的理由大约是:因为这个曲线的方程式是x3=y2+b,当x增加,为了让y2达到相当的规模,y增长的速度大约需要是x的1.5倍。因此如果一个线性函数只包含x,那它无限大那一项的乘数是2,但如果它包含y,那乘数就要是3。

现在考虑一条线的函数:

ax+by+c=0

其中a,b,c被选定来让这条线通过点P和点Q。根据椭圆曲线加法的运作方式,它也一定会通过?P?Q这个点。因为它跑向无限大时会同时取决于x和y,所以因子是++?3*。

我们知道所有「有理函数」唯一地对应到某个因子,顶多就是多乘一个常数。

对于任意两个函数F和G,(F*G)的因子等于F和G的因子之和,所以比如f(x,y)=P_x?x,那么(f3)=3*+3*?6*;P和?P算三次是因为在特定的数学意义下f3会「三倍快地」靠近0。

留意有个定理说如果你把某个因子的「方括号」拿掉,那些点运算后的结果必定是O,而且任何有这个性质的因子就会是那个函数的因子。

现在我们可以开始看Tatepairing了。考虑以下用因子定义的函数:

(F_P)=n*?n*,其中n是G1的阶数,也就是对于所有P,n*P=O

(F_Q)=n*?n*

(g)=??+

现在,让我们看看这个乘积F_P*F_Q*g^n。它的因子是:

n*?n*+n*?n*+n*?n*?n*+n*

化简会得到干净的:

n*?n*

注意到这个因子的格式跟F_P和F_Q的因子相符。因此有F_P*F_Q*g^n=F_(P+Q)。

现在再多做一个称为「最终指数(finalexponentiation)」的操作,把前述运算的结果自乘到z=(p12?1)/n的幂次,其中p12?1是F_p12中乘法群的阶。注意到如果你把这个指数套用在任何已经是n次幂的结果上,你就会得到某个元素的(p12?1)次方,结果就会变成1。因此,在最后的指数步骤后,g^n会消掉,然后我们就会得到F_P^z*F_Q^z=F_(P+Q)^z。于是就有了双线性的性质的一部分。

现在如果你想构造一个函数,它在两个参数上都会是双线性的,你需要更吓人的数学,那么要做的不只是算F_P,还要计算F_P的因子,再做下去就会得到完整的Tatepairing。为了证明更多结论你需要理解一些概念像是「线性等价(linearequivalence)」以及Weilreciprocity之类。这些概念详细的内容可以在这里以及这里看到。

而这边实作了一个Tatepairing的修改版──OptimalAtePairing。该代码里还实现了用米勒算法来计算出F_p。

事实上,使用这样的配对如同提起一把双面刃:一方面这代表着我们可以利用这种配对实现不同的协定,同时也代表了我们在选择使用什么椭圆曲线时要特别小心。

每个椭圆曲线都有一个叫embeddingdegree的值──最小的整数k使得p^k?1是n的倍数。在上文提到的体当中k=12,在传统的椭圆曲线密码学中使用的体的embeddingdegree通常都会非常大,大到让计算出配对这件事是计算上不可行的。不过,当我们不注意的时候很有可能会构建出k=4甚至k=1的体。

当k=1的时候,椭圆曲线上的「离散对数问题」可以退化成一个在F_p上的相对简单的问题;使用一个embeddingdegree大于等于12的椭圆曲线会保证这种退化不可行,又或者是退化出来的问题复杂到至少跟用「正常」的方法从公钥算出私钥一样困难。现在所有标准的曲线参数都经过仔细检查,不会受这个问题影响。

标签:RINGAMGAMENFTgrin币是否有投资价值Decentral Games [new]Mazuri GameFiArtwork NFT

以太坊交易热门资讯
OASIS:NBA 杜兰特的加密投资版图_OAS币

撰文:Zen,PANews上周,NBA球星凯文杜兰特撤销交易申请,接受布鲁克林篮网队的“招安”,球队老板蔡崇信总算松了口气,长达近两个月的一系列离队闹剧终于结束了.

OMP:Messari 二季度 Compound 报告:存贷款创历史新低,清算业务增逾 7 成_NFT

撰文:SeanButterfield,Messari编译:Frank,ForesightNews 主要观点: 2022年第二季度.

Compound:Web3 3A 游戏卖楼花,杠杆化的研发模式会降低高成本?_Compound Meta

作者:Simon,IOSGVentures3A与房地产有着某种程度的类似,建设耗时耗钱,牵涉的利益相关方众多.

WEB:Bankless:为什么我们认为 ETH 有 99% 的概率超越 BTC?_ring币值得投资吗

原文标题:《WhytheFlippeningIsGoodforCrypto》作者:RyanBerckmans,Bankless编译:深潮TechFlow合并已经结束.

比特币:熊市下的 Web3 投资:哪些赛道值得布局?探寻头部基金和 Alpha_比特币即将大涨

作者:Jessica,Aaron,Rosie,A&TCapital? 前言 首先定义我们研究涉及的投资方向.

BLO:加密工具梳理:10 个小众却强大的研究神器_blockchain钱包

作者:SergioGallardo编译:0x214,BlockBeats除去大家耳熟能详的加密市场工具Nansen、Dune、DefiLlama和Parsec等.