区块链智能合约中的公钥和私钥的区别,区块链智能合约中的公钥和私钥是什么区块链智能合约中的公钥和私钥

zhousys 区块链知识 2023-09-30 18:03 85

摘要:区块链智能合约中的公钥和私钥『壹』区块链私钥、公钥和地址是什么关系区块链私钥,公钥和地址三者之间的关系是私钥生成公钥,公钥转化成为地址。所以私钥是最重要的。这...

区块链智能合约中的公钥和私钥

『壹』 区块链私钥、公钥和地址是什么关系

区块链私钥,公钥和地址三者之间的关系是私钥生成公钥,公钥转化成为地址。所以私钥是最重要的。这三者之间是不可逆的,地址不能生成公钥,公钥也不能转化成为私钥。

再次是区块链地址,它通常是由26至35个字符的字母和数字字符串组成,区块链地址主要来源于公钥,区块链地址相当于我们平时使用的银行卡卡号,是可以公开给任何人的,没有安全限制,主要作用就是用于接收和发送区块链上的数字资产。

区块链技术现在处于初期发展阶段,但因其具有去中心化、安全性、不可篡改等特性,今后的生活工作中可能会产生杀手级别的落地应用而备受各国重视。本文仅供参考,欢迎留言讨论。

『贰』 第4课 区块链中的密码学 学习总结

这是加入公Ulord深度学习第四课,杨博士给大家主讲区块链中的密码学问题,本期课程令让我弄懂了一个一直困扰着我的关于公钥和私钥的问题,他们之间到底是什么关系?再这次学习中我得到了答案,现在我把我学习到的内容跟大家分享一下。

区块链里的公钥和私钥,是非对称加密里的两个基本概念。

公钥与私钥,是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥是非公开的部分。公钥通常用于加密会话,就是消息或者说信息,同时,也可以来用于验证用私钥签名的数字签名。

私钥可以用来进行签名,用对应的公钥来进行验证。通过这种公开密钥体制得到的密钥对能够保证在全世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密数据,则必须用它对应的另一个密钥来进行解密。

比如说用公钥加密的数据就必须用私钥才能解密,如果用私钥进行加密,就必须要对应的公钥才能解密,否则无法成功解密。另外,在比特币的区块链中,则是通过私钥来计算出公钥,通过公钥来计算出地址,而这个过程是不可逆的。

『叁』 区块链中的私钥是指什么

私钥公钥这个名词可谓是所有考题中最简单的了。
公开的密钥叫公钥,只有自己知道的叫私钥。
公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。
一句话明了~

『肆』 区块链的基础知识有哪些

1、FISCO BCOS使用账户来标识和区分每一个独立的用户。在采用公私钥体系的区块链系统里,每一个账户对应着一对公钥和私钥。其中,由公钥经哈希等安全的单向性算法计算后,得到的地址字符串被用作该账户的账户名,即账户地址。仅有用户知晓的私钥则对应着传统认证模型中的密码。这类有私钥的账户也常被称为外部账户或账户。

2、FISCO BCOS中部署到链上的智能合约在底层存储中也对应一个账户,我们称这类账户为合约账户与外部账户的区别在于,合约账户的地址是部署时确定,根据部署者的账户地址及其账户中的信息计算得出,并且合约账户没有私钥。

3、SDK需要持有外部账户私钥,使用外部账户私钥对交易签名。区块链系统中,每一次对合约写接口的调用都是一笔交易,而每笔交易需要用账户的私钥签名。

4、权限控制需要外部账户的地址。FISCO BCOS权限控制模型,根据交易发送者的外部账户地址,判断是否有写入数据的权限。

5、合约账户地址唯一的标识区块链上的合约。每个合约部署后,底层节点会为其生成合约地址,调用合约接口时,需要提供合约地址。

『伍』 公钥、私钥、哈希、加密算法基础概念

生活中我们对文件要签名,签名的字迹每个人不一样,确保了独特性,当然这还会有模仿,那么对于重要文件再加盖个手印,指纹是独一无二的,保证了这份文件是我们个人所签署的。

那么在区块链世界里,对应的就是数字签名,数字签名涉及到公钥、私钥、哈希、加密算法这些基础概念。

