认知的围栏

在商店里面买单,旁边的一位50岁左右的顾客问有没有折扣。店员说加入会员就有,只需微信扫码,点关注就算加入会员了。这位年纪不算太大但也不年轻的顾客坚持说,手机这东西我搞不来的,你来帮我操作。店员说我教你。顾客说我学不会的,你帮我干了就行了。如是纠缠了半天。

要说微信他是装了的,应该会最基本的操作。微信扫码这事情还真不是什么高深的学问,看一遍应该谁都学得会。学会了呢,肯定比每次求人来操作省时省力一点。那他为什么就不学呢?一定是什么阻止了他去学习。

其实阻止他的,也在阻止我们每一个人。我把它称作认知的围栏。它是一种对自己是谁的认知,觉得自己是什么,不是什么。在自己认知领域的事情,就会花精力去学习;而觉得自己认知以外的领域,就自动的关闭了学习的能力。这个无形的围栏把自己框得死死的,让自己不越雷池半步。

举几个自己的例子。

做菜这事,就在我的围栏之外。我从小就觉得自己不会做菜。我宁可自告奋勇的洗碗也没有尝试过做菜。越到后来自己做菜的必要性越小,直到退化到会烧开水却不太会煮米饭的地步。和我相反,太太基本上对于带电的插座呀,网线呀也是放在自己的围栏之外的。要说换灯泡这事也不比微信扫码难太多,却难倒无数女人。原因就是潜意识里面男人觉得做饭让自己更像女人而女人觉得自己搞电的东西让自己好像男人,这和自我认知不符。

认路是另一个男女都有认知围栏的领域。很多男人是不理解女人为什么看不懂地图的,我也是不很理解。但反过来,我发现在商场里面迷路这件事情也是女人可以笑话男人的。我去了静安嘉里中心无数次,找一个店还是跟第一次去一样,几乎需要动用“广度优先遍历”算法。

今天因为思考了围栏的事情,稍微花了一点点注意力,放弃了我依赖的男人思维方式(在脑子里面画地图),而是用女人擅长的哪个楼梯下去的哪个店隔壁就是这样的方式去思考一下,总算是永久的记住了店的位置。要说,跨出这一步也是简单得不得了的事情。

我们每个人都有各种各样的围栏,把自己拦住,我不会画画,我不会跳舞,我不会编程,我不会管理,我不会。。。。围栏越多,学习的机会越小。

不是每个人都需要在所有的领域都成为专家,有限的精力不能分散到方方面面,但有的时候,用小得忽略不计的努力就可以进入一个新的世界,我们就应该跨出自己认知的围栏。

至少,跨出一小步。

上篇:学习不能停

如何创造环境让孩子学习编程

先说我的经历。

我学习编程比较早,是在五年级结束的那个暑假,也就是1988年六月份。

我学编程有这么几个机缘巧合。

环境

第一个机缘,是我出生在一个工程师家庭。爸爸是交大电机系毕业的,家里面各种电子相关的书比较多。我最早接触的是二极管三极管这样的电路,三、四年级的时候迷着做收音机,音乐门铃什么的,看的书也是《电子报》一类制作各种电器的。而电脑是因为其中有一本叫做《计算机台历》的,里面关于计算机的基础知识让我似懂非懂的看了两年。

启发:我觉得家里的书籍反映了父母的职业和爱好。我们很少会意识到这是也是孩子寻求知识的最容易获得的来源。家里面放什么书,孩子若是有哪方面的天赋,就更加有机会顺着这个阶梯入门。一切发生的自然而然,父母可能全然不知。我怀疑我的父母到今天,或许还没有意识到那个时候书架上从来没准备让我看的书,对我的影响。

老师

第二个机缘,是出现了一位老师,我的大哥。我哥哥和我年纪相差比较大,那年暑假他正好大三,再回家的时候随口问了一句我要不要学编程。我当然随口说了句“想”。于是拿出谭浩强老师的《Basic语言》,花了半个小时开了个头。从此,我一发不可收,把所有的暑假时间都花在了研究那本书上面。

启发:老师不见的是需要报什么班,也不见得需要很长时间。小孩子的学习欲(尤其是对自己小时候就感兴趣的东西)就像干柴一样,一个火星就足以点燃。但问题是,世界上的东西太多,我们很多时候不知道应该扔出哪一个火星。比如对于那个时候的我,遇到声乐老师也不太会像学习电脑那样着迷。我现在家里面放着钢琴,儿子也没有花什么时间在那上面。所以要多扔几个火星试试看那个能点着。

机会

我的计算机学习还有一个很重要的机缘,就是我当有使用电脑的机会。这也是相当难得的。1988年电脑还叫计算机,都是在空调房间里面,进门要换白大褂换拖鞋仔细的除静电的,里面一排排几个冰箱那么大的主机,还有磁带机里面转动着脸盆大小的磁带,以及打孔的纸带机。因为父母的单位里面有这样的计算中心,所以我有机会溜进去了几次,可以把自己在纸上准备好的程序输进去,看了一下黑底绿字的现实结果。刚开始,无非是一个两三个嵌套的FOR循环打印星号组成的圣诞树什么的,但那神奇的感觉让我兴奋的几天都睡不着觉。

启发:如果有可能,还是应该带孩子去看一看这个时代最先进的东西,孩子对于先进的和现状的科技其实是没有什么分别心的,学习起来几乎成本一样,所以创造些机会让孩子接触些成人自己都搞不懂的领域,不是件坏事。

若有更多的机会

当年毕竟条件有限,上机的机会几乎是半年才有一两次,更多的时间,只好在纸上编程。写好了,一遍一遍的读,在脑子里面运行。居然自己在没有电脑的情况下开始写了个贪吃蛇一样的程序,还可以翻屏的。这几十页的BASIC程序现在还在家里的档案里面装着,从来都没有机会在一台真的电脑上跑起来过,我很怀疑写的是不是真的能够跑起来。还有一个有趣的事情,我的QWERT键盘的指法,是我二哥在一个硬纸板上画好了键盘的位置我画一个暑假练出来的。因为没有电脑用,我之后的几年经常跑到附近的商场里面在那台陈列的Apple II的橱窗前徘徊,解解馋。

启发:我有时候在想,虽然我已经非常幸运,但那个时候有稍微更多资源的话或许我可以学习的更深入一些。家长对于今天的孩子,分辨哪些是过度的宠爱哪些是合理的投入很难,但如果有机会,孩子的真正的兴趣和激情的方面的投入还是值得的。虽然孩子会“沉迷”在一些事情上,但这也是孩子最宝贵的一种学习和探索的原生动力,长大了就那样没有了

行动

一转眼自己的儿子快要到我接触电脑的那个年纪了。这一代人幸运得多,技术也早已经编程普及了。他有机会比我们当年快得多,广得多的学习。

