首页 > 世链号 > 第 6 章 第二个版本上线啦
3点钟资讯  

第 6 章 第二个版本上线啦

摘要:中本聪和 Gilfoyle 一起合作,完成了 Bitcoin0.0.2 版本的设计工作。

本系列连载自《重新创造比特币》,它是一本比特币入门书籍,通过一个虚拟故事,让读者体验从零开始创造比特币的过程,从而理解比特币为什么如此设计。

重新创造比特币 | 第 6 章 第二个版本上线啦 (连载)

0. 前言

中本聪和 Gilfoyle 一起合作,完成了 Bitcoin0.0.2 版本的设计工作。

重要的改变包括:

  1. 加入数字签名。

  2. 公钥替代用户名。

  3. 将签名加入交易模型。

  4. 删除了账号模型。

新版本,让交易变得更自由!

1. 创建私钥

中途镇,咖啡馆,经过一周的开发和测试,Bitcoin0.0.2 版本上线了。

中本聪找到 Bob:“Hi,老板,Bitcoin 的新版本上线啦!再有新客户想加入,
不用再来找我注册啦,他们自己就可以创建账号(其实是地址,Bitcoin 已经没有账户模型了)啦”。

Bob 朝着大厅喊道:“太好了!有人要来杯咖啡吗?顺便试试新系统!”

Alice 走过来:“我来吧,正好想再喝一杯卡布奇诺。”

Alice 拿出手机,打开浏览器,输入 bitcoin.org。出现了这样的界面。

Alice 叫到:“怎么和以前不一样了!”(见下图)

重新创造比特币 | 第 6 章 第二个版本上线啦 (连载)

新版本的登陆页面

中本聪说:“你需要先创建私钥”

Alice 问:“什么是私钥?“

中本聪:“你可以把私钥当成是你的账号密码,这个密码很长,可以代替之前的用户名+密码”。

Alice:“这么说我就理解了”

中本聪:“你先创建私钥吧”

Alice 选择创建私钥,点击了确定按钮,进入了下一个界面(见下图)

重新创造比特币 | 第 6 章 第二个版本上线啦 (连载)

生成的私钥和公钥

Alice 按照提示,拿出笔抄写着自己的私钥:“这个公钥又是什么?”

中本聪:“你可以理解成你的收款地址,你也可以用他来查询余额,公钥是公开的,只有私钥需要保密”

Bob 在一旁看着,问到:“这个私钥看起来很重要,它是在哪里生成的?在服务端还是客户端(浏览器就是客户端),安全吗?可以和我说说你是如何做的吗?我以前学过点编程,应该能听懂。”

中本聪说:“原来老板也懂编程啊,私钥是在客户端生成的,私钥永远不会在网络中传输,因为一旦被截获,别人将你的私钥导入,你的余额会被分分钟转走。”

中本聪继续解释:“但是生成私钥的算法代码是在服务端存储的,当浏览器第一次访问 bitcoin.org 的时候,服务端会将算法代码返回给浏览器,这时浏览器就拥有了生成私钥的计算能力,接下来用户点击创建私钥按钮的时候,浏览器运行自身的算法代码,并不会于服务端交互,所以私钥不会在网络中传输。”(见下图)

重新创造比特币 | 第 6 章 第二个版本上线啦 (连载)

生成私钥时,浏览器和服务端的交互

Bob:“听起来不错,这样我就放心了”。

中本聪:“其实,这样的设计还是不够安全,因为控制算法代码的是服务端,如果我想作恶,只要偷偷的在服务端更改算法代码,这样生成私钥的规则就由我说了算了。”

Bob 说:“可是我们相信你不会作恶的”。

中本聪:“人性是不可靠的,如果诱惑足够大,我也不能保证自己不作恶哦。不过如果不嫌麻烦,你可以自己通过抛硬币生成私钥,然后将私钥导入”

2. 交易

Alice 说:“我相信你,我要操作转账啦,Bob 你的收款地址是什么?”

Bob 说:“我用短信发给你,这样你就不用手工抄写啦。”

中本聪说:“等一下 Alice,你新创建的地址余额现在是 0 个 Bitcoin,我得手工改下账本数据,将你之前账号里的余额割接过来。”

中本聪登陆到服务端将账本数据变更之后,Alice 的余额恢复如初了。
Alice 收到了 Bob 的短信,将公钥复制下来,粘贴到了转账界面,点击了转账。(见下图)

重新创造比特币 | 第 6 章 第二个版本上线啦 (连载)

转账到 Bob 的公钥地址

Bob 打开手机查看自己的余额,已经收到了这笔转账。(见下图)

重新创造比特币 | 第 6 章 第二个版本上线啦 (连载)

Bob 的余额界面

Bob 说:“真神奇!去掉了用户注册,还用公钥地址保护了用户的隐私,可以
再说说整个交易是如何处理的吗?”

中本聪说:“好,我们从 Alice 点击转账按钮开始“

“首先浏览器生成交易数据,交易数据由两个部分组成,分别是:业务数据和签名。业务数据是‘公钥 A to 公钥 B 30’, 公钥 A 代表 Alice 的公钥,公钥 B 代表 Bob 的公钥。签名是用 Alice 的私钥通过加密 Alice 的公钥生成的密文。”

“然后,浏览器将生成的交易数据放入消息中,向服务端发起网络请求”

“服务端接收到此消息,解析后得到交易数据“

“服务端首先要验证余额是否足够:遍历账本(transaction.txt)找出属于公钥 A 的交易记录,合计得出余额”

”服务端接下来验证签名是否合法:使用公钥 A 来解密签名,判断解密后的签名是否等于公钥 A,如果相等则验证成功。”

“服务端最后将交易数据写入到账本,并将结果通过消息反馈回浏览器”

“浏览器接收到消息反馈,在界面显示交易结果。”(见下图)

重新创造比特币 | 第 6 章 第二个版本上线啦 (连载)

交易发生时,浏览器和服务端的交互

Alice 接过了 Bob 的咖啡,新版本的第一笔交易宣告成功!

这个版本升级的很顺利,自从有了 Gilfoyle 的合作,中本聪心理越来越踏实。
可是只要是人写的程序,怎么可能没有 BUG。

3. 后记

本篇的目的让读者看到一个系统运行起来的全景图。

但是现在的设计中存在 bug,在下一篇会看到这个 bug 究竟是怎么回事。

来源:比特币协会 BA

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。