本文是播客 Teahour 以太坊专访文字版,收听地址 http://teahour.fm/2016/01/19/talk-with-jan-about-ehtereum.html ,也可以在喜马拉雅、 iTunes 搜索 Teahour 收听。
(前边的开场白与区块链和以太坊无关,略去)
Terry : OK !接下来我们要说说第三则新闻,就是万向区块链实验室在上海举行了一个全球性的区块链 Hackathon (黑客马拉松),我们也去参加了这个 Hackathon 。然后……我们有没有得奖?哈哈哈!!
Jan :有幸有幸。 Terry :嗯,有幸获得了一万美元的奖金。我以前也参加过几次 Hackathon ,你以前也参加过吗?
Jan :也参加过,我参加的比较少,参加过一次。 Terry :那你对这次 Hackathon 有什么想法?
Jan :我觉得要感谢一下万向还有德勤, Hackathon 组织的非常好,感觉也非常好。因为当时比赛的地点是在外滩中心。然后… Terry :很高大上?
Jan :对,奖金又高。在那么高大上的地方从事着这么有意义的事情,感觉非常好。 Terry :我参加过很多 Hackathon 不管是线下线上的,这也是我参加所有 Hackathon 里面办得最高达上的,吃的也是最好的!虽然吃的东西很简单,但是也算是吃的好的了。吃的喝的随便供应,环境也非常不错。每个 Team 还有一个办公室!其他地方能给一个大长桌就不错了。环境真是……这些搞区块链的金融公司有钱是吧。然后奖金也挺高,我们不是第一名,第一名是三万美元,我们得的算是第三名的奖金。第三名和其他的奖项奖金都是一万美元,一万美元也算是很高了,里面一共是有二十多个队参加,能够有幸得到这个奖。 我们做的这个项目叫……要不要说一下?名字叫 NEVER MORE !好,现在你们猜一猜 NEVER MORE 是什么意思?
Jan :这是本期的提问吗? Terry :(笑)没有没有。
Jan :观众来信有奖吗? Terry : OK ,我觉得玩 dota 的人应该都知道, NEVER MORE 就是影魔,这个也可以说是我们的小文化吧。这个就是我和 Jan 一起做的东西,因为我们两个都喜欢玩 dota ,然后我们做的项目都会以一个英雄来命名,对不对?
Jan :对。 Terry :然后这次我们为了拿到奖金,不惜拿出了我们最酷的一种 NEVER MORE 。幸好拿了奖,不然就完了。 OK ,这三则新闻我们就说到这,关于 Hackathon 我们鼓励黑客去参加一下,我觉得这个在国外特别流行而且很多大神参加。你会发现很多一线的 Rails commiter 都会去参加 Hackathon ,当然他们当中有人可能甚至还没得奖,我不知道是不是面子思想的原因,在中国稍微有点背景,有点资历的程序员就不愿意去参加这个 Hackathon ,怕得不到奖多丢脸。其实有什么啊,对吧? Hackathon 又不是比技术,很多都是比你的 idea ,甚至是 presentation 。所以去 hack 本来就是一件很愉快的事情,不要太在意奖金,能不能拿奖,这个过程本来就是一件很好玩的事情。但也不要参加太多,这个对身体可能……会有影响。(笑)
Jan :需要补肾吗? Terry :(笑) OK ,我们新闻就说到这些了,接下来我们要聊一聊我们今天的正题了。首先我们简单回顾一下,我们上一期说到的最后的部分。 上一期我们谈到了 Bitcoin script (比特币脚本),我们谈到了在 Bitcoin 上面它除了有数据库的性质之外,它还有计算的性质。但由于 Bitcoin 它不算是一个有图灵完备的语言,于是我们就引入了一个项目叫 Ethereum 。它是要来解决这个问题,把这个语言变成一个图灵完备的语言,那么我们就先深入了解一下这个项目。 首先,这个项目叫做 Ethereum ,这个名字好难念。 Ethereum 对吗?
Jan :对。 Terry :先从名字开始吧, Ethereum 是什么意思?
Jan :他应该是一个合成词吧。 Terry : Ether 应该是以太的意思。
Jan : Ether 是物理学里面的那个以太,绝对静止的存在于空间的那种物质,最后被证明为是不存在的。中文翻译成以太坊。 Terry :感觉挫了很多……
Jan :我也不知道这个坊从何而来,当时不知道是谁翻译的,总之后来大家就这么叫了,叫它以太坊。坊是红磨坊的那个坊。 Terry :那么我们先就来说说这个项目,首先大体介绍一下这是个什么项目?它为什么会诞生,它要解决什么问题?
Jan :首先第一个理由就是我们上一期说到的,比特币 script 有很多限制,上面有很多东西都做不了,所以很自然的想能不能把它扩充,把它变得更完备。但实际上,它也不算是完全的图灵完备的。以太坊它的目的是图灵完备的,但实际上它并是完全的图灵完备。它上面有一个叫 gas 的限制,这个我们可以在接下来详细聊。但是现在大家就是说它是准图灵完备的。 Terry :但是它是朝着目标去的。
Jan :但是它是朝着目标去的,而且比比特币的 script 已经强了非常非常多,能够做很多事情了。 Terry :那你上次说 Bitcoin script 没有循环?那么现在的以太,此时此刻的以太一定已经有循环了?
Jan :对,此时已经有循环了。然后第二个原因是,在以太坊出现以前当时已经有很多 Altcoin ,中文翻译成山寨币或者叫二代币什么的,就是有很多其他的密码学货币项目。但是这些项目的模式都是 fork 一个代码库,然后去改底层代码。 Terry : fork Bitcoin.
Jan :嗯,然后去实现一个功能。当时 Vitalik 就说为什么要这样做?为什么不能把功能层或者应用层给抽象出来?这样的话我们大家就不需要去 fork 了,就直接在这个平台上写程序就好了。因为 fork 是一件很麻烦的事情,你可能是一个 ruby 程序员,你不会写 C 或者 C++,那如果有这样一个平台的话,任何一个人都可以参与进来实现区块链上的功能,不是很好么。 Terry :所以这个项目听起来像是说它想建立一个平台,然后你可以在上面做一个基于区块链的应用?
Jan :对,没错。 Terry :那这么一抽想来看的话,是不是比特币也是 Blockchain 上的一个应用了?
Jan :对,实际上比特币就是实现了一个转账嘛。我发布一个请求,然后这个账簿里面 A 减掉 50 块 B 加上 50 块,这个事情在以太坊上面两句话就写完了。 Terry : OK ,那就是我要在以太坊上面建立类似一个比特币的应用是一个很简单的事情。
Jan :对,很简单的事情。而且他们现在在以太坊上正在提出一个标准,如果你想在以太坊上面写出一个 coin 出来,你的程序需要有什么样的接口。然后,它又定了另外一个标准就是一个注册表,这个注册表又有一些什么样的接口。这样一来的话,每个人都会发行自己的 coin ,而且你发行的 coin 是可以在注册表上注册的。而且因为接口是相同的,你这个程序无论是想用 Terrycoin 还是想用 Jancoin 都很方便,因为接口都是一样的。而且由于它有一个统一的接口、统一的注册表,它的钱包软件就会自带这个功能,把这个注册表上所有的 coin 展示给你。你就可以很方便的查找或者转账,就是这个钱包不仅可以转以太,而且可以转任何个人发行的自定义的 coin 。 Terry :那我做一个不恰当的比喻,可不可以是这样, Bitcoin 有点像一个人造了一个计算器。而 Ethereum 有点像一个 iPhone ,上面可以跑一个计算器的应用程序?
Jan :对!而且它现在还在尝试做一个开放的 APP store ,这个 APP Store 不是掌握在以太坊手里的,而是一个标准一个接口一个 interface 。只要你遵循这个 interface 你的 APP 就能在 APP Store 上被看到。 Terry :那我想问一下,你一说到这种 APP Store 人们就会想到苹果、 Google ,主要是想到苹果。这后面有一个很大的利益集团,我和你三七分或者怎么样,那 Ethereum 它是一个公司啊还是一个开源的项目或者怎么样,它是把握在一个公司手里的吗?
Jan :其实并没有,以太坊是有一个基金会,应该就是叫以太坊基金会吧,它是一个非营利性的组织,它没有商业的收入只能靠捐助活下去。以太坊本身实际上也是一个众筹的项目,当时 Vitalik 发起这个项目的时候也是满世界的飞去游说,让大家相信他的想法,相信他能把这个东西做出来,最后众筹了三万多个币。 Terry : Bitcoin.
Jan :对, Bitcoin. Terry :相当于那个时候的多少钱?
Jan :市值的话,相当于那个时候的一千八百多万美元。他们筹到了这笔钱才把这个项目做出来。 Terry :而且它是开源的吧。
Jan :而且它是开源的,完全开源的。 Terry :所以以太坊听起来是要建立一个为区块链编程的一个平台。
Jan :对,而且是一个公开的,开源的平台。 Terry :如果你看好区块链,你可以在上面去做基于区块链的一些事情。
Jan :没错。
Terry :我们两期节目无数次的提到了 Vitalik ,你也说是你很偶像的一个人,那能不能简单介绍一下?他是这个项目的作者是吧。
Jan : Vitalik 是俄裔的加拿大人,非常天才。他在做以太坊之前就在研究比特币了,做了一些比特币上的项目。比如说 Python 的库,实现了比特币里面的一些算法。还有一些小工具吧。他还创建了一个叫 Bitcoin Magazine 的新闻网站,这个网站在当时非常有影响力。而这个影响力在当时很大程度上是来自 Vitalik 这个人,因为他会频繁的写一些有深度有内容的文章发布在这个网站上,而这些文章很受瞩目。 Terry :所以他不只办了一个网站,自己还大量的写文章。而且他还写程序?
Jan :对,而且他还写程序。首先,他这个网站当时办的很成功,也因为他做了这么多的研究也看到了当时的一些问题有了一些想法,他当时大概只有 18 岁。 Terry : wow!几年前?
Jan :两年前 18 岁,现在大概也就 20 岁左右。 Terry :那真的是天才!
Jan :对。因为 Vitalik 访问上海的时候,有个朋友说他当场去用智商测试去测他的智商,测出来有 180 。 Terry : Vitalik 我也见过他本人两三次了,第一次是在韩国的 Bitcoin 会议,他看起来有点呆呆的。但是你看过了他写得文章,你会发现他不只是编程的天才,他写了很多话很有意思的东西,包括后来提到的有一种语言也是他自己写的。而且他对经济、共识机制也有很深的了解,不知道他读没读大学,我听说他看很多的论文,这点真的是挺厉害的。
Jan :对,他肯定是看过经济学和博弈论方面的资料。成就我就不敢说了,因为我也不是专家。而且他和其他大神有很多不同的地方,很有意思的。 Terry :是什么?
Jan :他是非常积极的参与社区的那种人,就是说比积极还积极。无论多小的一个讨论,无论多小的一个微信,他都能看到然后跑过来回答你的问题。像他那么忙的一个人他还有这种精力,觉得他很了不起。 Terry :对。据我所知这个人博客的更新非常的频繁,而且都是很有深度的文章,读下来都需要花费很长的时间更不要说他写了。然后,还自己写代码,每周还看两本书,每周还要回答各个社区的问题,还要参加各种活动。
Jan :而且更让人震惊的是他在做了这么多事情的同时,就这一两年还抽空把中文学会了。 Terry :哦,他还把中文学会了!
Jan :对,他还可以讲中文。可以在论坛上用中文回答别人的问题。 Terry : wow ,那真的是天才!年轻就是不一样!(笑)我们这帮人感觉已经老得不行了。 OK ,你也说了,这个项目是他发起的吗?他也有参与写代码?
Jan :这个项目是他发起的他也有参与写代码,他更多的项目是用 Python 去做一些概念原型,把他的思路用 Python 实现出来,其他团队就可以参照他的想法去做。 Terry :所以这个人是 Python 爱好者了?
Jan :对。 Terry :那么这样一个大神,听说他搭建 Arch 的时候都搭建不起来,是真的吗?
Jan :这个事我当时问过他,是真的。 Terry :那只能是 Arch 的问题了!
Jan :唉,我只能说是 Arch 的问题了。 Terry :他本身是用 Linux 是吧?
Jan :他本身是用 Ubuntu ?? Terry : OK ,然后是用 Python , editor 用什么你有问吗?
Jan : editor 好像是用 Vim? Terry :你都没有忽悠他用 ruby 吗?
Jan :我和他提过,他说可以,他会去看一看。 Terry : OK ,我发现在这个社区, Python 好像特别火的样子。
Jan :我觉得 Python 确实很好用,我最近正在用。 Terry :我们这里就要说一下了,虽然 teahour 没有什么对语言的主见的,但是由于各主播的一个背景,还是写 ruby 居多,还是做 web 多。我现在知道我的好朋友包括我自己在看 Python ,因为要做一些这方面的工作。所以我想问 Jan 这样的一个语言问题,就是 ruby 在其他方面的积累没有其他语言那么足,但唯独 web 这个领域, ruby 做的很不错。但是假如你选择做 web 这个领域你还是会用 ruby 。其它地方你也不排斥换一种语言?
Jan :我觉得肯定不排斥换语言,因为没有一个语言是适合所有场景的,就像我们刚才说选框架是一个道理,而且我记得以前 Terry 在做一个 ruby 的演讲的时候引用过一句话,是参差多态才是幸福的本源。当时他引用是想说明, ruby 这个语言里有很多种不同的语法, Python 里却只有一种方式,太无聊了,肯定是 ruby 好。但是退一步,高一个层次看,不同的时候用不同的语言也是一种参差多态。 Terry :我一点反对你的意见都没有!我当时在选 ruby 和 Python 的时候,看了 the zen of the python ,它里面提到说你做一件事情最好只用一种方法。我当时是认同的, 因为在工程上好像所有人都用一种代码的话,就不需要额外解释,降低了成本。但我又觉得很 boring ,不过你今天这么说我又觉得是有道理的。我是不排斥,我不是一个 ruby 的死忠粉,你知道死忠粉遇到这种情况会怎么样么?他们会说, Ruby 在 Blockchain 这个领域不流行,那我就让它去流行。那我就去写它的一个库啊或怎么样,我觉得 ruby motion 就是一个典型的例子。肯定是一个 ruby 粉做出来的,因为可能 ruby 在做 mobile 的方面不占优势,但是就有人去那么做。我是觉得 Jan 说了参差多态才是幸福的本源,这种人肯定是要有的,像那种用不同的语言的人也是要有的,都挺好的。
Jan :而且我记得去年还是什么时候流行过一个说法叫 poly-glot programmer ,就是用各种技术做程序的程序员。 Terry :对,我也很赞同这个。最近我也在看 Python 看 Go 啊,但是我不会拿他们来写 web 。
Jan : web 我肯定是用 ruby , rails 非常方便。 Terry :我是不太理解 Go 作为一个 system language 不错,但是很多人却非要用它来写 Web !当时觉得, 这个好像就是为了去证明什么一样。我是觉得没必要,我们更多的是要去放眼你要做的事情,而不是去证明一个语言能做什么。我相信他一定可以证明出来它可以做,但是是否足够好足够实用不太好说。 OK ,那我们聊回来这个项目吧。我们知道 Bitcoin 本身是用 C 还是 C++写的?
Jan : C++写的吧。
http://ethfans.org/posts/talk-with-jan-about-ehtereum
http://ethfans.org/posts/ethereum-whitepaper
http://ethfans.org/posts/yi-tai-fang-de-shang-ye-qian-neng
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.