重新创造比特币6:第二个版本上线啦

0.前言

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

重要的改变包括:

1.加入数字签名。

2.公钥替代用户名。

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

4.删除了账号模型。

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

1.创建私钥

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

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

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

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

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

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


新版本的登陆页面

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

Alice问:“什么是私钥?“

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

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

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

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


生成的私钥和公钥

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

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

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

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

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


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

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

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

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

中本聪说:“人性是不可靠的,如果诱惑足够大,我也不能保证自己不作恶哦。”

中本聪说:“不过如果不嫌麻烦,你可以自己通过抛硬币生成私钥,然后将私钥导入”

2.交易

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

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

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

中本聪登陆到服务端将账本数据变更之后,Alice的余额恢复如初了。

Alice收到了Bob的短信,将公钥复制下来,粘贴到了转账界面,点击了转账。(见下图)


转账到Bob的公钥地址

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


Bob的余额界面

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

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

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

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

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

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

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

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

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


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

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

这个版本升级的很顺利,自从有了Gilfoyle的合作,中本聪心理越来越踏实。

可是只要是人写的程序,怎么可能没有BUG。

3.后记

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

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


BSV打赏地址

BSV打赏地址:1BudFu186jzdP9CBJTTPGsdbSJinbzzCyB

下一篇:重新创造比特币7:UTXO

相关文章:

重新创造比特币1:从一个简单的web交易系统开始

重新创造比特币2:第一个版本上线啦

重新创造比特币3:舍弃账户模型,让交易更自由

重新创造比特币4:数字签名

重新创造比特币5:公钥和私钥

重新创造比特币6:第二个版本上线啦

重新创造比特币7:UTXO

重新创造比特币8:基于UTXO的系统重构

重新创造比特币9:万物皆交易

重新创造比特币10:交易脚本

重新创造比特币11:群系统(上)

重新创造比特币12:群系统(下)

重新创造比特币13:P2P网络

重新创造比特币14:交易的同步

重新创造比特币15:账本的同步

重新创造比特币16:Block Chain

重新创造比特币17:网络的弹性

重新创造比特币18:工作量证明(上)

重新创造比特币19:工作量证明(下)

重新创造比特币20:分叉之重组与分裂


比特币SV(Bitcoin satoshi vision,BSV)是目前唯一一个遵循中本聪原始白皮书,遵循中本聪原始协议和设计的比特币。BSV是唯一的公共区块链,维持比特币的原始愿景,并将大规模扩容成为企业级区块链和世界新货币。

推荐阅读更多精彩内容