首先加密算法分为对称加密算法、非对称加密算法、哈希函数加密算法三类。

所谓非对称加密算法,是指加密和解密用到的公钥和私钥是不同的,非对称加密算法依赖于求解一数学问题困难而验证一数学问题简单。

非对称加密系统,加密的称为公钥,解密的称为私钥,公钥加密,私钥解密、私钥签名,公钥验证。

比特币加密算法一共有两类:非对称加密算法(椭圆曲线加密算法)和哈希算法(SHA256,RIMPED160算法)

举一个例子来说明这个加密的过程:A给B发一个文件,B怎么知道他接收的文件是A发的原始文件?

A可以这样做,先对文件进行摘要处理(又称Hash,常见的哈希算法有MD5、SHA等)得到一串摘要信息,然后用自己的私钥将摘要信息加密同文件发给B,B收到加密串和文件后,再用A的公钥来解密加密串,得到原始文件的摘要信息,与此同时,对接收到的文件进行摘要处理,然后两个摘要信息进行对比,如果自己算出的摘要信息与收到的摘要信息一致,说明文件是A发过来的原始文件,没有被篡改。否则,就是被改过的。

数字签名有两个作用:
一是能确定消息确实是由发送方签名并发出来的;
二是数字签名能确定消息的完整性。

私钥用来创建一个数字签名,公钥用来让其他人核对私人密钥,
而数字签名做为一个媒介,证明你拥有密码,同时并不要求你将密码展示出来。

以下为概念的定义:

哈希(Hash):
二进制输入数据的一种数字指纹。
它是一种函数,通过它可以把任何数字或者字符串输入转化成一个固定长度的输出,它是单向输出,即非常难通过反向推导出输入值。
举一个简单的哈希函数的例子,比如数字17202的平方根是131.15639519291463,通过一个简单的哈希函数的输出,它给出这个计算结果的后面几位小数,如后几位的9291463,通过结果9291463我们几乎不可能推算出它是哪个输入值的输出。
现代加密哈希比如像SHA-256,比上面这个例子要复杂的多,相应它的安全性也更高,哈希用于指代这样一个函数的输出值。

私钥(Private key):
用来解锁对应(钱包)地址的一串字符,例如+。

公钥(Public keycryptography):
加密系统是一种加密手段,它的每一个私钥都有一个相对应的公钥,从公钥我们不能推算出私钥,并且被用其中一个密钥加密了的数据,可以被另外一个相对应的密钥解密。这套系统使得你可以先公布一个公钥给所有人,然后所有人就可以发送加密后的信息给你,而不需要预先交换密钥。

数字签名(Digital signature):
Digital signature数字签名是这样一个东西,它可以被附着在一条消息后面,证明这条消息的发送者就是和某个公钥相对应的一个私钥的所有人,同时可以保证私钥的秘密性。某人在检查签名的时候,将会使用公钥来解密被加密了的哈希值(译者注:这个哈希值是数据通过哈希运算得到的),并检查结果是否和这条信息的哈希值相吻合。如果信息被改动过,或者私钥是错误的话,哈希值就不会匹配。在比特币网络以外的世界,签名常常用于验证信息发送者的身份 – 人们公布他们自己的公钥,然后发送可以被公钥所验证的,已经通过私钥加密过的信息。

加密算法(encryption algorithm):
是一个函数,它使用一个加密钥匙,把一条信息转化成一串不可阅读的看似随机的字符串,这个流程是不可逆的,除非是知道私钥匙的人来操作。加密使得私密数据通过公共的因特网传输的时候不需要冒严重的被第三方知道传输的内容的风险。

哈希算法的大致加密流程
1、对原文进行补充和分割处理(一般分给为多个512位的文本,并进一步分割为16个32位的整数)。
2、初始化哈希值(一般分割为多个32位整数,例如SHA256就是256位的哈希值分解成8个32位整数)。
3、对哈希值进行计算(依赖于不同算法进行不同轮数的计算,每个512位文本都要经过这些轮数的计算)。

区块链中每一个数据块中包含了一次网络交易的信息,产生相关联数据块所使用的就是非对称加密技术。非对密加密技术的作用是验证信息的有效性和生成下一个区块,区块链上网络交易的信息是公开透明的,但是用户的身份信息是被高度加密的,只有经过用户授权,区块链才能得到该身份信息,从而保证了数据的安生性和个人信息的隐私性。

