阅读时间:10分钟
美西时间1月30号下午,比特币在短暂跌破一万点后持续停留在一万这个心理价位。2月1号上午,由于印度政府已降下屠刀等因素,比特币终于跌下了1万。整个加密货币市场的持续下跌应该已经给许多投资者上了一课。在二级市场不太景气的背景下,一级市场又如何呢?
抱着这样的疑问,原味区块团队开始了对全球市场上的IC0(Initial Coin 0ffering)项目进行了调查。
仅从coinmarketcap给出的数据上来看,截止发稿,市场上一共有1508种加密货币可以交易,其中155种加密货币是在一个月以内刚刚上市的,约占10%。
同时,在这1508种货币里,只有895种货币是能够被挖掘的,也就是说将近一半的货币要么处于(pre)IC0的阶段,要么就是出于技术、团队、市场等原因而暂时无法挖掘。
仅从这一点数据上来看,一级市场的活跃程度还是相当高的。为了更加深入的了解加密货币价位(如比特币)与IC0项目活跃程度的相关性,我们将市面上1354种加密货币的代码仓库信息都抓取了下来[1]。整理了之后,不仅得到了币价和ICO项目活跃程度的联系,还得到了很多有趣的数据。
话不多说,直接上结论。
注1:因抓取时间早于发稿日,故只抓取了1354种加密货币
币价和IC0, 基本正相关
下图是从2010年到2018年每个月IC0的项目数量与当时的比特币市场价的关系图,可以明显看出当2017年6月份左右,币价突破2k-3k的时候,IC0的项目数量成直线上升。
在当我们开始思考是否所有的IC0项目的主要甚至唯一目的就是为了募集资金,身为技术人员的原味区块团队想到了分析所有已抓取的代码仓库信息。我们想问几个问题:
是否所有的IC0项目都有开源的代码?
有多少IC0项目的代码是从其他人的代码仓库里fork (复制)过来的?
每个IC0项目到底有多少commit(提交了多少次代码)?
这些IC0项目里的代码到底是什么?
下面我们用数据来回答一下这些问题。
IC0项目全都有原创代码?Nope
如下图,在所有1354个抓取的IC0项目中,蓝色的区域表示,一共有43%的项目我们没有办法找到所对应的开源代码库。这个数字可能有略高于实际,因为我们依赖了coinmarketcap里对于项目资料的介绍。但这个数字不会超出实际太多,因为我们确实在手动排查的过程当中发现了很多找不到源代码的情况。
绿色的区域表示我们肯定这个IC0项目的代码是从别的项目fork过来的,这样的项目一共占6.2%。实际的数字应该来说会比这个数字高很多,原因待会会讲到。
红色的区域表示在我们对代码库进行人工审查之后,怀疑这个IC0项目是从别的项目代码里fork过来的,比如说从Bitcoin, Ethereum, Cryptonote等等比较有名的代码库里fork过来的,这样的项目一共占5.47%。
橙色的区域表示我们认为有可能是自己从零开始写的IC0项目,一共占43.4%, 实际的数字应该低很多,原因一会也会讲到。
乍一看,市场上的ICO项目要么没有代码,剩下大部分代码库都是自己写的,只有一小部分项目fork了其他项目的代码。
这样的结论,说实话,我们自己都不信。
IC0项目有多少commit? 100个算多
为了确认我们的想法,除了看这个IC0项目是从哪里fork过来的,我们还仔细收集了每个项目的commit数量,希望以此能够对这个市场的技术水平以及对技术的认真程度有一个考量。
直接上结论:如上图,在所有745个抓取到的且有代码库的IC0项目中:
只有0-10个commit的项目占了所有项目的28.6%
只有10-100个commit的项目占了所有项目的35.2%
也就是说,只有不到100个commit的IC0项目,达到了63.8%,换句话说,市面上将近三分之二的有代码的IC0项目,只有不到100个commits。如果将没有代码库的IC0项目算上的话,我们得到了一个结论:
百分之80的IC0项目,要么没有代码,要么只有不到100个commits。
What?
如果我们将以上的数据换一种方式展示出来,我们可以得到这样的一副图。
上图展示了每一个commit的数量区间里有多少个IC0项目,以及每个区间里有多少项目我们认为是fork,怀疑是fork,以及可能是原创的项目数量。可以看到在0-100这个区间里有大量的项目,原味区块团队认为这些项目除了有项目终止,募集款没达到目标,创始团队分歧等等原因,也无法排除这些项目中的一部分有欺骗投资者的可能性。
除了统计上的结果,我们也提供了部分IC0项目的commit数量分布图,如下。
如上图可以看到,所有项目里,最多commit数量的项目是Ethereum Classic。Litecoin, Bitcoin的commit数量也排行前列。(注:Litecoin其实也是Bitcoin的代码fork,不过发生在较早期)
这里解释一下为什么之前说我们认为fork的代码库数量应该远大于6.2%,因为在统计的过程中,我们发现大多数代码库都小于100个commit,同时我们认为对这475个代码库的代码进行审查的意义不大,所以将这些代码库都算作了原创代码。
IC0里的代码到底是什么?
看了这么多的数据,这些项目IC0里的代码到底是什么呢?首先总的来说,占大头的是Bitcoin代码的fork,其次是在以太坊(Ethereum)平台上的智能合约,另外的是对Ethereum本身的fork,以及在Cryptonote以及构建在其他开源解决方案(如tendermint, fabric)之上的区块链。当然剩下还有从无到有自主开发的区块链解决方案。
在分析了745个不同的ICO项目之后,我们也发现,C++,C,Go是所有被使用最多的语言,这也交叉印证了我们以上的发现,因为Bitcoin是用C++编写的,而Ethereum是用Go编写的。之所以用Javascript的项目数量达到了近100个的原因,一种可能是该项目只公开了网站的代码。
结论
至此,我们来谈谈比特币和衍生币种之间的关系。一句话总结起来就是,比特币和衍生币合作和竞争共存。有人会认为,根据经济学里的网络外部性,在提供相同功能的多个产品中,当某一产品的用户数量增长后,其吸引力会平方级得增长,最终导致单一产品的胜出或垄断。然而,原味区块团队认为两个原因导致了纵然有庞大体量的比特币存在,市场仍然能够容纳衍生币种。
第一,币种的交换成本非常得低。不像DVD机和蓝光机器这样,用户具有相当大的切换成本,比特币和衍生货币在各大交易所均能够以较低成本进行置换。这一特点导致了加密货币存在较大流动性。其次,在较大流动性的基础上,不同加密货币提供了不同的特性,总的来讲增加了加密货币社区的完整性。最后,衍生币的存在更像是设置了一块试验场,由于衍生币的体量小,新的特性可以很快的被提出并且应用。这三点也解释了为什么为何我们需要将加密货币作为一个整体来看待,以及为何加密货币市场常常出现一荣俱荣,一损俱损的场面。
但是,加密货币的市场也存在竞争关系,其核心竞争资源就是算力。诸如莱特币和比特币,其提供的功能近乎一致,但是由于社区的分散导致算力的分散,减小了两个社区的安全性。
说了这么多,从技术上讲,我们并不认为一个好的项目就不应该是fork。恰恰相反,开源的理念就是不要重复造轮子。我们也不认为一个只有100 commit的项目就必然不是好项目。我们只是在看到了许多虚假/夸大宣传的项目之后,想通过这样的手段,帮助各位拨开迷雾,从另外一个角度看看这个市场的基础建设到了一个什么样的地步。
以下附上mapofcoin上由BTC代码分叉出来的各种衍生币一览,祝各位看官手滑的愉快。
如果想要我们抓取下来的数据, 请关注后回复“coindata”。
领取专属 10元无门槛券
私享最新 技术干货