Mixin Network Whitepaper
[译] Mixin Network(网络)
单击此处查看原文
构造一个最大的,并且对开发者友好的移动区块链网络,连接现有的所有区块链,不限吞吐量。
Contents(目录 )
- 动机
- 设计
- End-to-End 加密信息
- 基于移动端和PIN的身份标识
- XIN - Token
- 结论
1. 动机
人们对区块链和加密货币的行情了解的越来越多,但是这些尚可以称作奇特的东西还是很难有获取的渠道,甚至对软件开发人员来说,这也不是一件容易的事情。
大多数区块链项目聚焦于分布式和密钥管理,可是这恰恰是导致交易变慢、私钥丢失和难以理解的原因。而且也几乎不可能将这些分布式节点部署在移动设备或者最受欢迎的运算装置中。
尽管他们为分布式梦想而努力着,但是我们不得不提醒一下,即使是最为分散的区块链共识机制也会被最大的几个矿池控制,想想BTC的硬分叉BCH就知道了。
一些流行的分布式项目都已经(或者计划要)故意选择一些不那么“分布式”的共识算法,比如以太坊迁移到了 PoS,EOS 实现了 DPoS。这些努力可能的确是提高了交易的吞吐量,但是也仅限于此。
如今,人们仍然不得不管理一些奇形怪状的私钥,并且可能一不小心就弄丢了。矿池和大型节点任然毫不费力就可以无止境的分叉网络,虽然开发者们尽最大的努力在开发一些新的 tokens,但是人们也无法在他们的移动设备上使用这些节点。
设计
Mixin 是为了在分布式网络中找到一个平衡点和传统服务器集群,做一些权衡来把两者的优点相结合:
- 被限制和被信任的全节点,具有保护数据透明性和一致性能力
- 高吞吐量和低延迟的零知识证明和自由交易
- 使用 inter-blockchain 通信协议来连接所有的流行区块链网络
- Non-deterministic 交易,与外部受信任来源互动
- 使用基于手机号码和 PIN 码的账户模型,移动设备轻松使用
- 通过安全、end-to-end 加密消息信道来送达通知
- 开发者友好,以便推动 linux 库和开发语言的发展
- 最大移动区块链网络效应,防止分叉
为了完成这个目标,我们设计了一个独一无二的区块链模型,它依赖于 Trusted Execution Environment,共识算法主要用于保证数据响应,移动节点作为验证器来为全节点做运行认证。
如图所示,Mixin Network 的基本原理是一些受信任的全节点在 Trusted Execution Environment 中运行。
所有的全节点都是完全被信任的,因为他们可以验证别的全节点的身份,还可以通过 TEE 认证来验证他们的运行依赖的代码。
Mixin 全节点接受交易,参与网络中共识机制算法。由于存在代码验证,只有一个节点需要运行 DApp 代码来达到高吞吐量和低延迟的目的。
网络中的所有敏感部分必须在 Trusted Execution Environment 内运行,并且负责保护安全和隐私,保护数据透明性和一致性。
End-to-End 加密消息
Mixin 使用信号协议中的 sender key 来管理所有的会话,不论是直接的消息还是群组聊天。
协议基于客户端(client),所以服务端(server)只用来作为消息的代理。并且由于存在 end-to-end 加密特性,没有人可以从代理消息中看到任何东西,就算是 Mixin 全节点也不行。
会话中的所有消息一旦被合法接收者查阅,就会从服务端上永久删除。
照片、视频和所有其他的附件在上传至我们的云服务端前都使用随机 AES key 加密。之后客户端会转换所有的 meta 信息,比如 thumbnail,接收者的 AES key(使用 Signal sender key 加密)。
由于 Mixin 使用成熟的 Signal protocal 和开源库作为消息协议,我们在白皮书中不深究细节。
基于 Mobile 和 PIN 的身份
阻碍用户使用区块链的并非其性能,而是身份和账户的管理过程。
所有流行的区块链网络要求用户至少获取和管理一个私钥来保持身份,这实在是太复杂了,这与用户名和密码的解决方案比起来简直是复杂了百倍。
由于现有的所有区块链数据都是向世界开放的,所以要使用账号密码。但是这就导致用户仍然需要管理一个非常复杂的密码来保证账户安全,可以参考 BTS 和 EOS。
在此需要感谢 Mixin Network 中的 zero-knowledge 和安全的执行环境,我们得以设计出一个如此简单的身份标识方案,那就是基于手机验证码和 PIN。
人们只需要一个手机号码并且记住一个 6 位的数字 PIN 码,就可以保持一个账户存在,这比账号密码简单多了,没有复杂的私钥,却有着相似的安全等级。
在电话号码验证中传输私钥来确保电话轻松迁移,6 位数字的 PIN 码可以使用 Touch ID 或者 Face ID 来替代,这使得用户体验又上升了一个层级。
一笔经典的 BTC 交易需要 1 小时才能确认,并且小额支付的交易费也十分昂贵,而且公共区块链数据使得交易几乎无隐私。
为了克服 BTC 的问题,基于上述的身份机制下,我们设计了一个 cross-chain 交易网络,类似于 Bitcoin Lighting Network 或者 Ethereum Raiden Network 。
Mixin PIN identity 的底层技术依然是管理私钥,不过非常安全,并且借助 Mixin zero-knowledge 来使得这一切变得非常简单。
当其他区块链网络的资产来到 Mixin Network ,无论何时两个 Mixin 用户开始一笔 BTC 交易后,服务端都不会在 BTC 区块链上做真实的交易,仅仅是管理了他们在 Mixin区块链上的收益数据,这比执行 SQL 语句快多了。
XIN - The Token
Mixin 中的许多服务都把 Xin 作为唯一 token ,尤其是全节点抵押、创建 DApp、调用 API 。
加入网络成为一个全节点,至少需要抵押 10,000 XIN token 来建立初始信任。
每一个 DApp 的创建都将花费 XIN ,花费的多少由 DApp 对资源的需求量大小决定。
DApp 调用 API 花费的 XIN 数量取决于调用的 API 类型和次数。
所有平台收取的 XIN 费用都将被销毁以增加现存的 XIN token 的价值。
这意味着普通用户使用服务不会被收取费用,只有 DApp 的开发商才会被收取。不过,DApp 本身可能会向用户收费。
1,000,000 永久 XIN token 会一次性在世界上发行完毕,为了方便计算,
Mixin Messenger 主要会使用 milliXIN 作为主要的货币标志,我们缩写为 MIX ,相当于 1/1000 的 XIN 。
结论
Mixin Network 具有无限吞吐量,为用户准备了熟悉并且可以轻松使用的账户模型,可以在已知的区块链网络上使连接和使用所有货币。
除了底层 Mixin 网络,我们构建了第一个 DApp:the Mixin Messenger ,所有的代码都是开源的,给开发者们一个概览来理解如何在 Mixin 上开发。
Treat Mixin Network 是一个开放的安卓生态,把所有已经存在的区块链网络看做不同的手机制造商和国家,Mixin Messenger 作为 Google Play 的角色来为用户提供查找 DApp 的功能,为开发者提供简单的通知和支付的功能。
目前已经有接近 1,000,000 的预注册用户, Mixin Network 欢迎所有开发者加入,也欢迎他们发布已经开发完的 app 到平台中,这里的一切都是同以往一样熟悉的开发环境。