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

作者:何岩,由 recreating.org发行。

0.前言: #

1-1.png

对于伟大的造物,重新创造就是一种膜拜

欢迎来到Bitcoin的世界!!!

1.缘起 #

1999年,中途镇,咖啡馆,上午10点,中本聪准时出现在靠窗子的位置。
中本聪喜欢这个位置,不是因为窗外的风景,而是因为窗边的电源插口。

中本聪是个程序员,最近休假,每天都来写代码,对于他来说,完美的日子不过如此。

o-CAFE-facebook.jpg

coding at cafe

世界新生伊始,许多事物还没有名字,提到的时候尚需用手指指点点。

中本聪端着咖啡在发呆,老板Bob问道:“Hi Satoshi!这几天咋不鼓捣你的代码啦?想啥呢?”。

中本聪答道:“最近想做一点新玩意,之前编的东西太normal了,正好最近休长假,有大把的时间,想搞点大东西,something big!”。

这时候老顾客Alice插嘴道:“Someting Big! 哼!要我说最大的问题就是我们的美联储乱发钱,这些自私的家伙,让我的财富每年都在被动损失,这些强盗、小偷。这就是Something Big!”

中本聪说:“你这样可不好,有点无政府主义倾向啊!不过给我的启发倒是,可以做一个全球电子现金系统,并且绝不增发!”

“货币源于价值:无论是贝壳,还是黄金,或者说所有在历史上担任过货币的事物,他们本身并不具备价值,他们只是一种符号。经过时间的磨砺,共识形成,符号变得可以代表价值。这时它们才具有了货币属性。所以电子现金同样要能代表价值。与其代表系统之外的价值,不如让这个系统自身产生价值,即,作为一个不可篡改的全球交易系统被人们使用。”当然这是在很久以后,中本聪才拥有的认知。

“你要是做出来,我们咖啡店先试用!”老板Bob叫到!

“加油吧小子!”Alice挥舞着拳头。

一股热流上了头,中本聪拿出笔记本开始写写画画起来,Bitcoin的设计工作开始啦!

2.先设计一个最简单的交易系统吧 #

中本聪开始了思考,先设计一个最简单的版本,先让Bob老板用起来,他一边用,我一边改进,这个思路不错!

既然是电子现金那么系统名字就叫Bitcoin吧。

第一个版本就做成最简单的单服务器的web系统,买一台普通台式机(服务器)放在咖啡馆,连上互联网,再买一个www.bitcoin.org的域名(备注:在故事的最后:重新创造比特币20:分叉之重组与分裂,我们将看到www.bitcoin.org被坏蛋偷走了,中本聪只好使用新域名www.bitcoinsv.com),咖啡店的顾客就可以通过浏览器方便的使用啦!(见下图)

图片 1.png

Bitcoin整体设计图

虽说我要创造一个电子现金系统,其本质上就是一个交易系统,交易才是市场的核心,现金只不过是一笔笔交易里的小数字。

如果按照传统的系统设计思路,系统可以分为程序部分和数据部分。

程序部分最核心的功能是处理交易。

数据部分最核心的功能是存储交易。

为了快速实现,存储的方案就采用普通文件(见下图)

图片 1.png

Bitcoin整体设计图

数据部分如何设计呢?

最起码需要两个文件:

1.用户文件(user.txt),字段包括:用户名,密码,余额。

2.账本文件(transaction.txt),字段包括:时间,付款者,收款者,金额。(见下图)

图片 1.png

这种需要独立存储账户信息的设计就是所谓的“账户模型”

程序部分需要具备哪些功能呢?

如果按照传统系统的思路,首先需要注册用户,不过如果用户都是咖啡店的老顾客,干脆就先暂时省去注册功能,谁想用Bitcoin,我就手工帮他创建账号,只要在user.txt文件里面加一条用户信息就可以了。

我真是想让咖啡店快点用起来,对,要赶在Bob反悔之前。

用户登陆验证功能必须要做,否则如果一个叫Carol家伙冒充Alice付款给自己就不好了。

关于处理交易,只要有交易写入和交易查询就ok啦。(见下图)
图片 1.png

程序部分的设计

这里有一点小麻烦,每次Alice付款给Bob的时候,程序都要先去user.txt找到Alice的余额,看看余额是否足够。如果余额足够,除了要将交易信息写入到transaction.txt之外,还要在user.txt中修改Alice和Bob的余额。嗯!余额很重要,余额就是一个人的财富积累,可得小心对待。

一个人在这个世界上的财富全部依赖于这个小数字,哦!可怜的小生物!
中本聪花了一个下午,设计完了Bitcoin的第一个版本,伸了一个长长的懒腰,扭头对着老板Bob说:“我设计完了,明天开始编码,争取这周就让咖啡店试用!”

“这么快,你真是个天才!来,尝尝我新研制的咖啡,这杯免费!”

“这只是一个最简单版本,离最后我想要的样子还差得远呢”,中本聪接过咖啡,喝了一口。

“这味道……嗯!……很感人!”

3.后记 #

写这个系列的一个套路是,让中本聪基于一个理由来创造出解决方案。

这个理由可能是遇到的问题(BUG),也可能是一个抽象理念。

反正不能平白无故的直接给出解决方案。

哪怕是我胡编的定位,也是定位。

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

相关链接 #

重新创造比特币:前言

Part One : 交易
重新创造比特币1:从一个简单的web交易系统开始
重新创造比特币2:第一个版本上线啦
重新创造比特币3:舍弃账户模型
重新创造比特币4:数字签名
重新创造比特币5:公钥和私钥
重新创造比特币6:第二个版本上线啦
重新创造比特币7:UTXO
重新创造比特币8:基于UTXO的系统重构
重新创造比特币9:万物皆交易
重新创造比特币10:交易脚本

Part Two : 群系统
重新创造比特币11:群系统(上)
重新创造比特币12:群系统(下)
重新创造比特币13:P2P网络
重新创造比特币14:交易的同步
重新创造比特币15:账本的同步
重新创造比特币16:Block Chain
重新创造比特币17:网络的弹性
重新创造比特币18:工作量证明(上)
重新创造比特币19:工作量证明(下)
重新创造比特币20:分叉之重组与分裂

书面设计矢量图_36.png

英文版Amazon.com在售 : Recreating Bitcoin

BSV打赏:
1Djc4TdVBi8urzmSXKHwg8cpEAYKcRQxgY

©2019 - Recreating.org all rights reserved

 
4
Kudos
 
4
Kudos

Now read this

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

作者:何岩,由 recreating.org发行。 0.前言 # 中本聪和Gilfoyle一起合作,完成了Bitcoin0.0.2版本的设计工作。 重要的改变包括: 1.加入数字签名。 2.公钥替代用户名。 3.将签名加入交易模型。 4.删除了账号模型。 新版本,让交易变得更自由! 1.创建私钥 # 中途镇,咖啡馆,经过一周的开发和测试,Bitcoin0.0.2版本上线了。 中本聪找到Bob:“Hi,老板,Bitcoin的新版本上线啦!再有新客户想加入,... Continue →