这是他的整个学习过程供大家参考(大多数并非我安排的顺序):幼儿园的时候开始学习Scratch语言,搭乐高的Mindstorm,用LabView图形化界面编程。之后接触Minecraft的搭建以及编程,6岁的时候开始学习C语言,我帮他找了交大的老师每周两次跟着学习,之后系统的学C++。跟着老师学各种算法,得信息奥赛上海市第六名。最近开始对Java,iOS编程感兴趣,(还趁我不注意学了一小段Visual #F – 让我直摇头),这两天用智能家居设备在家里各种违章搭建(因为我自己的经历,我们决定家庭财政对于他经过批准购买的智能家居设备赞助一半的资金)。

这些学习会将他带向何方,我完全不知道,谁又会知道呢?但无论最终这条路指向哪里,我都愿意和他一起跟着自己的兴趣去探索。

10分钟俄语教程

俄语是另外一个长得稀奇古怪的语言。字母念都念不出来。我在莫斯科呆了一两天以后忽然灵光乍现,发现俄罗斯人是研究密码学的英国人,俄语其实就是加密的英语!元音不变,把辅音做一个变换,就基本上是英文了。

Россий 

这是啥东东?

先给你一张密码表:

П -> P

P -> R

Я -> i

Х -> H

H -> N

И -> i

Ж -> zh

Ф -> F

Э -> E

Б -> B

B -> V

С -> S

Д -> D

Ц -> Ts

Л -> L

У -> u

Ч -> ch

这个密码表的意思是,把你见到的俄文里面所有的П变P,P变成R,Я变ia,

Х变成H,H变成N,И变成i,Й变成ia,如此乾坤大挪移一番以后,再看一下这个单词,八成你就认识了。

Россий 经过变化以后就是:Rossiia (Russia)

再看这个:

Федерация

这张牙舞爪的螃蟹文其实写的是 Federatsiia (Federation) 联邦的意思。(请自行替换)

Банк 啥意思?(Bank)

如下的各种咖啡是啥?

Эспрессо,(Espresso)

Американо,(Americano)

Капучино,(Capuchino)

Латте (Latte)

就根据这个小对应表,虽然依然不懂俄语,在俄罗斯看得懂地铁,知道哪里是餐馆,银行,还是够的。省去了很多问路的时间。

天哪,要是谁早点告诉我这个转化公式,我就不至于看到了张牙舞爪的战斗民族的字连查字典都没法查了。估计可以转给要去俄国的人瞅瞅。

注:这是很久以前和《10分钟韩语教程》一起写的一个系列,忘记发出来了。

上篇:如何创造环境让孩子学习编程

10分钟日语教程

我一直对于学习语言很感兴趣,加上经常旅行,总想学习尽量多的语言。在过去的几年里面,每到一个地方就开始琢磨那里的语言。结果发现了一些小秘密。简单的说,就是:

  • 韩语是换一种写法的汉语拼音

  • 俄语是替换过字母的英语

  • 日语的1/3是英语

有了这些认知,有点英文基础的中国人其实学习这三种语言一下容易很多。

以前我只知道日文中间1/3都是汉字,所以将就着能看懂一些书面日文。但是学习了片假名以后,发现另外的1/3是英文。花些时间把50个有棱角的片假名的发音记住了,基本上在日本的公共场所的招牌就看全了。至于剩下的1/3的圆鼓鼓的平假名,先放弃,读的时候把所有平假名统统读作汉语的“的”,常常不影响理解。

日语的发音其实比韩语还简单,就5个韵母,10个声母排列组合。要是日本人也像追求统一和简洁的韩国语言学家一样的话,日语只用学最多15个字符就可以了。结果他们做出了10 x 5 的50个音。这相对容易。随便找一个片假名的五十音图,拿着就可以上街了。

a i u   e  o

ア イ ウ エ オ 

カ キ ク ケ コ k

サ シ ス セ ソ s

タ チ ツ テ ト t

ナ ニ ヌ ネ ノ n

ハ ニ フ ヘ ホ h

マ ミ ム メ モ m

ヤ   ユ   ヨ y

ラ リ ル レ ロ r

ワ       ヲ w

ン         n

加一个圆圈就是清音(パ)pa,

加两个点就是浊音(バ)ba,

ー 表示长音

还有r发音更像 l

比如一出火车站就大大的写着的:

バスターミナル

按照五十音图一拼,发音就是 Ba s Taa mi na ru,或者称为 Bus Terminal。

再比如各种各样的酒店,都是 ホテル (Hoteru)

最有趣的是有些片假名和中文还比较相近,更进一步降低了记忆难度。比如バ日文里面就念做“八”。ス发作s,所以看到满街的近鉄バス、高速バス、空港バス、貸切バス,对于以前只能看懂前一半的,至少可以念完整了

Home ホーム

Login ログイン

Sitemap  サイトマップ

总结

这些对于我是小秘密的东西,对于会说这些语言的人来说,或许谬误百出不值一提;同时不甚准确,就像用“古德猫宁”来标注英文一样;也不通用,就好像知道了一,二,三,遇到四就抓瞎了一下。

但能横向的把汉语,英语,韩语,俄语,日语放在一起用30分钟学个大概,在旅行的时候不当两眼一抹黑的文盲,这投资回报率还是相当高的。我很纳闷儿,怎么早一点没人告诉我这些秘密呢?欢迎把这篇10分钟三国语言教程转给要去韩国,日本,俄国旅行的朋友。

P.S. 上个月去法国,第一次发现了一个法语的小秘密:法语中到处都出现的de,发音就是中文的“的”,意思也是中文的“的”。比如国际足联:

Fédération Internationale de Football Association :足球联合会 的 国际联合。的确法语比较严谨,比国际足联更好的体现了是各国足联的联合会的意思。

相关:10分钟韩语教程

上篇:10分钟俄语教程

链表,哈希,挖矿等 - 区块链技术学习笔记

开篇

很多年没有看到像区块链这样有生命力的事物了。它像一个欣欣向荣的新大陆一样,把技术理想主义者,围观者,投资者,投机者,甚至流氓骗子各色人等聚集在一起。

在此乱象中,我深感于现在区块链,观点太多,事实太少。我作为一个个体去摸这头大象的时候,比较擅长的是以技术的角度切入,看它到底是如何工作,如何发展的,从而把这一只象腿摸清楚。我把自己的学习记录下来。这些记录可能很入门,甚至有错误,但是或许对于同样感兴趣的人有所帮助。

链表

从技术角度看,区块链的底层是精妙设计的链表数据结构①。

什么是链表呢?就是有顺序的一串数据块,一个跟在另一个后面,这个顺序是严格规定的,不能乱。区块链,食物链,供应链,资金链,甚至鄙视链,描述的就是这样有顺序的一串物品②。 

我们以比特币为例,来剖析这个链表。

为了构成链表,链表的数据块里面有两个基本的部分:区块头,和数据本身。区块头里面有一个字段指明了上一个区块的id,而所有区块的id既不是顺序的,也不是随机的,而是区块头这80个字节的两次哈希值。

哈希 Hash

这可能是区块链里面最让非理工科出身的学习者费解的概念了。听起来很吓人,实际很简单。哈希就是一个算法,能把任意长度的内容(无论是一个数,还是文章,图像,视频,总之就是任何数字化的信息)转换成一串看似没有规律的固定长度的数字(哈希值),并保证结果唯一,而从这个结果几乎没有办法推算出原始数据。比特币用的是叫做SHA256的哈希算法。

比如:的SHA256哈希结果是: 0x6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

的SHA256哈希结果是:

0xd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35

我们把这个哈希值看成乱码好了,因为唯一的规律就是没有规律。同时,在原始数据中哪怕有一点点改动,产生的哈希就会产生巨大的变化。这个特性常常用来做“数字指纹”。

用日常例子来打个比方。比如按照配方做菜就是个哈希过程:有了配方精确的做菜容易,而从菜品推测出配方难得多。给出两个数算出他们的平方和比较容易,给出一个数求是哪两个数的平方和就难很多。哈希算法就大概这么个意思。

区块头和id

刚才讲到,每个区块的id从它的区块头的80个字节数据两次SHA256哈希得到。区块链的一个精妙的设计就是,它对于的id是有要求的。只有满足特定的规则的id才是合法的。这个规则就是:区块头的哈希值必须小于一个数,直观看到的就是,每个新的区块的长达64个字符的id必须以比如18个零开头④,一个合法的区块id是长成这个样子的:0000000000000000003c19cdbebe2df5c7f82558e2c80a0c7341e25072b732a2

区块头这80个字节里面的6个字段,5个是不能改的,它们是:

1. 版本号         最近一直是0x20000000 ⑥

2. 上一个块的哈希值    这个是排队时候的队尾,改了就排不到队里了

3. 数据的哈希       这个是区块里的交易数据,也不能改③

4. 时间          不能改,就是现在的时间。

5. 难度          每个给定的时间全网的难度是一样的④

只有第六个字段是随便写的,这个数字叫做No nce

6. No nce

网络上任何一台机器只要找到一个合适的数字填到自己的这个区块的No nce位置,使得区块头这6个字段(80个字节)的数据的哈希值的哈希值以18个以上的0开头,谁就找到了那个金子⑦!既然我们无法事先写好一个满足18个0的数字然后反推Nounce,唯一的做法就是从0开始一个一个的尝试,看结果是不是满足要求,不满足就再试下一个,直到找到。

这个过程被戏称为挖矿。其实我觉得这个过程和淘金更像。淘金者做的事情很简单,却很重复,就是对于河里所有沙子,拿起来一个,判断是不是金子。如果不是,扔掉再拿一个。如此重复几百万次,总有一个是金子。而在区块链世界,那64个十六进制的字符串,第一个是0的概率是1/16,第二个也是0的概率再乘以1/16,第18个还是零的概率可想而知。所以大家为了找到这个金子一般的No nce一般要花费十几亿次尝试,虽然每次算哈希的工作并不那么费时间,重复十几亿次还是要耗费巨大的计算机资源和电力资源。

比特币体系的另外一个精妙设计就是它动态的调整难度,以无论有多少台矿机在寻找那个珍贵的正确的No nce,都保证大约每10分钟产生一个块。这也是一个类似经济学的算法。它每2016的块(也就是2周)就计算一下前面2016个块平均每个块花了多少时间,如果低于10分钟就按照低的比例调高难度,如果高于10分钟调低难度。这样矿机无论增减,比特币都可以按照每10分钟找到一个块的金数字并且生成一个合法的块。

找到了那个金子一样的数字以后呢?

谁找到了那个数字,谁都可以向全网广播这个新块了。而真正的财富秘密在于在这个新块的数据区的交易数据里面,第一条交易中,挖矿的人可以凭空的给一个地址(通常是自己的)发放12.5个比特币。这是规则认可的,就好像赌场里荷官可以合法的从桌上拿一部分钱进自己的口袋一样。这12.5个比特币是比特币网络上唯一没有发款人,只有收款人的交易,新的比特币就这样凭空诞生了。这个激励每4年减半,再过两年就只有6.25个了,这样2140年左右两千一百万个比特币就基本上全产生了并且不会增加了。

区块链的网络

刚才描述的是在一台电脑上的样子。实际上,这一串数据是通过P2P网络分布在无数的电脑(节点)上的。任何矿工找到了那个金子数字后就立刻全网络刚播新找到的块。如果所有节点在一个大的聊天室里面倒也简单,但实际上这个广播是跟烽火台一样接力的传递的。每个节点告诉周围的,然后它再告诉周围的。有意或无意的,就会有两个或多个矿工近似同时对于网络的一部分分别宣布发现了新块。这个时候的规则就是,每个节点只会接受最长的链并且丢弃较短的链⑤。经过几个节点后一定有一个胜出,另外一个被抛弃,而添加新块是需要算力的,最终一定是拥有最大算力的一方获胜。这也就是如果没有人掌超过50%的算力就无法控制区块链。

小结

以比特币体系为例,最底层就是一串这样以80个字节的区块头开始,约1M的数据跟着的数据。用哈希这样的算法,一层一层的锁定,形成了固若金汤的链条。再把它分布在成千上万的节点上,再又成千上万的矿机通过挖矿来保持算力高压,让篡改数据需要算力门槛。同时,任何人对于历史数据,哪怕就改了很小的一部分,数据的哈希就变了,区块头就变了,它的两次哈希结果就变了,它后面的块就连不上来了,就会被立刻发现。如此几层嵌套,一个人类到现在为止最为安全和防篡改的公共信息系统诞生了。

下面几篇会记录一下钱包,公钥密钥,智能合约,发放通证(Token),区块链应用,区块链对于组织的影响等等方面继续记录学习过程。感谢阮一峰,华宏伟,王哲,赵君,Tim Chen的指正和帮助。

后注

注①:这个跟其他的各种“本质是”并不矛盾,比如区块链本质是分布式账本也对,这个是在链表结构上面构建的,也有人说本质是加密货币,这也对,因为货币是在分布式账本之上构建的。这些说法之间不是非此即彼的矛盾关系,而是不同层次的应用的问题。

注②:自然界谁吃谁的顺序,生产中的谁供货给谁,再组装后工会给谁的顺序,资金从哪里流到哪里,再流到哪里等等,都是这样的数据结构。

注③: 区块头的第三个字段其实不是数据的直接哈希,而是一个树状结构Merkle根。

注④:刚才所说的18个零是一种近似的说法。严格地说,是算出来的本块的ID必须小于一个叫做叫做目标数的数。这个数越小(就是开始的0越多),就越难。

注⑤:严格的意义说最长的链不是最多区块的链,而是链上的所有块的难度总量最大的链。

注⑥:只给感兴趣的人看:0x20000000 (十进制536870912)是从BIP9开始规定的新的版本号规则,开始用一个位数表示一个独立的功能,以区分未来的软分叉。0x20000000 相当于block的第五个版本。

注⑦:以我写文章的时候最新的一个块为例,它的80位区块头是这样的:

000000205d9a3e3dec3e207c3afa9c0be901eaece34b99973a50330000000000000000008565d5bf3819014d521429f02b8cf9d27e226b80998f61d87cd51846c9ab6f9551eb9c5aa3895517ed52e1d4

非常不方便的地方在于比特币选择了小端存储,就是习惯意义的倒着写数字的方式。按照颜色,如上就是:版本号上一个块的哈希数据哈希时间难度Nounce  。这个80位数字的两次SHA256哈希就是这一个块的id,18个零开头,满足要求:00000000000000000043752089261f2b6699cd988d9f5b1732a5a259b50984cf

智能合约,代币(Token)等 – 区块链技术学习笔记

智能合约(Smart  Contract)是区块链一个重要的功能。说到智能合约,我们得把视野从比特币转到以太坊,因为完整的支持智能合约是以太坊和比特币的重大差别。

让我们发个币吧

听说区块链上可以发币,想发行一个自己的币 ①?来,直接上代码!

我希望你即使不懂代码,也要放下对未知的恐惧,静下心来一行一行读。毕竟这代码简单到大多数人都能看懂。

contract XMT {

    mapping (address => uint) public balanceOf;

    function XMT() public {

        balanceOf[msg.sender] = 1000;

    }

    function transfer(address to, uint value) public {

        require(balanceOf[msg.sender] >= value);

        require(balanceOf[to] + value >= balanceOf[to]);

        balanceOf[msg.sender] -= value;

        balanceOf[to] += value;

    }

}

惊人之处来了。如上代码不是概念性的伪代码,而是可以运行的真实代码。

首先它定义了一个记录每个账户有多少余额的数组: balanceOf

    mapping (address => uint) public balanceOf;

看不懂的同学就把它当作有两列的表格,第一列是账号,第二列是余额。用 balanceOf [ 账号 ] 就可以查到这个账号的余额,也可以更改余额。

接下来是两个功能:初始化和转账。

初始化函数XMT( )很简单,就是合约建立的时候,任性的把1000个币全都给创建者。

        balanceOf[msg.sender] = 1000;

大家要问,币是怎么产生的?没什么产生过程,想给谁多少就是多少。初始的时候写一个亿也就有了一个亿的币。如此随意的就能产生币,希望会引发大家在夜深人静的时候,对于货币到底是什么这样的深层思考。

我们接着看:

转账代码 transfer( ) 核心是两句:

        balanceOf[msg.sender] -= value;

        balanceOf[to] += value;

谁发起的转账,就把他(msg.sender)的账户余额减去转账金额(value)那么多,然后把收款人(to)的余额加上那么多②。

别小看这两句话。仔细琢磨一下,这其实就是账户和转账的本质。这简单的两句话是银行体系这么多年花了多少的硬件软件,人力物力才能达到的效果。

大家常常听说谁谁谁又发币了。从技术角度,就是在以太坊上部署了包含这三行代码的一个合约。在以太坊的官方网站上就有一段100多行的标准代码:https://ethereum.org/token。这段代码里面还有其他一些功能,比如可以给这个代币指定名称,符号,还有授权转账,销毁等功能。大家只要拷贝这个代码,指定你的新币的名称(比如 Xiaomao Token),符号(比如:XMT) ⑦,还有初始发行量比如:1,000,000,000),一个新的币就诞生了。整个过程3分钟应该够了。把参数改一下再部署一下代码,第二个新币又诞生了。

这新生的货币,虽然没啥用,但在安全性方面和以太币天生是一样的。这就像家长给孩子发了一些饭票,而这饭票的防伪技术和美元一模一样。看起来相当的大材小用,但如果把发货币成本降到几乎为零,把防伪能力提升到已知的最高水平,随着时间的推移,难说不会产生什么重要的应用。

部署代码

代码看懂了,下一步呢?怎么运行这代码?这代码到底在哪里运行呢?接着我们看部署过程。

部署代码,你需要在以太坊的客户端里,把这段代码粘贴进去,并且按“部署”按钮。客户端就会把这种人可以读懂的代码③编译成字节码,然后生成一笔从你的地址,发给一个空地址(0x0)的交易,并把字节码存在一个给定的字段里面(叫input),签名后发到整个网络上。接下来的操作和普通交易完全一样。矿工收到了以后立刻开始打包,算nonce,找到了以后再发送给全网络。这个可以被执行的代码,就永久的以只可读取不可更改的方式,存在了区块链上。

智能合约建立后会返回一个地址。每个币都唯一的对应于一个智能合约,也就是对应于一个地址。比如著名的EOS币,就是地址为 0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0 的智能合约发行的。你可以把这个地址想象成以太坊世界里的门牌号。币是以这个唯一的门牌号来区分的,而不是那三位的名字。

调用合约

现在,合约的代码安全的存在区块链上了。那么接下来这些代码什么时候执行呢?

一个智能合约里面有多个函数。调用智能合约里的一个函数,和发起一笔普通转账交易一样。很多的客户端已经内置进去了。你提供合约的地址,提供调用的函数,以及传入参数,然后发送消息就开始执行了⑤。你可以把它理解为从门牌号的屋子里面拿东西或者放东西进到给定的屋子。

消息发出以后,所有的矿工都执行这段代码,并且试图把结果打包到自己的数据块中,胜出的矿工获得挖矿的收益。所有的节点收到这个新的区块,也用自己的虚拟机执行一遍代码,确认结果和收到的块内结果无异之后才当作合法区块接受。

区块链就是通过这种超额的浪费,看似无意义的算nonce,看似无意义的反反复复,没完没了的执行同一段代码,来保证了一个安全的系统。这事儿就跟早上叠被子晚上还得展开一样,看似不产生价值,实则是房(shu)间(ju)整(an)洁(quan)不可或缺的一环。

花费 Gas

既然代码要被所有节点反复执行,那么问题就来了:要是谁写了巨长无比的代码,或者谁写了有问题的代码,死循环不结束了怎么办?以太坊的解决方法就是引入gas,每执行一个操作都是收费的。怎么收费呢?

首先每个交易的代码执行量越大,需要的gas就越多。字节码每一个操作都有固定的gas花销。以发币代码为例,如下是以太坊给我发的账单。总共执行了320步字节码的操作。有的操作很便宜,比如压栈(PUSH1),只要3个单位的gas,有的就很贵,比如在区块链上存数据(SSTORE)就一下子花了20,000个单位,而读取数据(SLOAD) 中等, 200个单位。如下加在一起就是1,300,213个单位的gas。只要执行这段代码,就是要这么多gas,好像汽车修理店工时的概念。

提交的时候每个人都可以出价,声明自己愿意为每个单位gas付多少钱(price)。这个有点像修理店的每工时的价钱。比如你可以出8 gwei/gas,或20 gwei/gas ⑥。矿工们大多数都是按照这个价钱排序优先打包出钱多的。出钱少就慢,甚至没人理。

矿工的费用 =  gas单位数 * 单位价格。

如下图所示交易,1,300,213 gas * 2 gwei/gas = 2,600,426 gwei,或0.002600426 以太币,折合1.832美元。最终把这笔交易打包进区块链的矿工获得这部分费用。

除了价格以外,还需要指定一个gas limit,就是你为了这段代码最多愿意付多少单位的gas。这就是为了预防代码出现问题,无限循环下去,直到把你的账户里的钱耗尽为止。如上图,gas limit设为1,300,213个,这段代码实际上也只用了1,300,213个单位的gas,还好,正好没有超过限制。否则超过了程序执行会嘎然而止,已经花的gas不退。

智能合约的价值

智能合约第一次认可了代码的自主权。代码可以拥财产,可以和人一样平等的在区块链上交易。一个合约的代码一旦发布,谁都改不了了,连上帝都无能为力。这就是信任的来源。大家可以像坚信自然定律一样坚信这个合约如代码所写的执行。你不需要相信任何人,只需要认真的读智能合约的代码,就可以确定性的知道这个合约将如何执行。

如上从技术层面简单的介绍了一下智能合约的过程。但智能合约和区块链真正的价值不在技术,而是它们对于价值传递以及信任建立的贡献。

我们看到的人类发展总是多条线并进,一条是生产效率,蒸汽机,电力,计算机,互联网,人工智能等都在这条线上;区块链是生产关系的进步这条线上的,这条线上曾经有过货币,现代公司制度,股票,现在有了区块链。

晚一些我再聊一下它对信任的贡献,还有可能对于社会的改变。

后注

① 很多专业人士希望把token翻译成通证,而不是代币。“通证”更加符合单词原意,符合事物本质,也希望避免被当作货币监管。这像极了“网志”和“博客”两个译名之争。结果博客被接受,更加准确,拗口,后来出现的网志不再有人提起。这个结果或许可以预测通证这个翻译的结果。

②Transfer函数前面的两句require,第一个是要求你的余额必须大于转账金额,第二个是要求转账金额不要过大以至于大于256位整数能容纳的数字。msg.sender 是内置的,可以获取消息的发送人的地址。

③可以搜索Remix,或MyEtherWallet。Solidity的语法和JavaScript很像,专门用于以太坊上编写智能合约。

④这里解释一下技术细节。建立合约的时候,用户发起一笔发款人为自己,收款人为空地址 0x0 的交易,并把字节码放到交易里面叫做输入(Input)的字段里面。矿工就会生成一个新的合约地址并把代码存在这个地址里。

⑤技术实现,其实是在交易数据的Input字段加上了一个编码后的数字。比如这串数字:a9059cbb00000000000000000000000007fdf7518745170e3d9de26874578b6c0a72b9dc0000000000000000000000000000000000000000000000000000000000000010

颜色是我为了区分加的,前四字节a9059cbb函数名 ,”transfer(address,uint256)”这个字符串的SHA3-256哈希结果a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b的前4位,用来指定是哪一个函数,根据函数定义,就知道后32位是第一个参数:地址 ,也就是0x07fdf7518745170e3d9de26874578b6c0a72b9dc。接下来32个字节是

金额 ,相当于十进制16。大家看得出,现在的区块链从抽象水平上基本上还停留在计算机的DOS和汇编语言的时代。

⑥ 1 gwei 就是 1,000,000,000 个wei。这个g就跟内存单位多少GB的G是一个概念,就是10亿的意思。10的18次方个wei就等于一个以太币。所以1 gwei看起来很大,其实也就是10的9次方分之1个以太币而已。一个以太币在我写这篇文章的时候是764美元,你大概有概念了是多少钱了吧。

⑦ 发币时候指定的名称,符号,仅仅就是一个字付串,是可以重复的。你可以发一个币叫USD,RMB,或任何你能想象的名字。Token是以发行这个Token的智能合约的地址唯一指定的,和名字无关。

上篇:链表,哈希,挖矿等 - 区块链技术学习笔记

钱包,私钥,地址等 – 区块链技术学习笔记

钱包

判断一个人是否真的了解区块链的一个简单的测试是问一句:“我转钱给你。你的钱包地址是啥?” 这个试金石可以轻松区分很多伪专家。在成熟的互联网世界,没有邮件地址还说得过去,毕竟没有邮件地址也可以点外卖,但是现在百废待兴的区块链世界,一切都如此原始,没有自己的钱包地址就是一个旁观者。

要开始,先要搞一个钱包,获得自己的地址。比如这就是一个合法的比特币地址:

1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm

这就像银行账户一样,有了它任何人都可以给你转账了。有非常多的软件可以帮你生成自己的地址。

受互联网网站的思维惯性影响,还有银行开户程序的影响,很多人以为要搞一个钱包地址还需要到什么地方注册一下。其实不然。任何人都可以自己独立的,不联网的生成自己的钱包。这是怎么做到的呢?钱包里面到底包含什么呢?

公钥私钥

这涉及到一个密码学上的一个基本概念:公钥密钥。公钥和密钥一对一对儿的出现,公钥加密的东西可以拿私钥解开,私钥加密的东西可以用公钥解开。大家就想像成一个带锁的盒子和一把钥匙的关系吧。这个特性用来加密和签名。

加密的过程好像是把自己的盒子写上自己的地址发的全世界都是,谁都可以免费要一个。谁要给你寄信就把信放到盒子里面锁上,然后寄给你。寄件人和收件人都很放心,因为路途上没有任何人(包括寄件人)可以打开盒子了。世界上能够知道信的内容就只有你和寄信的人。

签名的过程也很容易理解。就是写着你名字的钥匙发的满世界都是,谁都可以免费拿一个。而这把钥匙能打开的盒子只有你有,谁都不给。如果有人得到了一个盒子,拿你发的钥匙可以打开,盒子里的东西一定是你发的,因为这把钥匙能够打开的盒子,这个世界上只有你有,你无法抵赖。

区块链世界用了这个精妙设计的公钥私钥体系,但是不是用来加密,主要用于签名。你手里面握着私钥,打死你也不说的私钥。而你的地址,就是那个满世界皆知的公钥。钥匙信息可以被公钥打开,则说明一定是知道私钥的人加密的。所以任何的交易一旦用你的私钥加密了,收到的人验证一下用你的公钥可以解密,那就认为是你授权的操作。

钱包地址的生成

比特币世界几个关键的信息是按照这个顺序生成的:先生成私钥,再由私钥算出公钥,再由公钥经过一系列哈希算出钱包地址。

私钥 —> 公钥 –> 钱包地址

上面的推导次序是单向的,反向不可能。就是说从钱包地址无法得到公钥,从公钥无法得到私钥。

比特币的公钥变形出来的钱包地址,可以想象成用户名,这全世界都可以知道;私钥可以想象成密码,这个只有自己可以知道。

私钥是一切的开端

私钥一个大于零,小于2的256次方的一个任意数字①。你就随便挑吧。挑中了这就是你的了。比如,你可以任性的把私钥设置成这样:

0000000000000000000000000000000000000000000000000000000000000001

就是数字1。好记吧?(千万别真的真么做。我举着个例子就是为了演示用一个大家能猜到的私钥是多么危险)

然后通过椭圆曲线函数,就可以对应的公钥②:

0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8

然后经过一系列让人眼花缭乱的哈希,最终形成比特币地址如下:

1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm

私钥就像《阿里巴巴和四十大盗》的故事里面的“芝麻开门”。世界上任何人只要知道“芝麻开门”这个咒语,就可以在那座大山里面找到那个山洞并且打开大门。比特币的世界就是这样无情。一个人是否拥有一个账户,不看他是谁,就是看他是不是知道那个秘密。四十大盗知道咒语可以拿宝贝,阿里巴巴知道也可以拿。至于这个山洞里面有没有金银财宝是另外一件事情了。

既然所有看这篇文章的人都知道了这个地址的私钥(数字1),我们就共同拥有了这个地址里面的钱,任何一个人都可以花里面的全部的钱。

在比特币的世界,虽然无法知道地址背后的人是谁,但这个地址历史上所有的交易都是公开信息。很多网站和工具可以让你查询。来,让我们来查询一下这个账户,看看咱们有多少钱  :-)

