标准共识评级|BCN 字节币代码质量差,先发优势尽失
北京时间 2018 年 11 月 15 日,标准共识发布针对区块链项目 Bytecoin(Token 符号:BCN)的一般投资风险评级报告。以下为报告的主要内容。
Overview 概述
报告将 Bytecoin 风险等级定义为「D」,该项目属于「极高风险」水平,投资风险极大,需要投资者警惕。
依据「标准共识一般项目投资风险评级标准(初创期)」 获得「D」评级的主要原因是:项目代码错误较多,可维护性较差;在匿名币市场失去了先发优势,应用范围较少;存在项目方预挖嫌疑;目前流通性风险高,被操控风险高。
基于标准共识分析师团队调查和研究,项目主要风险及优势在于:
项目主要风险
风险点 1
项目代码没有相关注释,且较多的错误与警告都未解决,不符合软件工程规范且代码可维护性差。
项目相关代码质量较差,Github 的较多代码均没有相关的注释,难以阅读,在其 src 与 tests 目录中存在较多的错误和警告都未解决,该项目开发规范性差,基本无可维护性。
风险点 2
项目在匿名币市场中失去了先发优势,基于市值排名和应用情况,所占据的市场份额较小。
Bytecoin 是最早发行的匿名货币,但是官网列示其目前所支持的应用商家仅有 19 家。而 Monero、Dash、 Zcash、 Verge 等目前的应用范围都较广。 不管基于市值还是应用范围,Bytecoin 都已失去了其先发优势。
风险点 3
项目 Token 2014 年已产出超 80% ,曾遭门罗创始人指责称项目方或预挖。
Beytcoin 2014 年就有高达 80% 的 Token 被挖掘,且初期挖矿需要访问暗网的技术实力,Bytecoin 被指责有预挖的嫌疑。
风险点 4
流通性风险高,被操控风险高,项目可能存在信息欺诈风险及预挖情况,近期被 Binance 交易平台下架,恐慌情绪尚未完全释放。
项目主要优势
优势 1
采用 CryptoNote 技术实现交易的隐私性,匿名性较强。
Bytecoin 采用 CryptoNote 技术,通过不可链接的公钥和无法追踪的环签名,实现了比特币交易中无法实现的隐私性。在其交易过程中,一次性环签名使得用户不必披露其交易金额和交易地址,仅靠部分信息就可实现匿名性。即使已经参与交易的用户也难以获得参与交易的相关信息。
以上为项目主要风险点和优势,以下为完整报告。
如果任何项目方对标准共识的评级结果有疑问,或对相关数据提出申诉(包括但不限于项目运营数字、重要团队成员变更原因、代码更新和最新交易表现等),标准共识分析师团队会根据材料的真实性重新评估。
如果标准共识分析师团队在调查过程中使用了错误材料而影响评级结果,或任何项目变动可能导致评级等级变动时,标准共识也会重新调查和评估风险等级。
任何项目方、利益相关方和投资者可直接通过以下途径与标准共识获得联系:
微信:「标准共识」ID:SNCrating
邮箱: [email protected]
Rationale 依据
产品和技术模块
市场及产品分析
Bytecoin 是一个通过 CryptoNote 技术实现完全匿名的项目,同时满足了无法追踪和不可链接的目的。
Bytecoin 具有以下特点:
不可跟踪的交易
BCN 采用快速方案 EdDSA 作为项目的基本签名算法,与比特币的 ECDSA 一样,它基于椭圆曲线离散对数问题,因此项目设想该改进的方案将来也可以应用于比特币。
在该签名算法中,设置了不同的私钥和公钥:
private ec-key 是标准椭圆曲线私钥:数字 a∈[1,l - 1];
public ec-key 是一个标准的椭圆曲线公钥:一个点 A = aG;
一次性密钥对是一对私钥和公钥密钥;
私人用户密钥是两个不同私有 ec 密钥的对(a,b);
跟踪密钥是私有和公共 ec 密钥的对(a,B)(其中 B = bG,a = 6 = b);
公共用户密钥是从(a,b)导出的两个公共ec密钥的对(A,B)。
不可链接的交易
与比特币交易转移不同,Bytecoin 提出了另一种解决方案,允许用户发布单个地址并接收无条件和无链接的交易。每个 CryptoNote 输出的目标(默认情况下)是公钥。
这个公钥的数据来源于收件人的地址和发件人的随机数据。相对于比特币来说,此解决方案的的主要优势就是每个输出密钥都是唯一的(除非发件人的交易给同一个收件人,所有的目标公钥采用相同的数据)。
只有用户知道自己钱包的余额、接收方,还有交易历史等信息。
上图示例中,当 Alice 对 Bob 发起一笔交易时,交易过程为:
1)Bob 公开了他的地址,Alice 解包地址并获得 Bob 的公钥 (A,B)
2)Alice 产生一个随机数 ,并根据获得的 Bob 的公钥以及产生的随机数计算出一次性公钥 P=H(rA)G+B
3)Alice 使用 P 作为输出的目标密钥,并且把交易中的 R = rG(Diffie-Hellman交换的一部分)。请注意,她可以创建具有唯一公钥的其他输出:不同的收件人密钥(Ai,Bi)意味着不同的 Pi,即使是相同的 r。
4)Alice 发起交易
5)Bob 检查其私钥下通过的每笔交易并计算 P 值,判断 Alice 的 P 值是否在 Bob 所计算的 P 值中
6)Bob可以恢复相应的一次性私钥:x = Hs(aR)+ b,因此 P = xG。
他可以通过使用 x 签署交易随时使用此输出。
一次性环签名
基于一次性环签名的协议允许用户实现无条件的不可链接性。
一次性环签名包含四种算法:(GEN,SIG,VER,LNK):
GEN:获取公共参数并输出 ec 对(P,x)和公钥 I
SIG:接收消息 m,集合 S
0 个 公钥 {Pi} i6 = s,一对(Ps,xs)并输出签名 σ 和一组S = S
VER:接收消息m,集合S,签名σ并输出 true 或 false。
LNK:取一组 I = {Ii},一个签名 σ 并输出 linked 或 indep。用户所生成的签名由一组公钥而不是唯一的公钥检查。签名者的身份是与所有者生成之前公钥在其中的其他用户无法区分,直到签名者使用相同密钥对产生第二个签名。
CryptoNote 交易
通过不可链接的公钥和无法追踪的环签名,Bytecoin 实现了比特币交易中无法达到的隐私性。CryptoNote 要求用户只用存储一个私钥(a,b)和发布(A,B)以开始接收和发送匿名事务。
在验证每个事务时,用户还仅执行两次椭圆曲线乘法和一个额外的输出以检查交易是否属于他。对每一次输出,用户可以恢复一次性密钥对(pi,Pi)并将其存放在他的钱包里。通过环签名,用户可以有效地隐藏其他人的输入,所有可能的交易将是等概率的,即使是之前的交易对象也没有更多的信息。
标准共识分析
Bytecoin 是首家将 CryptoNote 技术应用于自身安全基础设施的加密货币。链上发生的每笔交易均不显示交易者的地址,交易者的支付行为完全匿名。
目前区块链项目中采用 CryptoNote 技术的有 Monero。Bytecoin 在 2012 年便提出采用 CryptoNote 技术,并发行了其 Token。而 Monero 是在 2014 年启动的,采用的 CryptoNote 技术相对来说已经成熟了。下图是 Bytecoin 和 Monero 的对比:
目前区块链市场中存在多种匿名货币,主要代表有 Dash 、Zcash、Monero,这三种匿名货币目前占据了匿名币大部分的市场。同时也存在一些小币种,如 Verge、 Zcoin 等。不同的匿名货币采用的匿名技术不同,各自所展示的优势也不同。
以下对几种匿名币进行对比:
根据表格对比分析可知,Bytecoin 是最早发行的匿名货币,但是官网列示其目前所支持的应用商家仅有 19 家。而 Monero、Dash、 Zcash、 Verge 等目前的应用范围都较广。即 Bytecoin 已经失去了其先发优势,不管从市值还是应用范围来说,并没有在市场中占据较大的份额。
技术分析
技术介绍
Bytecoin 采用 CryptoNote 技术,对普通的环签名确认机制做了改进,基于一次性签名机制实现交易的匿名性。
一次性环签名
基于一次性环签名的协议允许用户实现无条件的不可链接性。
一次性环签名包含四种算法:(GEN,SIG,VER,LNK)
改进的 PoW 机制
通过新的 PoW 机制实现缩小CPU(大多数)和GPU / FPGA / ASIC(少数)矿工之间的差距。采用了 scrypt 的算法,很好地作为部分哈希转换问题中的定价函数,例如SHA-256 比特币。
将 GPU 矿工的效率提高了大约 10 倍,同时也为创造便宜但高效的采矿设备提供了可能性。scrypt 结构本身允许在内存大小和内存之间进行线性权衡。调整参数
挖矿难度:CryptoNote 包含一个定位算法,可以改变每个块的难度。当网络哈希值急剧增长或缩小时,可以减少系统的反应时间,保持恒定的块率。
区块大小限制:用户支付存储区块链的费用,并有权对其大小进行投票。每个矿工处理平衡成本和费用之间的权衡并设定自己的权衡,用于创建块的软限制。
超额惩罚:一个矿工仍然能够将一个充满自己的零费用交易的区块填充到最大值尺寸 2 Mb。对于这样的矿工引入了惩罚:
功能评测
区块浏览器:
区块浏览器地址:https://explorer.bytecoin.org/?_ga=2.217925910.1442325800.1542154780-1096145556.154
在区块浏览器中显示了区块高度、挖矿难度、区块大小及交易的哈希值
钱包:
MAC 版本下载安装之后,一直在连服务器,无法成功连接。采用 VPN 的方式,排除网络防火墙影响情况下,仍然是无法打开,不清楚是不是其服务器已经停止运作,还是有其它 BUG 问题。
移动端:只有 Android 版本
主程序安装部署测试
需要安装的 C 环境依赖比较多,在 Ubuntu16 上部署测试比较顺利。使用情况:
在没有提交交易的情况下,自动出块高度到 249,976 时,进程崩掉,原因是一个 double free or corruption。目前它的开源版本只能暂且运行起来,一旦稍微运行时间久了就比较容易崩溃,处于不可用的 Beta 阶段。重启之后尝试恢复,依旧报日志无法写入的错误。主程序表面上结果是运行不稳定,如下图:
跟现在主流链相关的项目使用容器 Docker 来部署环境,而且采用自动脚本部署,环节依赖还是较多,项目部署的上线方式还是几年前比较陈旧的方式。
GitHub 代码质量评测
Github 的项目相关源码使用 C++ 语言实现,除了相关 API 文件添加了一些注释,其余具体功能实现代码部分基本没有注释,阅读源码很困难,而且无相关技术文档,通过官网查询相关文档,有的文档网页无法打开。
源代码中包括了日志处理模块、P2P 传输模块、加密算法模块(包含 PoW)、钱包等模块,能够完整的实现一个区块链功能,包括节点之间的信息传输、区块链中链的数据结构等等,代码中都有体现,作为一个链的基本功能模块已经齐备。
该项目主要创新算法采用的是 CryptoNote,此算法是一个开源项目,GitHub 上也有该项目,源码都是公开。该技术主要有如下几大特点:环签名实现匿名支付,交易无法追踪、更加公平的 PoW 算法、智能调整区块链参数。目前基于该技术的数字货币除了 BCN 外,还有XMR、AEON、BBR、FCN 等。通过查看源码,基本直接套用的 CryptoNote,所以其算法是具有可实现度的。通过查阅起官网、社区等社交媒体,目前没有查询到其锁仓计划相关资料,而且该项目目前也没有发现有智能合约相关功能。
代码质量工具分析
借助业界常用的静态代码分析工具,对 Bytecoin 代码的 src 目录和 tests 目录,进行静态分析。其结果很不理想,理论上是 error 的问题一般是必须要解决的,如果一个项目能有上千的 error,其团队的开发工程化能力差,所以前面测试的直接崩溃现象也是可以理解的了。统计结果如下:
src 目录代码文件 104 个,发现 error:2,366 个
tests 目录代码文件 8 个,发现 error:10 个,warn:383 个
(注意:由于检查软件自身缺陷和规则限制可能会有漏侧和误报现象。)
标准共识分析
Bytecoin 采用 CryptoNote 技术实现解决比特币转账的匿名性问题,旨在是提供私密、不可追踪的加密货币和个人隐私的清晰解决方案。该技术目前已经开源,因此具有一定的代码可实现度。
主程序部署比较顺利,但存在运行达到一定的区块高度直接崩溃的现象,因此目前其 beta 版本测试结果比较不稳定。
代码质量较差,GitHub 的较多代码均没有相关的注释,阅读较困难,在其 src 与 tests 目录中存在较多的错误和警告都并未解决,不符合软件工程规范且代码可维护性差。
Token 生态系统
Bytecoin(BCN) 是第一个基于 CryptoNote 加密技术所开发出的加密 Token 项目,项目自 2012 年 7 月发布,发行总量为 184,470,000,000 BCN,流通数量为 183,890,481,254 BCN,目前几乎全流通。
挖矿信息如下:
Token 主要用途
BCN 作为一种支付 Token ,主要的用途为充当支付结算的货币。Bytecoin 项目官网列示了目前支持使用 BCN 进行支付结算的部分商家。
官网列示部分商家截选如下图:
共识机制
Bytecoin 采用的是 PoW 的共识机制,使用 CryptoNight 算法,出块时间为 2 分钟。改进的 PoW 工作证明算法,主要目标是缩小 CPU (多数)和 GPU/FPGA/ASIC (少数)矿工之间的差距,保持挖矿的公平性。
BCN 的出块奖励主要根据当前的 BCN 总量动态改变,出块奖励 BaseReward=Msupply-A2 的 18 次方,MSupply=2 的 64次方-1,A 等于已产出 BCN 的数量。
Bytecoin 矿池情况如下图:
标准共识分析
Bytecoin 所有的 Token 都由挖矿产生,通过 CPU 挖矿与通过 GPU 挖矿有同样的效率次序,BCN 也是抵制 ASIC 的。任何人用一台普通 PC 就可以挖掘 BCN,具有平等挖矿的特性。但是其 2014 年就有高达 80% 的 Token 被挖掘,且初期挖矿可能需要能够访问暗网的技术实力,Bytecoin 被指责有预挖的嫌疑。
BCN 目前的应用范围较小,比较同类 Token 的支付生态发展,Dash 已经支持超 3,000 家商户渠道,Zcash 和分叉自 Bytcoin 的 Monero 也已分别支持 50 和 130 家以上的支付渠道。Bytecoin 相较之下发展的时间更长,但生态发展明显滞后主要的市场竞争者。
社群基础
用户社区
Bytecoin 项目用户社群建设覆盖较广,项目建立了多国语言的电报群,以及意大利和西班牙语言的 Facebook 网站。Twitter 关注量较多,发布推文及回复数为 2,620,但粉丝互动较少。
Google 趋势
根据 Google 趋势,目前搜索「BCN」的热度较高的地区为安道尔,其他地区依次为佛得角、西班牙、尼加拉瓜、瑞士;相关搜索主题存在区块链及加密数字 Token 相关。
下图为 Google 趋势截图:
开发者社群
官方的 GitHub 主页有 3 个库,主要的库是 bcndev / bytecoin ,该库有 59 个 Watch、153 个 Star、125 个 Fork、26 个 Commits、1 个 Branch、18 个 Releases、2 个 Contributors。
标准共识分析
Bytecoin 项目整体代码提交活跃度较差,在 11 月 13 日 CryptoMiso 12 个月指数代码提交次数中排名第 653,一共 3 个 Commits。
参考标准共识微信小程序 SNC 代码更新排名数据,Bytecoin 近 90 天提交代码总行数 50,172,排名 95;可执行代码行数 46,250,排名 93。排名与 CryptoMiso 出现较大反差,可能的原因为推断为开发方式不同,单个开发者单次提交大量代码。
团队分析
根据官方的最新公告,团队的任职信息如下:
标准共识分析
官网公布了部分团队成员,但团队成员介绍简略,团队成员具体信息较难获取。Bytecoin 创始团队和 Cryptonote 团队存在一定的联系, 可能 Cryptonote 团队部分成员参与了 Bytecoin 初始的开发。
Bytecoin 社区负责人 Jenny Goldberg 公开介绍,团队目前有四个全职的 C++ 程序员,若干个专职于其他领域的程序员,一个密码学专家和一个社区管理员。
从实际项目的发展情况来看,存在管理不够高效或者实际投入人员并不多的情况,Bytecoin 作为一个发展多年的项目,目前的现有开发实力存疑。
治理结构
基金会
标准共识查找公开资料,未获悉 Bytecoin 项目基金会相关信息。
标准共识分析
Bytecoin 项目没有建立项目基金会,标准共识就此向项目官方中文网站所列的微信联系渠道求证,得到回复如下:
此外,Bytecoin 相关治理结构和项目运营的信息没有详实的信息披露,项目宣称为分布式治理,但相关治理信息透明度不高。
项目履约情况
根据项目官方披露, Bytecoin 2018 年的路线图如下所示:
标准共识分析
通过 GitHub 上项目开发代码的提交和版本更新说明,可以看到 2 月 6 日和 2 月 19 日提交了两个 Beta 版本,3 月 22 日发布了正式 release 版,8月 18 日上线测试网络,8 月 31 号发布了 v3.3.0 的硬分叉版本。
按照 roadmap,查看相关的源代码,路线图规划完成相对比较准时,代码完成度上来看,预期功能也实现,只是从实际代码质量分析来看,代码质量不够好。
项目信息披露义务
官方开设了多个社交渠道公布项目信息。Twitter、新闻电报群以及 Reddit 中更新信息都比较及时。
官网公布了部分团队成员,但团队成员介绍简略,团队成员具体信息较难获取。
项目公布了 2018 年的路线图,路线图分为开发和市场推广两部分,对于本年度的主要任务规划有清晰地时间点设置。
Bytecoin 项目的信息披露渠道中有较为频繁的进行项目开发进度披露,但没有建立常规的周报等信息披露机制。
Bytecoin 项目区块浏览器功能较为简略,目前仍处于 Beta 版阶段。
标准共识分析
Bytecoin 在信息披露方面的工作完成度较为一般,没有建立周报信息披露机制,信息披露内容质量不高,团队成员介绍详细信息缺失。
此外,由于项目隐私类 Token 的特性,挖矿与 Token 分配信息透明度较低,此处存在一定风险。
交易模块
价格表现
近一个月的全市场平均换手率为 0.26%,最低换手率仅为 0.09%,二级市场 BCN 的交易处于低迷状态,流通性风险高。
持仓分布
BCN 并未公布持仓地址占比,目前 BCN 的流通量占比为 99.78%。其中 80% 的 BCN 在 2014 年之前就已经被挖出,存在团队预挖的可能,或者存在筹码过度集中的情况,整体而言价格被操纵风险极高。
市场表现
从 Coinmarketcap 的全市场走势图来看,登陆交易平台前期成交额低下,价格波动平缓。2017 年末价格和成家量集体井喷式爆发,但之后形成了量价背离走势,价格方面一路走低,流通性风险逐步凸显。并且 2018 年 5 月成交量异常放大,不排除人为操控价格和成交量行为,具有较高被操控风险。
最后来看 Binance 交易平台的 BCN,2018 年 5 月 8 日 BCN 登陆 Binance 交易平台,仅一天之后 Binance 交易平台暂停 BCN 充值,并且在 2018 年 10 月 9 日被 Binance 交易平台进行了下架处理。而 BCN 价格也是在 5 月份上线 Binance 交易平台时出现大幅上涨,涨幅超 32 倍,之后价格迅速回落。Binance 交易平台暂停充值是有由于大部分钱包不可用,转账缓慢,据此推断可能存在人为制作虚假交易量、操控价格的风险。
综上所述,流通性风险高,被操控风险高,项目可能人为制作虚假交易量、操控价格的风险和预挖可能。
Rating Action 评级结果
「D」,该项目属于「极高风险」水平,投资风险极大,需要投资者警惕。主要依据是:
项目代码错误较多,可维护性较差;在匿名币市场失去了先发优势,应用范围较少;存在项目方预挖嫌疑;目前流通性风险高,被操控风险高。
感谢代码评审团成员 阮安邦 对本文中「技术分析」部分作出的贡献。此为阮安邦第一次参与技术评测。
免责声明:
标准共识提供的「风险评级」服务和其它一切相关评级产品仅是一种投资风险的提示,是标准共识根据调查和研究结果得出的结论。它并非衡量评级对象本身价值、以及其发行的 Token 的价值的工具。
标准共识的风险评级仅是对特定风险的提示,而无法展示一个项目或一种虚拟货币的全部风险。
任何一个风险评级报告都仅展示某个时间范围内对项目和其 Token 生态未来的投资风险预期,而非对未来某个事实确定发生的判断。
对任何项目的风险评级不构成投资者作出最终投资决策的全部依据。
标准共识仅是金融信息的提供者,评级类产品不对投资者的任何投资决策及其所导致的结果负责。
风险评级不是永久有效的,项目的投资风险等级可能随着时间、环境因素和项目进展等外部环境的变化作出调整。同时,评级标准调整也可能会造成项目风险等级变化。任何调整和原因都会向所有投资者公开。
在标准共识的评级体系下,我们按照不同的等级对评级对象的投资风险划分,用「S」「A+」「A」「B+」「B」「C+」「C」「D」等符号,由低到高依次表示其投资风险等级,展示一种相对的风险。