[译] Mixin Network(网络)
看到了李笑来老师牵头的 Mixin, 也仔细查看了 Mixin 白皮书 ,决定翻译过来
构造一个最大的,并且对开发者友好的移动区块链网络,连接现有的所有区块链,不限吞吐量。
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 来使得这一切变得非常简单。