【一起入门区块链四】你知道如何验证一笔交易中的比特币所有权吗?

在上篇文章《一文带你看懂去中心化的比特币交易》中我们初步了解了去中心化的比特币的交易过程,简单回顾一下:以Alice向Bob支付10个BTC为例,首先需要交易的用户把交易传到网络中,也就是说Alice在向Bob支付10个BTC后需要把这笔交易全网传播,当这笔交易在比特币网络中传播开来后,这个时候矿工们开始通过比拼算力的方法挖矿来竞争记账权利,直到第一个矿工胜出然后把交易打包再次全网广播,那么其他收到消息的记账包的节点会对其进行验证,验证通过后加入自己的区块。

那这里有个问题 ,各个节点如何验证Alice想Bob发送的这笔交易是有效的呢?如何确保Alice在发生这笔交易的时候拥有这10个BTC的所有权?同样,如何确保接收方一定是Bob并且在这笔交易之后把BTC所有权归为Bob呢?

这时候我们就需要知道,比特币协议规定,在支付比特币时,比特币的当前所有者需要在交易中提交其公钥和签名(每次交易的签名都不同,但均从同一个私钥生成)。比特币网络中的所有人都可以通过所提交的公钥和签名进行验证,并且确认交易是否有效,即确认支付者在该时刻对所交易的比特币拥有所有权。

也就是说,比特币的所有权通过数字密钥、比特币地址和数字签名来确立的。每个比特币交易都需要一个有效的签名才会最终被存储在区块链。

事实上,也只有有效的数字密钥才能产生有效的数字签名。这里要说明,数字密钥并不是存储在网络中,而是存储在钱包中完全独立于比特币协议。而密钥是成对出现的,由一个私钥和一个公钥所组成。公钥就像银行的账号,而私钥就像控制账户的PIN码或支票的签名。

这里出现了区块链话题中经常听到的词汇——公钥和私钥。

公钥⽤于接收⽐特币,⽽私钥⽤于⽐特币⽀付时的交易签名。

公钥和私钥之间的数学关系,使得私钥可⽤于⽣成特定消息的签名。此签名可以在不泄露私钥的同时对公钥进⾏验证。

简单来说,就是公钥是公开的,可以在网络中被任何人所看到,用来加密/验章,而私钥是自己的,必须非常小心保存,用来解密/签章。

还是以Alice向Bob支付10BTC为例,Alice为了证明这个比特币是自己发送的,只需要使用私钥对文件进行签名然后广播交易,Bob或者网络上的其他节点在收到广播后用Alice的公钥对文件进行签名验证,如果验证成功,就证明该笔交易的比特币一定是来自于Alice。

那同样,如何判断该笔交易的比特币就一定是发送给Bob并最终归Bob所有呢,很简单,Alice在发起这笔交易的时候用Bob的公钥对信息进行加密,因为只有Bob的私钥才能解开其公钥加密后的信息,于是也就证明了这笔交易中的BTC确实是发送给Bob的,那么之后Bob就可以自由使用这笔交易中的比特币。

这个就是密码学中的非对称加密简单来说,就是由公钥加密,必须由私钥进行解密,反之,如果由私钥加密,那么就必须使用公钥才能解密。

刚才提到,数字秘钥是存储在钱包当中的,一个比特币钱包中包含一系列的密钥对,每个密钥对包括一个私钥和一个公钥。私钥(k)是一个数字,通常是随机选出的。有了私钥,我们就可以使用椭圆曲线乘法这个单向加密函数产生一个公钥(K)。有了公钥(K),我们就可以使用一个单向加密哈希函数生成比特币地址(A),如图:


注意,这里由私钥生成公钥,再由公钥生成比特币地址都是单向的,反之无法获取,这样就保证了比特币的安全性。

接下来我们简单了解一下私钥、公钥、地址的相关原理知识。

私钥

是一个随机选出的数字,以256位二进制数或者64位十六进制数显示,私钥用于生成支付比特币所必需的签名以证明资金的所有权,所以私钥必须妥善保管,一旦丢失就相当于丢失了该私钥保护下的比特币。

公钥:

通过椭圆曲线算法可以从私钥计算得到公钥,这是不可逆转的过程: K = k * G  。其中 k 是私钥, G 是被称为⽣成点的常数点,⽽ K 是所得公钥。其反向运算,被称为“寻找离散对数”——已知公钥 K 来求出私钥 k ——是⾮常困难的,就像去试验所有可能的 k 值,即暴⼒搜索。

地址:

比特币地址是一个由数字和字母组成的字符串,可以与任何想给你比特币的人分享。比特币地址与公钥不同。比特币地址是由公钥(一个同样由数字和字母组成的字符串)经过单向的哈希函数生成的,以数字“1”开头。

我们只需要知道:哈希算法是⼀种单向函数,接收任意⻓度的输⼊产⽣指纹摘要。

如果把比特币交易比作一张支票,比特币地址就是收款人,也就是我们要写入收款人一栏的内容。

OK,以上就是比特币所有权的确定问题,你懂了吗?

感谢您的阅读,欢迎你的关注,希望我们一起深耕,一起收获!

【一起入门区块链】是一个系列文章,立志于把区块链专业复杂的内容变得简单易于理解,从程序员的理性逻辑思考进行输入,用易于理解的感性直白语言进行输出,让刚入门毫无方向的小白直接起航。

-----------------------------------------------------------------------------------------------

我是(币圈娜姑娘)李拉拉(微信号:lina_lala),一个职业编程妹子、区块链研究者、跑步健身爱好者,期望与您一起学习,一起进步!

喜欢记得点赞关注哦!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容