真可惜,余额为零。这个并不惊讶。

但让我惊讶是,这个地址从2011年到最近的2018年3月9日,居然有过1201笔交易,总共收到过7.8个比特币,即便按照最近跳楼的币价,也是24万块钱人民币呢。这期间任何一个时间点,这个地址里的钱,就是放在大马路上任何人都可随手拿走的钱。多危险呀!

所以所有的钱包软件都是尽量的生成一个越随机越好的私钥。好在随机生成的私钥足够安全。有多安全呢?我们的大脑是无法理解256位私钥到底能存多大的数字。这么说吧,2的256次方大约是10的78次方,也就是10后面78个零。而现在人类观测到的全宇宙的所有的原子才10的78到80次方左右。也就是说私钥的可能性大约是全宇宙的原子数那么多。从整个宇宙中随机找出一个原子给你,这是你的私钥,你觉得和别人冲突,或者被别人猜中的可能性有多少?

钱到底存在哪里?

首先,钱不存在钱包里。

很多钱包软件可以显示余额,完成交易,但钱不在钱包里。钱包唯一记录就是一个私钥 ③,大多数的私钥不像例子里面那么容易猜,看起来就是乱码。如果谁有本事背的下来这个密码,其实你就不需要任何钱包。有些工具允许你交易的时候直接输入私钥就可以了。