公钥和私钥在非对称加密机制里是成对存在的,公钥和私钥可以去相互验证对方,那么在比特币的世界里面,我们可以把地址理解为公钥,可以把签名、输密码的过程理解为私钥的签名。
每个矿工在拿到一笔转账交易时候都可以验证公钥和私钥到底是不是匹配的,如果他们是匹配的,这笔交易就是合法的,这样每一个人只需要保管好TA自己的私钥,知道自己的比特币地址和对方的比特币地址就能够安全的将比特币进行转账,不需要一个中心化的机构来验证对方发的比特币是不是真的。

『陆』 像诚信币这样基于区块链的数字货币中,私钥,公钥,地址到底是怎么回事

很多小白刚入场时,就被私钥,公钥,地址,等等关系弄晕头。有的甚至把自己私钥搞丢了,地址上特别有钱,可偏偏就是取不出来,今天小白就把私钥,公钥,还有地址之间的关系跟大家捋一捋。

私钥、公钥和地址这三者的关系是:

私钥转换成(生成)公钥,再转换成地址,如果某个地址上有比特币或诚信币,就可以使用转换成这个地址的私钥花费上面的诚信币。公钥和地址的生成都依赖于私钥,所以私钥才最重要。

手机钱包也是同样,但因为手机的文件管理方式不像计算机那么方便。所以一般手机钱包会提供一个名为或类似“导出私钥”的功能,通过这个功能,就可以将私钥用各种形式导出来。

比如比特币手机钱包可以导出为二维码,可以打印或者扫描到纸上。更换手机时,装好比特币钱包扫描一下这个二维码,就可以实现迁移比特币。比特币手机钱包和诚信币手机钱包可以导出为一份明文字符串,打印到纸上——这就是纸钱包。

纸钱包让用户可以到任何有比特币或诚信币钱包的终端来花费你的比特币或诚信币。

由于钱包丢失或损坏会导致失去私钥,从而彻底失去该数字货币的转账权。要防止出现这样的悲剧,就要记得经常备份钱包里的数据。除了地址外,备份时也保存了所有的私钥。

总结

私钥要保护好,防止丢失,防止忘记,在手机清信息时方式被清除,最好手抄一份,但不要泄露。

要防止自己钱包丢失或损坏,导致丢失私钥,丧失数字货币的转账权,否则你顿再多币取不出来,还不是没用。

『柒』 【猫说】打开比特币钱包的两把钥匙:私钥、公钥

如果不了解区块链,不知道公钥、私钥这些最基本的概念,拥有钱包对币圈新人来讲,就好像拿手指头去捅鳄鱼的脑袋,风险极高。此文谨献给币圈新朋友,帮助大家梳理比特币钱包的基本常识。

区块链观察网在 《区块链是什么》 一文中提到过,在区块链世界里,每个人都拥有两把独一无二的虚拟钥匙:公钥和私钥。

“公钥”,可以简单理解为银行卡,这是可以发给交易对方看的,银行卡号则相当于比特币转账中要用到的“地址”。

讲得专业一点,公钥就是一个65字节的字符串,多长呢?130个字母和数字堆在一起。公钥太长的话,第一交易起来忒麻烦,第二干嘛非得暴露公钥的真实内容呢,这就好像把自己的银行卡拿出来到处给人看。因此,我们现在看到的地址,就是经过摘要算法生成的、更短一点的公钥。

对方知道你的地址才能给你打钱;而且,任何人有了你的地址,都能在Blockchain.info官网查询这个钱包地址交易了多少次(No. Transactions),收过多少个比特币(Total Received),以及钱包里还剩下多少个比特币(Final Balance),如下图:

“私钥”,就像打死不能告诉别人的银行卡密码。它是一串256位的随机数。因为让非IT用户去记住这个满屏0 和 1的二进制私钥是特别不人道的事儿,所以对这一大串私钥进行了处理,最后私钥就以5 / K / L 开头的字符串呈现在我们面前。

公钥、私钥、地址之间的关系是:

1)私钥 → 公钥 → 地址

私钥生成唯一对应的公钥,公钥再生成唯一对应的地址;

