重新创造比特币3:舍弃账户模型

作者:何岩,禁止转载。

0.前言

Bitcoin的第一个版本已经上线,它的意义在于,展现了系统的使用场景。

1.舍弃账户模型

自从Bitcoin第一个版本(v0.0.1)上线,咖啡店的生意越来越好,老板Bob显然做了一个明智的决策。

中本聪却越来越烦恼:“这么多人来找我注册账号和兑换Bitcoin,都没时间编程了,我得想想办法。把兑换工作交给老板Bob吧。”

中本聪说:“我说,老板,现在越来越多的人来找我兑换Bitcoin,我都成了人肉交易所啦,没时间升级系统了,要不兑换的工作你来做吧。”

Bob说:“好啊,正合我意,不过我可以调整汇率吗?”

中本聪说:“当然可以,这符合自由市场经济学理论。”

Bob高兴的答应了,中本聪将自己的账号密码告诉了Bob,咖啡馆就正式成为了Bitcoin的线下交易所。

中本聪感到轻松了很多:“那么,就还剩下用户注册的功能。”

中本聪一边思考着,一遍拿出笔记本准备开始编码。

忽然,有个大胆的想法在中本聪的脑子里闪过:“能不能彻底的去掉用户注册呢?”

之所以要有用户注册功能,是因为每个用户都要在user.txt中创建一条账号记录。

每个用户的账号信息只包括三个字段:用户名、密码、余额。

如果能用其他的方式来替代这三个字段,那么就可以舍弃“账户模型”了。

首先是用户名,可以用账本替代。因为每笔交易记录都包含着付款方和收款方的用户名,所以账本(transaction.txt)可以代替账户(user.txt)定位出用户名。

其次是余额,账本也可以替代。因为账本就是交易流水,累计交易流水可以得出用户的余额。所以账本(transaction.txt)可以替代账户(user.txt)实现余额。(具体获取余额的逻辑见下图)


获取余额的两种方式对比

解决了用户名和余额之后,最难的部分是如何去掉密码。

密码的作用是向服务端证明Alice是真正的Alice,而不是一个叫Calor的家伙的冒充,除非Calor知道了Alice的账号密码。

所以密码的本质是一把钥匙。

那么除了密码,有没有其他方式呢?

“用对称加密的方式可以吗?”中本聪思考着。


2.对称加密

对称加密是一种很常见的加密方式。

举个例子:赵四在网上发送了一段消息给谢大脚:“今天晚上11点小河边见”。但是这个消息在网上是明文,一旦被别人截获,他俩不可告人的秘密就暴露了。

对称加密就可以解决他们的担忧:赵四将消息用一种通用的加密算法加密后,明文会变成密文,密文长成这个样子:“U2FsdGVkX18tGXt20Jb/muCW7ipyKF5fTbNV9gUkJZxRIVNGk6ziokkrOXyZ8qkh”。即便被人截获,也看不懂是啥意思。

将明文和密钥作为参数,传入加密算法,计算后得到密文。

用伪公式表达为:Function加密算法(明文,密钥) = 密文

加密算法是公开的,但是密钥是保密的。赵四和谢大脚拥有内容相同的密钥,别人由于不知道密钥,就无法解密。(见下图)

加密的悄悄话


如果将赵四换成Alice,将谢大脚换成Bitcoin的服务端,Bitcoin的就拥有了通信加密的能力。

密钥最初在服务端生成,在Alice第一次登陆时,将其分配给Alice,Alice收到密钥后将其存储在浏览器里。

服务端还需要存储Alice和此密钥的对映关系。

之后,Alice每次发送的消息,都是经过加密后的密文。

服务端接受到Alice发送的密文消息,就可以用相同的密钥进行解密。(见下图)


对称加密


但是选择加密来替代密码,能解决我们的根本问题吗?

我们的最初的目的还记得是什么吗?

我们的根本目的不是舍弃密码字段,而是要舍弃账户模型,如果舍弃了密码,确引入了密钥,等于换汤不换药,账户模型还是必须存在,没有本质变化。只不过用户的“钥匙”由密码换成了密钥。

用户注册则可以看作是服务端预先给用户分配“钥匙”。(见下图)

用密钥替代密码


“可不可以让用户独立创建出‘钥匙’呢?”

中本聪再次陷入了思考之中......

“可以用非对称加密。”对面座位的‘大胡子’一字一顿的说道。

中本聪看着大胡子,他面前也放着一台笔记本:“你也是程序员吗?”

“是的”那人依旧面无表情。

中本聪热情的伸手过去:“哈,能在中途镇遇到开发者太不容易啦,你好,我叫Satoshi,你叫?"。

“Gilfoyle",这次他眨了一下眼睛,还微微的点了一下头,估计那就是在示好吧。(见下图)

Gilfoyle

这一历史性的时刻真应该被拍成照片,中途镇的两位天才程序员终于相遇了,Bitcoin在他俩的长期合作中,远远超出了同时代程序员的认知水平,最终达到了无法想象的完美高度。

3.非对称加密

中本聪:“你刚才说非对称加密可以解决我的问题?”

“是的”,Gifoyle微微点头,然后向中本聪解释起来:“你需要的并不是明文的加密,明文不怕见光,你需要的只是创建一个独特的标识来证明‘我是我’,非对称加密可以搞定。”

Gifoyle继续解释细节,中本聪听完兴奋的叫到:“就是它!”

非对称加密很神奇,它源自一个神奇的数学原理(椭圆曲线加密算法),它不像之前的对称加密,Alice和服务端需要使用同一把密钥。

这次,Alice可以靠自己,独自生成一对钥匙,一把是公开的,称为公钥(谁都可以知道)。另一把是私密的,称为私钥(只有自己知道,不能告诉别人)。(见下图)

公钥和私钥


非对称加密就好比一个神奇的箱子,手里拿着一把钥匙(私钥),可以上锁,但是却无法解锁。如果想要解锁,只能用另一把钥匙(公钥)。很反直觉吧,所以才叫“非对称”。(见下图)

对称加密VS非对称加密

正是由于这种“非对称”的特性,Alice可以用私钥将交易数据(“Alice to Bob 30")加密,得到密文("e2edeae7a01d226367ccb0220447d8f1dfcf14f6defb9bf"),然后将密文和公钥(明文)作为参数放入消息中,通过网络,发送给Bitcoin服务端。(消息=密文+公钥)

Bitcoin服务端收到消息,解析后得到两个部分数据:一部分为密文,另一部分为公钥(明文)。用公钥解密密文,得到明文“Alice to Bob 30”。

根据非对称加密的特性,公钥如果可以解开的密文,此密文一定是用对应的私钥加密,所以可以确定这段密文的生成者,一定就是拥有唯一私钥的Alice。

服务端将交易数据的明文写入到交易账本中,交易即刻生效!

另外,不只是Bitcoin服务端,任何人都可以用Alice发出的公钥来进行密文的解密,都可以得到相同的明文。

所以说,在Bitcoin的使用场景中,选择使用非对称加密技术,并不是为了保护明文不见光,而是为了证明“只有我可以生成这样的密文”,即,“证明我是我”。(见下图)

非对称加密在Bitcoin交易中的使用

参考:

码农翻身

BSV打赏地址:1BudFu186jzdP9CBJTTPGsdbSJinbzzCyB

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

相关文章:

重新创造比特币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是唯一的公共区块链,维持比特币的原始愿景,并将大规模扩容成为企业级区块链和世界新货币。


对称加密

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