那钱存在哪里呢?

钱的数量存在区块链上,而区块链的链表结构存在成千上万的电脑上。如果你下载一个比特币的客户端,同步以后有大约100多G的数据。里面包含了从第一笔交易到现在快10年的所有数据。所以回答这个问题,钱并不存在在任何地方(不存在一种刻着中本聪头像的纸币或金币),钱的余额存在无数的电脑共同维护的一个账本里。

密码和助记词

既然唯一重要的是私钥,为什么很多钱包还需要密码呢?这是一个双重保护。把私钥明文的存在电脑硬盘或手机上不是个好主意,对于黑客甚至是亲近的朋友拿到硬件一个简单的搜索就能找到钱包文件。所以大多数钱包是把私钥再用一个密码加密一下,然后只存储加密过的私钥。没有密码就无法容易的访问私钥。因为人类起的密码就那么8-10位常常是有规律的文字,其安全性远低于机器生成的256位的私钥,但也总比没有好。但千万不要以为这个密码就是你的比特币或以太币密码。它仅仅是是一个保护密码的密码。丢了存私钥的文件,有密码也没有用了。

还有一个大家使用钱包中经常遇到的,就是钱包帮你生成一串12个单词的句子,让你把这个句子抄下来保存好。比如这样的:

voice again pupil thumb strategy toss extend unusual neutral shuffle claim cave

