写在前面的话
1,本文翻译自发布在mixin.one上的Mixin英文版白皮书。
2,本人翻译Mixin白皮书没有任何商业目的,纯粹是为了自己更好地理解Mixin项目,以及帮助其他感兴趣的朋友了解项目。
3,因本人能力有限,翻译难免会有疏漏和错误(特别是牵涉到技术部分的细节),如发现明显错误请及时与我联系。请以mixin.one上的Mixin英文版白皮书为准。
4,本文欢迎转载,转载必须保留作者,公共账号信息,并保证内容(包括这段写在前面的话)完全一致。
5,感谢七哥在本文翻译过程中提供的技术支持。
最后,Mixin Messenger已经有官方下载,有兴趣的朋友可以试试看,真的好玩。
本白皮书发布于2017年12月22日
Mixin网络
创建最大和最便于DApp开发的移动区块链网络,连接所有区块链项目,超高的交易吞吐量杜绝网络拥堵
技术白皮书
目录
1.为什么要做Mixin
2.开发思路
3.点对点加密通信
4. 基于手机和PIN的账户系统
5. XIN - 代币
6. 结束语
为什么要做Mixin
到今天,人们对于区块链和加密货币的新闻已经不会感到陌生,但要真正搞懂这些“新鲜玩意儿”并非易事,即使对于软件开发人员而言也是如此。
几乎所有的区块链项目都聚焦在分布式网络和密钥管理上,而这直接导致了区块链交易缓慢,私钥丢失造成账户损失和理解上的困难。而要在移动通信设备(最常用的计算设备)上部署区块链的分布式节点也几乎是不可能的事。
尽管各个区块链项目都号称要去中心化,但我们也清楚地看到即使是最去中心化的区块链共识算法也难以避免地被几个大的矿池所控制,看看BCH对于BTC的硬分叉就明白了。
有几个很知名的区块链项目已经或者计划使用在设计上并不那么去中心化的共识算法,以太坊正从PoW转至PoS,EOS用的则是DPoS。这些努力可能提升网络性能,但也仅此而已。
用户还是要费心管理那些“该死”的私钥,一不小心就会弄丢它们造成损失,大的矿池和节点可以随意分叉,开发者千方百计增发代币,而且用户无法在自己的手机上使用节点。
开发思路
Mixin尝试在分布式网络和传统的服务器集群之间找寻平衡,使得Mixin网络可以结合两者的优点并摈弃其缺点。
确保数据透明和一致性的有限的可信的全节点
零知识证明和高吞吐量低延时的免费交易
可连接所有区块链网络的跨链通讯协议
非确定性的业务模式及与可信的外部资源的直接交互
易于手机用户使用的基于电话号码和PIN的账户模式
安全的点对点加密通信频道
开发者可以方便地使用所有Linux程序库和编程语言
最大的且永不分叉的移动区块链网络
为了实现以上的目标,我们以可信执行环境技术(TEE)为基础设计了一个独特的区块链模型,共识算法主要用于确保数据复制的一致性,移动节点也可以承担全节点的验证工作。
Mixin网络的基础是运行在可信执行环境上的可信全节点。
由于Mixin全节点可以验证其它所有全节点的身份,并在运行时间通过TEE验证它们所执行的代码,所以它们是完全可信的。
Mixin全节点接收交易信息并基于网络共识算法予以验证。由于代码已经通过验证,只需要一个节点来运行DApp代码,从而使得整个Mixin网络的高吞吐量低延时成为可能。
Mixin网络所有的重要组件必须在可信执行环境下运行以确保安全和隐私,确保数据的透明和一致性。
点对点加密通信
不管是单独对话还是群聊,Mixin使用了信号协议的发送者钥匙加密来完成对话。
信号协议是基于用户的,服务器只是信息传播中介,而且Mixin应用了强大的点对点加密技术,没有人即使是Mixin全节点也不能够审查通信内容。
经所有的信息接收方接收并读取后,信息就会被服务器永久删除。
照片,视频和其它任何附件也都会通过随机AES钥匙加密,然后再上传到我们的云存储。用户之间可以发送经发送者钥匙加密的各种信息。
Mixin使用的通信协议是很成熟的信号协议和开源的通信协议,我们在白皮书中就不详细说明了。
基于电话号码和PIN的账户
阻碍人们大规模进入区块链网络的并不是它的性能,而是它的账户管理模式。
几乎所有的区块链网络都要求用户通过私钥来获得和管理账户。相比于用户名和密码的账户模式,私钥模式恐怕要复杂好几百倍。
由于区块链数据的开放性,即使是BTS或者EOS这样使用了用户名和密码模式的区块链网络,为了确保账户安全,用户还是必须设置一个相当复杂的密码。
而Mixin网络中,由于零知识证明和可信执行环境技术的使用,我们设计了非常简单的基于电话号码和PIN的账户系统。我们的账户只需要一个电话号码和一个6位数的数字密码,这比账户名密码的账户系统还要简单,不需要复杂的私钥但在安全性方面却毫不逊色。
使用电话号码加验证码的账户模式,而不是过于复杂的私钥,让普通的手机用户可以轻松地进入区块链网络,而且只要手机支持,6位数字的密码还可以替换成指纹识别或者人脸识别,这会大大地提升用户体验。
一笔标准的BTC转账需要长达一个小时的确认时间,而且随着转账费的高企,BTC已经很难用于小额支付。而且,BTC公开的区块链数据完全无法满足交易私密性的要求。
为解决比特币的这些问题,我们设计了一个类似于比特币闪电网络或者以太坊雷电网络的跨链交易网络,但使用的是电话号码加验证码的账户模式。
Mixin PIN账户模式的底层技术依然是私钥管理,只是通过Mixin零知识可信执行环境网络变得安全易用。所以我们完全可以把它当成像闪电网络一样的智能合约,用于管理我们的比特币或者其它区块链资产。
用户把其它区块链资产转入Mixin网络以后,在网络内转账比如一个Mixin用户要转出比特币给另一个Mixin用户,这笔转账不会真实发生在比特币区块链上,而只发生在Mixin的区块链上,从而使得转账速度跟一般的SQL数据库应用一样快。
XIN - 代币
XIN是Mixin网络所有服务的唯一代币,全节点的抵押,开发DApp和调用API都离不开XIN。
一个Mixin全节点至少需要抵押10,000个XIN以建立该节点的初始信用。
开发DApp需要向网络一次性支付一定量的XIN,数量由它所要占用的网络资源决定。
DApp调用Mixin API也一样,数量由调用的类型和数量决定。
Mixin网络所收取的XIN将被悉数销毁以确保XIN价值的稳步提升。
这意味着DApp开发者需要为使用Mixin网络服务而付费,而普通用户则不需要,当然普通用户可能需要为他们所使用的DApp付费。
Mixin一次性发行数量恒定的1,000,000枚XIN,为了便于计算,Mixin网络将使用milliXIN作为主要计价单位,缩写为MIX,1个MIX等于千分之一个XIN。
结束语
Mixin网络拥有超高的交易吞吐量,简单明了的账户模式,可以连接所有的区块链网络并支持全币种的交易转账。
除了底层的Mixin网络,我们正在开发Mixin Messenger作为Mixin网络的第一个DApp和入口,而且代码全部开源,以供开发者参考。
如果把Mixin想象成开源的安卓生态系统,那么所有其它的区块链网络就像是不同的国家和不同的手机制造商,Mixin Messenger就是Google Play,给用户提供DApp的搜索和下载,给开发者提供易用的推送通知和支付系统。
拥有近百万的预注册用户的Mixin网络欢迎所有的开发者的加入。