主持人:所以……你是如何进入 Crypto 行业的?
Andre Cronje:我基友去度蜜月了。
办公室里只有我一个人,《你离开了开普敦,再也没有人和我说话》。
我很无聊。
我好无聊。
这是所有故事的开始。
AC 的早年时光
优秀的人通常很早就很优秀。
很多人以为 AC 是典型的硅谷工程师,其实不是的。
AC 是南非白人,和 Elon Musk 算是地地道道的老乡,从 AC 居住的港口城市开普敦到 Musk 出生的比勒陀利亚,约莫 1500 公里,大致相当于上海到北京。
这两人做的事情也很是相似,连续、同时建立多个事业,and the REST is history.
AC 学的是法律,正如 Elon 学的是物理。
在泛 IT 领域,真正有所成就的大牛常常是两类人──十来岁念初中开始学习编程的 OI 党,比如王小川;又或者半路出家、兴趣驱动的程序员,比如王兴。
前一种人,做打工人的年纪就比同侪多写万行码;后一种人,往往出于兴趣驱动,会比科班的学生更为勤奋,又能有其他领域的经验。
显然,都是少年天才,都是 born to do it。
AC 和 Elon 显然也都属于后一类。
念完法律的本科以后,AC 总是开车送自己的基友去上课,顺带去学校撩撩漂亮小姐姐。
基友学的正是 CS,可惜学艺不精,只会骗分过样例,暴力出奇迹,图论只会背模板,数论只会 GCD。
AC 看看基友的教材,so easy,不就是 CRUD 增删改查,那用得着学三年。
3 年的课程,AC 用了 6 个月就毕业了。
毕业的时候,学校刚好有个讲师离职了,校长问 AC 愿不愿意勉为其难的试一试。
于是乎 AC 一个法学生,用半年时间学完了 CS 课程,顺带讲了两年课。
AC = Accepted.
平淡的生活显然束缚不住 AC 折腾的心,AC 辞掉学校的工作,去非洲最大的运营商 Vodacom 干了两年。
这一年,乔老爷子发布了 iPhone,AC 又去玩了一下移动端开发,做一些手机端底层的杀毒软件。
再接着,AC 尝试了 FinTech、金融、大数据、分布式计算、无人驾驶、高频共识......
总之,从机器遗忘到人工智障再到数据填埋、模式混淆,AC 都玩了一遍。
和普通 Geek 不同的是,AC 对金融也一样研究的很深。
而且都做的不错。
类似早年的王垠,少年天才的轻轻一句回复,就能点醒凡人的思路,改变一小撮凡人的人生。
怎么港,很多事情都是有很深的暗线的。
Born to do it, again.
进入加密货币
2017 年的南半球夏天,有一些北半球冬天的微凉。
AC 走在开普敦的大街上,踢着小石子,却不知道走去哪里。
往常这个时候,应该和好基友一起讨论动态仙人掌的十种写法或者昨天某个套利模型的回测效果,互相 D 来 D 去。
可惜好基友刚刚结完婚,去渡蜜月了。
只剩下空荡荡的办公室,和 AC 空荡荡的心。
彼时的 BTC 即将️向 $20000,我命由我不由天的梭哈老哥还要等三年才能解套。
这当然吸引了 AC,当他发现诸如比特币和以太坊之类的加密货币时,AC 非常兴奋。
因为 crypto 世界有他过去所学的一切,恰如全局最优解并不一定由局部最有解组成。
没有什么事情是白做的。
Crypto 世界既需要编程知识,有需要金融知识,至于最初的法律?
Well,您有没有听说过“Code is Law”?
是的,天选之子,born to do it.
那么,天选之子会做什么呢?
当然没有在牛市的高点我命由我不由天,AC 开始对区块链进行 code review,以自学并更好地了解技术。在媒体上发表了一段时间的评论后,他的其中一篇帖子开始风靡一时。这就是他的知名度开始上升的方式。从那里,他引起了 Crypto Briefing CEO 的注意,CEO 同学决定让 AC 成为 Crypto Briefing 的首席 Code Reviewer。
PS:Crypto Briefing 目前在做一款叫做 Umbrella 的预言机产品,可能会在一月公募。
我们欣赏一篇 AC 关于近期刚刚上线 Coinbase 的 NuCypher 项目的 code review 报告:
NuCypher Code Review by Andre Cronje
NuCypher是一个将密钥管理系统(KMS)引入区块链的项目,去中心化的系统和应用程序会因此变得更加安全。对于NuCypher代码审查,我们将以技术上的工作方式为例进行展开。
Alice有她希望能够代理访问的敏感数据;
Alice使用自己的公钥加密数据,并将其存储在云端或去中心化存储中;
Alice授权访问鲍勃。数据被重新密钥为Bob的存储密钥;
Bob下载数据并用他的私钥解密;
数据被重新密钥为Bob的存储密钥。仅使用私钥就无法进行原始签名,否则将无法重新输入密钥。那么让我们快速进入私钥和公钥的阐述。
假设我收到“ NuCypher代码审查”消息,并使用私钥对其进行加密。我会得到
0xca92b9be89c0506044cacd947f1630f271aa8c2cb97916b65487f3944245b67b5f2166ff995c605a5ae1c8ac9bd77760f1e90837545fd5be9c87c4f9bf3c71f11b
掌握以上内容的人无法对其进行反向工程。那么,这有什么价值呢?给定3个输入(公钥,哈希和原始消息),可以证明上述内容确实是由相应公钥的私钥签名的。你可以通过验证签名来确认。
因此,现在你知道我拥有被提供的相应公钥的私钥。这就是我可以证明所有权的方式。
重点是,只有原始哈希而没有原始数据,你就没办法重新键入这条信息。这就是允许多重密钥所有权准入其他密钥系统。因此,我的假设是NuCypher必须具有类似的措施,让我们开始吧。
nucypher-kms和mock-net是我感兴趣的两个,所以让我们先来了解nucypher-kms。
我们在技术堆栈游戏中拥有标准玩家,kademlia,rpcudp,lmdb(这是新的)和以太坊VM合约。
在这一点上,我意识到Umbral实际上是核心,因此我们更改为pyUmbral
非常酷,因此Alice可以通过使用Alice的私钥和Bob的公钥,创建一个新的共享密钥来为Bob生成一个重新密钥。然后,Bob可以基于此重新加密。
那么流程如下:
Alice签署数据,公开存储数据。鲍勃想要访问,并使用他的公钥向Alice请求访问。Alice创建了一个新的配对(不是技术上的,而是为了简单起见保持这种方式),然后Bob可以用他的私钥解密数据。
除非一方当事人从其终端披露,否则永远不会被公开披露传输中的数据。我喜欢它,接着往下说。
返回nucypher-kms:
好的结构,好的注释,好的封装。到目前为止,我喜欢它布局和内容。
这很棒,他们在所有代码中都保留了Alice和Bob主题,在每个函数之前添加了用户故事,并且使函数调用保持特定性,例如上述from_alice,并使用bob作为参数来在两者之间创建策略。这是为了考虑其他读者而编写的代码,我没怎么见过。
REST服务器具有一些基本端点,没有多余的花哨。
使用sqlite的本地存储。 REST功能稳定可靠,并不断发展。
另一个不错的实现是p2p节点群。节点可以加入并被要求存储加密数据。
在节点上很好的直接实现了。
到目前为止,我们已经有了Umbra实施方案来允许重新加入,已经实现了允许在两个参与者之间订立合同的基本策略,并且为节点之间请求存储提供了基础。
让我们看一下区块链方面的内容:
是时候加入一些智能合约方面的好东西了。Escrow contract。
首先需要了解PolicyManager,看一下它。
仍然不确定PolicyManager的功能,它既是存储策略又是权益策略,两者都有。我会参考白皮书。
MinerEscrow,不会因行为不当而大幅度降价。这是既得利益,而不是赌注,因为没有任何风险。对于矿工来说,这仍然是一份不错的行权合约。
因此,启动一个节点,提供重新加密周期,质押一个节点所需的最小代币存量,并因活动受到奖励。代币经济似乎有点被迫,但如今这是奖励类似于这种人的标准,所以接着说。
NuCypher代码审查结论:
很好的代码,强大的体系结构,所有核心用例均已得到证明。这是具有高素质技能的可靠实施方案。它使用标准,“激励人们通过以代币形式支付费用来提供CPU /存储/网络”的理念,抵押(归属)和代币经济性似乎被推到了解决方案之上,而不是它的自然组成部分,但我对这种方法没有任何基本问题。去中心化毕竟又是另一回事了。
不是区块链,而是一个新颖的想法,是否真的需要去中心化的Dropbox,加密过的 Slack或患者控制的电子健康记录?不知道,但这是很好的代码。
(第一节完,待续,灵感来源于 FTX Podcast)