这是什么呢?和私钥又是什么关系呢?

它叫助记词(mnemonic code),其实就跟以前地下工作者用的密码本一样,也跟“A for alpha, B for Brave, C for Charlie ”的原理类似。,BIP39(Bitcoin Improvement Proposal 39)定义了2048个单词的列表,每个单词都有编号,比如

voice ==>1964

again ==> 38

cave ==> 295

然后把这些数字按照一些复杂的算法拼起来就可以还原出来私钥了 ④。

现有钱包的问题

如上就是比特币等的钱包,私钥,地址等的现有运作方式。但问题是很明显的:

密码不可改。密码改了,公钥就变了,地址就变了,也就是另外一个钱包了。密码一旦泄露,也没有办法改变。

密码忘了。如果你的私钥忘了怎么办?无解。忘了就是忘了。没有找回密码功能。大量早年的比特币都随着一次不小心的电脑格式化消失了。严格的说,那些比特币没有消失,我们还能看到它们就在自己曾经拥有的那个地址里面,但我们就像忘记密码的四十大盗,只能看不能花了。此事现在无解。

假装不记得密码。典型例子就是离婚的时候,夫妻双方有一大笔财产在比特币里,一方坚持说把私钥弄丢了,法官无法证明这个人是真的忘了还是假的。另外的情况就是有些公司宣称被黑客偷走了比特币,而没有任何人可以证明小偷是另有其人还是就是自己。

这些问题都需要未来的创新来解决。

总结

前面几篇文章介绍了区块链的一些最基本的技术,从链表,哈希,挖矿等 到 智能合约,代币(Token)等,还有本文的钱包,私钥和地址等。

我花时间先谈技术的本意不是为了证明技术多重要,而是通过抽丝剥茧来帮助大家理解区块链的底层技术是多么的简洁,容易理解。希望这可以缓解很多人的区块链焦虑。因为从底层来说,技术没有什么复杂,但是设计的非常精妙,而且像互联网底层技术一样实用。

接下来,我想我会把视野更多的放到技术背后的商业和哲学的层面了。毕竟,区块链对于世界的影响,不是技术本身,而是它对于生产关系,对于价值传递等等的巨大改变。这里面牵扯到代币经济(Token Economy),代币促进的网络效应,ICO,区块链应用等等好多的内容。如果感兴趣可以订阅公众号以后一起学习交流。

感谢华宏伟,赵君,宫亮,Tim,王哲对本文的帮助。

注①:严格地说是 1.158 * 10^77,比2^256稍微小一点点

注②:这个公钥其实是一个坐标。0x04是标记位,后面两个256位的数字是椭圆曲线上的坐标值: (79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798, 483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)

③:虽然公钥,地址都是可以从私钥确定的算出来,很多钱包软件里面为了方便也存储了公钥和地址。

④:技术细节:实际上不是简单的拼接。2048个可能性就是11位,所以是很多个11位拼出来。还有最后几个单词是有可能是校验位,以发现用户输入错误。同时最终拼出来的也不是私钥本身。但大家只要知道这个东西最终可以找到私钥就好。

第一篇:链表,哈希,挖矿等 - 区块链技术学习笔记

上一篇:智能合约,代币(Token)等 – 区块链技术学习笔记

西贡初体验

最近越南的新闻多了起来。这些新闻勾勒出了一个欣欣向荣的国家的形象。但对于我,越南依然是一个陌生的国度,记忆中仅有8年前岘港海滩上和老城格格不入的皇冠假日酒店。这次,终于来到的越南。

瘦楼

形成对于一个城市的感性认识,第一步总是从街景开始。一出机场,转个弯就能看到这些细高的小楼。一个个都是宽不过四米,却深十几米,高七八层,就如同阿姆斯特丹的运河边的景致一样,想必也是因为历史上,有过按照沿街面幅,收取房产税的时期。

这样的安排,令西贡有了一种特殊的美感,就像马赛克一样,每一块都宽度都类似,却颜色、形状、图案迥异,放在一起大有看头。又不至于没有规矩,一会儿大一会儿小,而显得杂乱。

越南的街道里上,还残留一些蛮大一部分在改革开放以前建设的,相对简陋的小楼。这些楼和法国殖民时期留下来的楼,间隔排列,估计会随着翻新和改建逐渐消失。整个城市有很多法式常用的明黄色,蒂凡尼蓝,薄荷绿,大粉红色,基本上都是,明亮的颜色中,偏淡的色系,在阳光下熠熠发光,透着一丝清凉。

法式的百叶窗也是很多建筑的标配。和上海的法式建筑仅仅是摆设的百叶窗不一样,越南的太阳就如法国南部一样火辣,但空气还是因为海风冰凉,所以百叶窗这种神器,既阻挡了阳光的直射,又让冰冷的空气自由流动,室内的气温一下就降了下来。

摩托车

越南最让人印象深刻的,是摩托车。越南有4500万台摩托车,平均每1.3个年轻人就有一辆,西贡比例更高。