2)私钥加密,公钥解密

也就是说,A使用私钥对交易信息进行加密(数字签名),B则使用A的公钥对这个数字签名进行解密。

其中,私钥是极度私密的东西。如果你把私钥发给别人,现在就开始写一部长篇小说吧,名字都帮你想好了,就叫《永别了,比特币》。

如果是李笑来老师(网传拥有数十万个BTC)这类币圈大佬,强烈建议使用冷钱包(离线钱包),分开储存;电视里的富豪在银行有自己的保险箱,有条件的话也可以参考。

当时,上述方法是安全系数最高的做法。但作为韭菜接班人,暂且假设我们最初只用闲置资金、持有少量的比特币,比如,小于5个。那么,动辄上千成本、操作复杂的冷钱包就有点杀鸡用牛刀了;因此,区块链观察网把选择范围限定在交易所和轻钱包2项:

在交易平台上买了(极少量)比特币,可以先不提出来,继续存在交易所。这种方式最适合币圈新手。在没有深入了解每种加密货币背后的故事之前,鲜嫩的我们总是充满了好奇,而放在交易所的比特币,可以直接进行币币交易,交易简单快捷,不用经数字钱包导来导去;另一方面,平台上币种齐全,可以满足我们的尝鲜心理,方便随时小试牛刀。

而且像火币、币安(已被墙)这些大型交易所,不仅安全等级比某些专为收割韭菜而生的小平台高很多,而且操作简单,很快就能上手,只需保管好自己的账号、密码就行了(再安全一级的话,开启谷歌二次验证),其他的就交给平台。

值得注意的是,存在交易所上的资产并不完全属于自己,更确切地说是借给平台的,我们在资产那一栏看到的数字,相当于平台向我们借钱而打的白条。此外,交易平台本身不是去中心化的,如果安全措施不到位,用户的账号密码有可能被黑客拿到。

轻钱包是相对于“全节点”钱包来说的。

全节点钱包,比如 Bitcoin-Core(核心钱包),运行时需要同步所有区块链数据,占用相当大内存空间(目前至少50GB以上),完全去中心化;

轻钱包虽然也依赖比特币网络上其他全节点,但其仅仅同步跟自己有关的交易数据,基本实现去中心化的同时,也提升了用户体验。

根据不同的设备类型,我们把轻钱包分为:

1)PC钱包:适用于电脑桌面操作系统(如Windows/MacOS/Linus);

2)手机钱包:适用于安卓、iOS智能手机,比如比太钱包(以太也有PC端);

3)网页钱包:通过浏览器访问,比如上文提过的blockchain网页版。

轻钱包操作比较简单,一般是免费获取。申请钱包的时候,系统会生成一个私钥。准备敲黑板!

1)不要截图、拍照存在手机里;

2)不要把私钥信息发给任何人;

3)最好手写(几份)抄下,藏在你觉得最安全的地方。

总之一句话,谁掌握了钱包的私钥,谁就拥有钱包的绝对控制权。私钥只要掌握在你的手里,比特币就绝不会丢。

最后多说几句,作为普通投资者,我们需要做的并不多:

1)走点心,不要把手机弄丢了,毕竟丢了对手机里的比特币钱包有风险;

2)不要手痒删掉设备上的钱包应用,除非你决定再也不用这个钱包了,否则后期很麻烦;

3)设置复杂的密码(原因见第1点),并用心去记牢,这是私钥弄丢以后留的一手。

对于记不住密码,又懒得科学备份私钥的朋友,咱还是把钱存在银行里吧。

『捌』 公钥与私钥的区别与应用。

现实生活中,我要给依依转1个比特币,我需要在比特币交易平台、比特币钱包或者比特币客户端里面,输入我的比特币钱包地址、依依的钱包地址、转出比特币的数量、手续费。然后,我们等十分钟左右,矿工处理完交易信息之后,这1个比特币就成功地转给依依了。

这个过程看似很简单也很便捷,跟我们现在的银行卡转账没什么区别,但是,你知道这个过程是怎样在比特币系统里面实现的吗?它隐藏了哪些原理呢?又或者,它是如何保证交易能够在一个安全的环境下进行呢?

我们今天就来讲一讲。