摩托车就像水流一样。静止的时候,不留死角的填充任何可以填充的空间。行进的时候,也像流水一样,和汽车同速度启动,同速度骑行。从一个骑手的角度看出去,前后左右的摩托车相对位置变化不大。当然以这样的接近程度,超车并不现实。

西贡也如法国一样喜欢在道路交通上使用环岛,坐在环岛附近的咖啡馆看着来自四个方向的车流永不停歇的交汇分离,就觉得这个世界都在动呀动,会看得人恍惚。

交通

很显然,现在的西贡的交通已经彻底饱和,几乎容纳不了再增加哪怕10% 的车辆。但我并不为西贡的交通担心。所有的城市的拥堵的终极解决方案就是地铁,而包括六条地铁线的西贡地铁网络已经开始建设并且2020年就有两条线路通车了,我相信地铁一定会使街上的摩托车大幅减少。在上海地铁通车前,挤公交车会令人绝望,各条小路上叮玲玲响着铃铛的自行车,也蔚为壮光。而随着地铁线路一条一条开通,上海的公交车空了起来,路上的那种自行车大军也随之消失。

过马路

在西贡过马路如滑雪一般刺激,能感受到速度,激情和心跳,尤其在那种只有人行横道线,却没有红绿灯的地方。摩托车汽车前后相接,永不停息的驶来,看似等上一小时都没有任何空档可钻。人们基本上都是积累够一定人数以后结伴过马路。胆子大的,故作镇静的豁出去血肉之躯,硬横在车前面。胆子小的,躲在后面大呼小叫的添乱。如此这般,摩托车就如被施了魔法一样流畅的贴身划过,人居然毫发无损,不能不说是一种奇迹。

法式浪漫

在西贡找到法国人带来的风情并不难,除了一百年前留下的大量的法式别墅,宏伟的歌剧院,市政厅以外,还有浸入城市每个细节的精致和审美情调。沿街的咖啡馆把法式浪漫精致发挥到了极致。上海最近开了很多网红咖啡馆,如果把上海的那些咖啡馆数量增加100倍,然后铺满一个小小的区域,那就是西贡。

不用转过街角就一眼看到很多设计感十足的餐厅或者咖啡馆。仔细研究每一家店,对于招牌的字体的讲究 ,对于菜单的精心设计,哪怕是不起眼的洗手间的指示牌,都散发着一种美美的气息。

不得不说审美是有生命的,曾经美的东西在一个城市里存在过,就会植入这个城市的基因,哪怕因为战争和政治暂时蛰伏起来,等春天一到,就会生根发芽露出头来。我把它看做西贡的一次文艺复兴。对美好的东西的向往让人觉得,这个城市或者国家的未来应该不会太差。

社会主义

不得不说,一下飞机第一眼看到的身着绿色制服,肩戴红色肩章的边境官的时候,我还是愣了一下。越南作为社会主义国家的这一面,和我脑子里那个完全开放,经济高速增长的国家有一些不搭。这种不搭,也如同“胡志明市”这个名字和富有浓郁的法国风情的西贡不搭一样。

但除了这一刻的震惊以及路上的党旗,国旗,还有夸张的宣传画以外,整个西贡身上的社会主义国家印记已经消退得让人难以察觉。

不同步的市场

西贡就像即将蜕变的蝴蝶,既有笨重的壳,漂亮的翅膀已经展现。有些地方远远的落后于国际社会,好像时间被凝固了半个世纪一样,而有的地方却出奇的与世界同步,甚至还有些超前。新和旧,或突兀,或和谐的混杂在一起。

火车就是一个慢一拍的地方。西贡火车站,居然让我想起小学课文里的《小站》的场景。除了一个小小的候车厅和三个站台以外并没有什么,早上候车大厅里居然空无一人。越南的铁路交通相对落后,西贡的火车从这慢悠悠的开出,在36 – 44小时左右到达首都河内。当铁路和繁忙的街道相交时,会有人先从路边,推出两道栅栏拦住车流,等待火车笃定的通过后再恢复交通。慢,就是越南火车的主旋律。

而越南和世界完全同步的征兆是Grab。满大街带着绿色头盔穿着绿色坎肩的GrabBike司机把整个车流带成了绿颜色。招手就可以拦下一个空驶的Grab摩托车,带上司机准备的头盔,通过App配对告知目的地和完成结算,而不需要通过信用卡。这种越南本土的创新让人眼睛一亮。

年轻之城

在西贡,无论是大街上,还是办公楼里,插肩而过的,埋头工作的,在咖啡店里遥望街景的,大都是年轻人。甚至连小学、中学也出奇的多,在最市中心的统一宫附近,也是走一两个街就有一所学校。

放学时候,街边小吃摊上围坐吃米粉的,结伴同行的,排队等公交车的都是身穿天蓝色制服的学生们。尚未被污染的蓝天,鼓励学生好好学写的宣传画,校门口卖甜食的小摊,小同学的红领巾,社会主义少风格的少年宫,及其内部被脚步磨的发亮的水磨石台阶。这场景让我回忆起自己幸福的童年。

更不用说,晚上范五老街这样的酒吧街,满满的年轻荷尔蒙,在劲爆的灯光音乐里面宣泄,俨然是很多年前的衡山路。因为年轻人的比例高,整个西贡街头的主旋律是青春,行人眼睛里透漏出来的是对未来的向往,看起来赏心悦目。

原来一个城市也是有年纪的。上海、深圳、北京、香港都曾经都是那个年轻之城。20年过去了,上海市中心的街道,终于变成了曾经向往的样子:高档的专卖店,整齐有序的交通,雅致的灯光,但现在惟独少了热闹。街上的人,没了。现在的淮海路上,不需要艰难的在人行道上挤出一条路前行,此时才恍然发现,上海的那个火热的过去,或许再也回不来了,而那个过去,就是西贡的现在。

越南现在的人口中位数在30岁左右,并且越年轻的人比例越大,呈一个正金字塔结构。而中国人口年龄中位数已经接近40岁,而这个数字在中国改革开放最火热的2000年也正好是30岁。年轻的劳动力是很多产业的基础,其中制造业不可阻挡的向越南迁移,就是这种趋势的显化。坐在越南街头看着熙熙攘攘的年轻人迅速的移动着,就如同看到了一个年轻时候的中国。

现代

西贡的夜景和上海有些类似。璀璨的灯光,作秀一般的高楼,彻夜的车流,这些都是过去10年里面冒出来的。本地人一边装作抱怨的唠叨这些楼都是外国建的,这生活不是老西贡的生活了,但明显听得出其中有骄傲的成分。这里已经有相当现代的写字楼,有高岛屋、百盛这些百货商店,几乎一个不落的国际品牌酒店在此开业,还有全球知名的审计所,律师,银行等等任何一个国际化城市的标配,都已经在这里汇集。

难得的是,这里西贡和过去并没有割裂。

从建筑上来说,这些楼都融入了整个城市,大门敞开,任何人都可以在新和旧之间随意游走。而很多发展中国家的高档场所甚至需要荷枪实弹的保安,汽车前盖和后备箱打开检查才可以进入。

人群也并没有割裂。从穿着和感觉上,我可以想象在路上行走的这些人就是这些现代的设施的一部分,只不过有一些人,像九十年代末上海外企的白领一样,先人一步进入了空调十足的高楼,逛起了本地人原本逛不起的商场。但这肯定是,“一部分人先富起来”的故事,而不是“贫富差距增加”,或者“阶层固化”的故事。

城市

西贡的城市地理位置像极了上海,西贡河像黄浦江一样蜿蜒入海,同时也分割了热闹繁华的西岸和尚待开发的东岸。西贡的苏州河(Nhieu Loc)也刚刚从臭水沟摇身一变成为美丽的风景,可以沿河道两边的跑道一路跑到机场附近。人民广场附近的一郡如同黄浦区一样热闹。七郡就像古北,扎堆住着韩国人和日本人。在西贡和熟悉上海的当地人基本上可以直接拿上海的地名指代西贡的地方,比如说延安路隧道或者陆家嘴的位置,就大概明白在哪里了。

发展

如果说整体经济水平,越南相当于中国的2006年,因为中国也是从那一年跨越人均GDP两千美元的。如果问我西贡相当于上海的哪一年,在城市建设方面,我非常精确的推算,西贡是上海的1994年。

为什么一定是1994年呢?那一年是上海地铁一号线通车前的一年,是浦东的高楼群将建没建的那一年,是连接浦东浦西的延安路隧道通车的第5年,也是浦东机场正在建设,即将投入使用的那一年。对比西贡,他们的地铁明年开通,西贡的浦东(二郡)的高楼刚刚规划好,还没有开始建设;西贡河隧道正是在8年前建好;跨越西贡河的大桥也一座接一座的开始建设。在离城市40公里的东部海边。西贡也会很快也会迎来超大的隆城国际机场。这紧锣密鼓的建设的节奏,几乎就是上海1994-2000年的翻版。我能够体会当地居民对于新地铁,新机场,新跨河大桥,新浦东的期待,可以估计它们将来对于这个城市注入的活力。

越南的中国之路

越南显然是受到中国启发,把中国在过去40年走过的路照样再走了一遍:1986年宣布改革开放(越南叫革新开放);大量吸引外资建厂,雇佣低廉的劳动力;加大出口,和美国,欧盟建立伙伴关系,在很多领域达成出口零关税,加入WTO,CPTPP,AEC;开放本土市场;办证券交易所;推动国企上市并且进行混改;大兴土木建地铁,建机场,修贯穿南北的高速路公路,高铁等等。这一切作为来目睹中国发展的人来说实在太熟悉了。如果不出意外,应该可以取得成功。

从越南回来有一种兴奋的情绪,在这种情绪下,很多越南的问题看起来就相对偏小,比如劳动力的技能问题,政府的腐败问题,市场过于初期阶段等等。从未来的角度来看,这些问题,是可以用经济和发展来解决的,其中很多都是我们已经经历,并且已经大幅改观的问题。

关注越南,总归是未来十年不可或缺的一个看世界的视角。

推荐:对于三十几个城市的偏见

上篇:钱包,私钥,地址等  – 区块链技术学习笔记

印度,我正在接近上瘾的边缘 之一 被设计的首都和马赛克

从来没有一个国家让我感到如此困惑。

我无法说我喜欢她,或者不喜欢;无法判断我是期待再次访问,还是尽量远离;更无法确定她的未来是悲观,还是乐观。从印度归来,我唯一知道的是,自己对于印度的无知。

想去印度的想法由来已久,终于在这次的越南之行(西贡初体验)前夕,我故意在印度转机,从而一窥印度的面貌。

新德里和德里到底什么关系

以前,一直以为新德里和德里是两个城市。这个错误直到到达才得以纠正。“新德里”原来就是德里市里的一个区。德里有十一个区,除了新德里和Shahdara以外,还有按方位分的九个区:东,西,南,北,中,和东南,西南,东北,西北德里。新德里是其中一个面积只有40平方公里,人口13万的小小区域。印度的首都是新德里 ,而不是德里。以下我所写的新德里,就特指这块小小的首都之地。

被设计的首都

新德里从建都历史和规划上看,像极了美国在华盛顿特区新建一个首都的想法,都是为了迁都在一片空地上建造首都。华盛顿从费城迁来,而新德里从加尔各答迁都于此。所以新德里从第一天,就是有规划的,是全新的。新德里的这一片行政区的设计元素,很像三个首都的融合:华盛顿,巴黎,和北京。

华盛顿式的规划

说它像华盛顿,是因为中轴线国王大道(Rajpath)那宽阔的草坪,很难说不是受华盛顿特区国家大草坪的启发。这条大道两边的建筑也有华盛顿的影子,整齐的排列着各个政府机构。大道的西尽头是长得如美国国会大厦一样的总统官邸,东尽头则是如凯旋门一样的印度门。

早上在国王大道上跑步,明显的可以感觉到比北京严重得多的雾霾,道路两端的建筑影影绰绰,初升的太阳如北京的夕阳一般带着厚厚的晕光。

大家常把新德里的这个区域称为“鲁琴斯德里”,是因为整个新德里的规划和国王大道周边的建筑是由英国最伟大的建筑是鲁琴斯一手设计的,就如法国人朗方设计了华盛顿一样。

法国式的环岛

说它像法国,主要是因为新德里区域里的道路由一个接一个的环岛连接。世界上还有谁比法国人更喜欢在交通领域使用环岛呢?市中心的Connaught Place一个环岛放射出来12条大道,这不就是凯旋门的设计吗?这些环岛和道路,就如同跳棋棋盘一样,把新德里的新区切割成一个个小三角块。

正因为大的道路基本上用环岛连接,新德里并没有多少红绿灯,这使得行人过马路的时候,面对车距几乎相同的,源源不断的各式混杂的车辆有点束手无策,而不像其他城市那样车流因为红绿灯的原因是一波又一波的,中间总有间隔。这也让新德里有了种连续的热热闹闹的景象。

北京式的园林

说它像北京,是因为这了浓浓的政府气氛,宽阔的大道,以及众多皇家园林的遗址。政府部门门口的大道,由警察在两端设置了行人都无法通行的路障,变成了空荡荡的大街。各个政府机构的深宅大院,或许只有莫斯科和北京可得一见。从酒店高层鸟瞰新德里,一片郁郁葱葱,全是树木。而就在新德里步行的范围里面,胡马雍陵,旧堡等等的动辄几个世纪前的遗迹,也会让人想起北京的陵墓以及它们置身其中的巨大公园。

印度初印象

来印度之前,听到最广为流传的段子是,洗澡的时候千万不要唱歌,否则会拉肚子。对于印度水和食物的担心贯穿了我的整个行程。结果亲测印度的瓶装水还是安全的,从地铁站的小店里买到的纯净水让我免除了拉肚子这门必修课。

同样需要当心的是纸币。一张50卢比的极为破旧的纸钞自从进了我的手,就再也没有能够花出去,连作为小费给司机都遭到了拒绝。它在我的手中的旅程的最后归宿是乞丐的纸盒。

皱褶的纸币对于地铁的自动售票机当然是一个巨大的挑战。我手里面的新旧纸币几乎都无法通过。不过,聪明的印度人民总有办法。在繁忙的站点,每一台售票机旁边都有一个服务人员帮忙,帮你麻利的把纸币换成她手里面的,让你重试。虽然也要几次被退回以后才能购票成功,成功率还是比我自己手里面的钱高出不少。

不得不说,印度的地铁系统还是干净和高效的。进入地铁,这个城市和其他国际城市的差距明显减少。地铁代表着新德里最为干净,现代的一面。不过地铁内和地铁口的村落一样的景致构成了巨大的反差。地铁出口好似一个哆啦A梦的任意门,生硬的把两个截然不同的世界连在一起,而我是一瞬间从大城市穿越回了农村。

这种反差在高档酒店内外同样存在。酒店被高高的围墙保护起来,车辆进入的时候,前引擎盖,后备箱都需要打开,保安会用巨大的镜子伸到汽车下部仔细检查。基本上一旦进入了酒店,就是一个桃花源,里面的消费价格也如天上一样,估计高出20倍不止。外国人,在印度就是“他们“,一群和自己不一样的人,是需要被关起来特殊照顾的人。各个景点也对外国人有特殊的优待,票价基本上按十几倍收取,比如胡马雍陵对于本地35卢比(人民币3.5元),而对于外国人就是550卢比(人民币55元)。这样的政策在中国开放的初期也实行过,不过随着经济的发展慢慢消失了。

宗教

我们对于一个国家总有些固化的认知,这些认知是如此底层和牢固,以至于我们从来没有意识到还会有错误。这种错误只有在身临其境的时候和眼中看到的世界碰撞,发出清脆的碎裂声,才让我们知道,原来自己的理解一直都是错的。

我一直因为印度是佛教的发源地而误认为印度是一个佛教国家。我错了。从数据上看,印度83%的人口信奉印度教,伊斯兰教是第二大宗教,而佛教还远没有排到第三。

相比印度教的巨大信众,在新德里,伊斯兰教的存在感似乎超过了印度教。早上刚刚5点多钟,酒店附近清真寺礼拜的大喇叭中传出的诵经声就回荡在新德里的上空,穿过酒店厚厚的隔音玻璃,吵醒睡梦中的我。

我索性起床,穿上运动鞋,巡着声音的来路去寻找。

结果没找到清真寺,却误入了一座锡克教谒师所。天还没有亮,这里就已经灯火通明,人潮涌动。教徒戴着头巾,虔诚的拖鞋,洗脚,亲吻地板,进入大殿,然后席地而坐随着音乐念诵。谒师所四周的连廊下,无家可归的信徒在那里过夜,大殿门口的如同早点摊一样的铺子,正免费发放着热乎乎的食物。

离开谒师所,我看到一副诡异却和谐的场景:就在锡克教谒师所旁边,一座红色的基督教教堂里,基督教徒在远处清真寺的大喇叭声中,静悄悄的向上帝祷告。再走几步,印度教的教堂里,神像前的鲜花早早的有人摆好。各种宗教共生共处,看起来混乱却又有着内在的秩序。

然而翻开印度的历史,就知道印度的宗教,远没有我这个旅行者在一个美好的清晨看到的这么和平共处。宗教的相互排挤,冲突,甚至屠杀的危机都藏在我看到的这幅祥和的画面之后,只是不知道什么时候在哪里又会产生怎样的冲突。