对于转出方和接收方来讲,也就是我和依依(我是转出方,依依是接收方)我们都需要出具两个东西:钱包地址、私钥。

我们先说钱包地址。比特币钱包地址其实就相当于银行卡、支付宝账号、微信钱包账号,是比特币支付转账的“凭证”,记录着平台与平台、钱包与钱包、钱包与平台之间的转账信息。

我们在使用银行卡、支付宝、微信转账时都需要密码,才能够支付成功。那么,在比特币转账中,同样也有这么一个“密码”,这个“密码“被称作“私钥”。掌握了私钥,就掌握了其对应比特币地址上的生杀大权。

“私钥”是属于“非对称加密算法”里面的概念,与之对应的还有另一个概念,名叫:“公钥”。

公钥和私钥,从字面意思我们就可以理解:公钥,是可以公开的;而私钥,是私人的、你自己拥有的、需要绝对保密的。

公钥是根据私钥计算形成的,比特币系统使用的是椭圆曲线加密算法,来根据私钥计算出公钥。这就使得,公钥和私钥形成了唯一对应的关系:当你用了其中一把钥匙加密信息时,只有配对的另一把钥匙才能解密。所以,正是基于这种唯一对应的关系,它们可以用来验证信息发送方的身份,还可以做到绝对的保密。

我们举个例子讲一下,在非对称加密算法中,公钥和私钥是怎么运作的。

我们知道,公钥是可以对外公开的,那么,所有人都知道我们的公钥。在转账过程中,我不仅要确保比特币转给依依,而不会转给别人,还得让依依知道,这些比特币是我转给她的,不是鹿鹿,也不是韭哥。

比特币系统可以满足我的上述诉求:比特币系统会把我的交易信息缩短成固定长度的字符串,也就是一段摘要,然后把我的私钥附在这个摘要上,形成一个数字签名。因为数字签名里面隐含了我的私钥信息,所以,数字签名可以证明我的身份。

完成之后,完整的交易信息和数字签名会一起广播给矿工,矿工用我的公钥进行验证、看看我的公钥和我的数字签名能不能匹配上,如果验证成功,都没问题,那么,就能够说明这个交易确实是我发出的,而且信息没有被更改。

接下来,矿工需要验证,这笔交易花费的比特币是否是“未被花费”的交易。如果验证成功,则将其放入“未确认交易”,等待被打包;如果验证失败,则该交易会被标记为“无效交易”,不会被打包。

其实,公钥和私钥,简单理解就是:既然是加密,那肯定是不希望别人知道我的消息,所以只能我才能解密,所以可得出:公钥负责加密,私钥负责解密;同理,既然是签名,那肯定是不希望有人冒充我的身份,只有我才能发布这个数字签名,所以可得出:私钥负责签名,公钥负责验证。

到这里,我们简单概括一下上面的内容。上面我们主要讲到这么几个词:私钥、公钥、钱包地址、数字签名,它们之间的关系我们理一下:

(1)私钥是系统随机生成的,公钥是由私钥计算得出的,钱包地址是由公钥计算得出的,也就是:私钥——公钥——钱包地址,这样一个过程;

(2)数字签名,是由交易信息+私钥信息计算得出的,因为数字签名隐含私钥信息,所以可以证明自己的身份。

私钥、公钥都是密码学范畴的,属于“非对称加密”算法中的“椭圆加密算法”,之所以采用这种算法,是为了保障交易的安全,二者的作用在于:

(1)公钥加密,私钥解密:公钥全网公开,我用依依的公钥给信息加密,依依用自己的私钥可以解密;

(2)私钥签名,公钥验证:我给依依发信息,我加上我自己的私钥信息形成数字签名,依依用我的公钥来验证,验证成功就证明的确是我发送的信息。

只不过,在比特币交易中,加密解密啦、验证啦这些都交给矿工了。

至于我们现在经常用的钱包APP,只不过是私钥、钱包地址和其他区块链数据的管理工具而已。钱包又分冷钱包和热钱包,冷钱包是离线的,永远不联网的,一般是以一些实体的形式出现,比如小本子什么的;热钱包是联网的,我们用的钱包APP就属于热钱包。

相关推荐

评论列表
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
关闭

用微信“扫一扫”