马赛克

初印象中的印度,不是熔炉,而是马赛克。冲突,反差是我看到的印度的主基调,不同部分之间棱角分明,缺少过度地带。现代的和落后的,外国人和本地人,富人和穷人,伊斯兰教和印度教,新区与旧区,如同一副巨大的马赛克上碎片一样,紧紧相连,和谐共处,却又格格不入,让人看不到边界融合的希望。随着我对印度了解的稍微深入,这种马赛克感愈发强烈起来。

(未完待续)

注:这篇文章有点长,我会分成三部分发出。如果心急,可以发送“印度“得到整篇文章。

推荐:10分钟韩语教程

上篇:西贡初体验

印度,我正在接近上瘾的边缘 之二

上篇:印度,我正在接近上瘾的边缘 之一

陵墓

清晨,太阳刚刚露出头,游客还没有出现的时候,德里的古迹异常迷人,甚至美得让人窒息。阳光下几个陵墓端庄肃穆。

中国人喜欢中轴对称,而古印度人似乎更加喜欢四轴对称:左右对称,前后对称。我看到的很多陵墓俯瞰都是一个巨大的正方形庭院,中间大约1/3部分,是一个高高的正方形基座。基座上再端庄的放上1/3基座宽度的巨大的正方形陵墓。而主人死后就在这三层正方形的正中心。陵墓从四个方向看都几乎是一模一样。在正方形的庭院上,有完全对称的水道,在有水的时候可以映衬出上下对称的陵墓。我觉得印度的陵墓设计师除了美学的造诣,也都是几何学得很好的理科生。

除了印度教建筑风格的陵寝,我也看到很多不同风格的。莫卧儿王朝的陵墓越来越像蒙古包,并且开始出现了标准的伊斯兰建筑。这是我始料未及的。建筑明显的多样性,印证了印度的历史远没有想象的那么简单。一次一次外族入侵,统治,推翻,厮杀的痕迹,都留在了这些美丽的不会说话的陵寝里面。虽然时间已经流逝,这些建筑却固化了那些时间中发生的事情,等着我们这些后来人从中靠想象复原那些历史。或者说,时域里的历史经过傅立叶变换就成了频域里的建筑。(额。。非理科生请忽略这句)

脑子里的旅行

在印度看到类似蒙古的建筑,我觉得不可理解。印象中从蒙古到达印度必须穿过中国,翻过青藏高原,跨越几乎不可逾越的喜马拉雅山脉。若不是这样,印度这个偏安于南亚次大陆的国家又如何和蒙古血统发生关系呢?印度怎么又和阿拉伯世界的伊斯兰教发生关系了呢?

为了回答这些问题,我开始探索喜马拉雅山脉以南,南亚次大陆的广袤土地,去了解这里的历史和地理,知道了印度,巴基斯坦,孟加拉国这三个国家的恩怨情仇,知道了蒙古人入侵,不是翻越喜马拉雅山脉,而是通过那个无数次被各种入侵者利用的,兴都库什山脉上狭窄的开伯尔山口。

旅行,其实至少是在两个层次同时进行。在物理的层面,身体在任何一个时间只会出现在一个地方。那个地方的一切,并不经过事先编导的,杂乱无章的一股脑扑面而来,其中包括方位感,包括温度,包括气味,包括宗教,包括地理。而与此同时,脑子中的旅行也同步启动,这个旅行会因看到的这些蛛丝马迹而起动,却又远远超过身体的层面,在时间和空间里面遨游。

比如此时,脑子里的我已经顺着开伯尔山口,兴高采烈的进入了广阔的阿富汗,深入到中东。顺着地图,伊朗,伊拉克,叙利亚,约旦,黎巴嫩,以色列。。。。这些以前只在《新闻联播》最后五分钟反复听到的地名,和地理位置一一对应起来,拼成了一张完整的地理和历史的图景。

旅行的意义或许就在于此。它迅速的拓展一个人对于地理和历史的常识性认知,并且通过把自己和一片土地建立联系,打开对这个领域的好奇心。而这个好奇心就好像一只纷飞的蝴蝶,把人引入一个不曾到过的知识领域。

这一部分脑子里的旅行,才是旅行最重要的部分。它赋予身体经历以意义,把印象的碎片放进历史和地理交叉而成的格子里面。否则,身体的旅行获得的短期记忆,会在几天以后从脑子里消失的无影无踪,好似整段旅程压根就没有发生过一样。

背景音乐

我曾经以为生活和电影的最大区别是,电影有背景音乐,而生活没有。但到了印度,我发现这里的生活也有背景音乐。

一出机场坐上出租车,欢快的印度民族音乐一直陪伴我到酒店;早上七、八点钟,路边摊还没有摆好,小收音机里的歌舞先放起来;突突车更是把音乐开到最大,一路左右突围,风从敞开的两侧把自己吹得一脸凌乱。印度的公共和私人的界限不像西方那么清晰,小喇叭的音乐,汽车永不停息的喇叭声,司机的谩骂,路上的人的叫嚷,有时再加上清真寺的礼拜大喇叭,都给新德里之旅配上了永不停歇的背景音乐。如果把这些当作生活的背景音乐,德里之行犹如一部电影。

一路向北

如果我的印度之行就止于我在新德里的酒店里的午餐,我必将带着对印度片面的美好印象离开。而真正的印度,在我尝试走出新德里、走入旧德里的时候,向我展现它更完整的面貌。

作为一个一眼就能被认出的外国人,向北之行是令人迷惑的。我无法分辨和你说话的人到底是,准备从你身上赚一笔钱,还是真的在帮助你。随着经验的增长,发现遇到的几乎都是前者,后者少到举不出一个合适的例子。

突突车 Tuktuk

离开酒店一路上就不断的有突突车司机呼喊你,“Sir!Sir!”的声音就好像自己身上的铃铛一样规律的伴随着你行进。印度的司机很有耐心,会开着车陪你走很远,希望你可以乘坐他的车而非步行。这是可以理解的。印度大街上的突突车可以用“饱和式”待客来形容,经常十几辆空载的突突车排在主干道两边。用陪同的方式获客,显然性价比等待幸运之神降临要高出不少,尤其外国人这种类似行走的金条一样的物种。

我知道大家都在努力的从我身上赚钱。大约相同的路程,我付过150卢比,100卢比,50卢比,20卢比还有10卢比,150卢比的明显多收了我钱自不必说,而20和10卢比的则是把我强行贩卖给了早已等候的高价商店。店门口的侍者并不掩饰的当我的面,记下了送我来的车牌号码,并和我的名字一起记录在案。而我心猿意马的逛了一下商店离开的时候,载我来的司机必然会不知道从什么地方,跳出来出现在眼前,“Sir!Sir!”的呼喊着,无比殷勤的要带你去下一个他推荐的好地方。

对话

印度让我疑惑的另外一个方面就是大家的交谈的重复模式逐步显现。大多数的对话都从Sir,Sir开始,然后是“Where you going?”,之后必然跟着“Where you from”,可选的“Oh!China!”之后是,“How many days in India?”, 最后是“Where you go next?” 我心里嘀咕,是不是如此深奥的哲学三问,可以轻松的形成一个游客的画像,好决定下一步如何从各种返佣机制中获取一些收益。

对于带路的用语也在一天内出现了严重的重复。比如我想摆脱跟随的人向右转,而他想让我向左转的时候,就会告诉我“右边什么都没有,那是乞丐区,他们会跟着你,往你的鞋上吐痰”。也见过人说是往裤子上吐,有人说是往身上吐。总之虽然吐的地方不一样,但格式大同小异。不知道这统一的说法是如何传播并且形成标准操作流程的。还有人搭讪说我要去的Connaught Place市场正在罢工,很危险,应该去他推荐的区域。我还是坚持去了,并没有他说的情况。

我其实并没有因为这些经历而有特别的恼怒,毕竟卢比对人民币是10:1的汇率,对于我来说就是10块和1块的差异。印度这个人口已经无限接近于中国的国家,GDP只有中国的1/5不到,突突车司机一个月就是几千卢比的收入。我所经历的乱象仅仅是经济决定的道德。现在在中国和欧美国家的旅游区也还依然有类似的现象,并非这个国家的固有特色。我相信随着印度经济的发展,这样的现象或许会改善,如同中国走过的那条路一样。

(未完待续)

上篇:印度,我正在接近上瘾的边缘 之一

相关:西贡初体验

   对于三十几个城市的偏见

   10分钟日语教程

   10分钟俄语教程

   10分钟韩语教程

   画点画

   又一批纯手工制作的画新鲜出炉

   有人写文章就是为了促进思考