[译] Mixin Network(网络)

看到了李笑来老师牵头的 Mixin, 也仔细查看了 Mixin 白皮书 ,决定翻译过来

构造一个最大的,并且对开发者友好的移动区块链网络,连接现有的所有区块链,不限吞吐量。

Contents(目录 )

  1. 动机
  2. 设计
  3. End-to-End 加密信息
  4. 基于移动端和PIN的身份标识
  5. XIN - Token
  6. 结论

1. 动机

人们对区块链和加密货币的行情了解的越来越多,但是这些尚可以称作奇特的东西还是很难有获取的渠道,甚至对软件开发人员来说,这也不是一件容易的事情。

大多数区块链项目聚焦于分布式和密钥管理,可是这恰恰是导致交易变慢、私钥丢失和难以理解的原因。而且也几乎不可能将这些分布式节点部署在移动设备或者最受欢迎的运算装置中。

尽管他们为分布式梦想而努力着,但是我们不得不提醒一下,即使是最为分散的区块链共识机制也会被最大的几个矿池控制,想想BTC的硬分叉BCH就知道了。

一些流行的分布式项目都已经(或者计划要)故意选择一些不那么“分布式”的共识算法,比如以太坊迁移到了 PoS,EOS 实现了 DPoS。这些努力可能的确是提高了交易的吞吐量,但是也仅限于此。

如今,人们仍然不得不管理一些奇形怪状的私钥,并且可能一不小心就弄丢了。矿池和大型节点任然毫不费力就可以无止境的分叉网络,虽然开发者们尽最大的努力在开发一些新的 tokens,但是人们也无法在他们的移动设备上使用这些节点。

设计

Mixin 是为了在分布式网络中找到一个平衡点和传统服务器集群,做一些权衡来把两者的优点相结合:

  1. 被限制和被信任的全节点,具有保护数据透明性和一致性能力
  2. 高吞吐量和低延迟的零知识证明和自由交易
  3. 使用 inter-blockchain 通信协议来连接所有的流行区块链网络
  4. Non-deterministic 交易,与外部受信任来源互动
  5. 使用基于手机号码和 PIN 码的账户模型,移动设备轻松使用
  6. 通过安全、end-to-end 加密消息信道来送达通知
  7. 开发者友好,以便推动 linux 库和开发语言的发展
  8. 最大移动区块链网络效应,防止分叉

为了完成这个目标,我们设计了一个独一无二的区块链模型,它依赖于 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 到平台中,这里的一切都是同以往一样熟悉的开发环境。

Mixin Network Whitepaper的更多相关文章

  1. Mixin Messenger 源码解读 1 — — WCDB Swift

    Mixin Messenger 早期采用 FMDB 后来切换至 WCDB 沿用至今,一直比较可靠稳定,这里分享一下使用心得和功能扩展. 关于 Mixin Messenger Mixin Messeng ...

  2. 什么? 1XIN = 21BTC

    什么? 1XIN = 21BTC 最初看到这个标题,我还回去考证一下. 原来是 Mixin Network 的宣传广告. BTC 是多少? 2100万枚. XIN 是 100 万枚. 所以才有了 1X ...

  3. iSCSI Network Designs: Part 5 – iSCSI Multipathing, Host Bus Adapters, High Availability and Redundancy

    iSCSI Network Designs: Part 5 – iSCSI Multipathing, Host Bus Adapters, High Availability and Redunda ...

  4. Symmetrical Network Acceleration with EBS 12

    Andy Tremayne, my esteemed colleague and fellow blogger, has published a new whitepaper that discuss ...

  5. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  6. 创建 OVS flat network - 每天5分钟玩转 OpenStack(134)

    上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页 ...

  7. 在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)

    前面讨论了 OVS local network,今天开始学习 flat network. flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接, ...

  8. OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)

    前面已经创建了两个 OVS local network,今天详细分析它们之间的连通性. launch 新的 instance "cirros-vm3",网络选择 second_lo ...

  9. 再部署一个 instance 和 Local Network - 每天5分钟玩转 OpenStack(131)

    上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 ...

随机推荐

  1. 教女朋友学Python运行环境搭建

    下班比较早,吃了饭没什么事,就和女朋友一起研究了Python. 编程语言有很多,为什么选择它呢?因为它火吧,没什么好解释的,下面开始第一步,环境搭建.网上的教程实在太多,各种系统的各种版本,本地链接下 ...

  2. Ubuntu 报错 sudo: unable to resolve host

    Ubuntu 在每次执行命令的时候,会报如下错误: $ sudo sudo: unable to resolve host iZ2zecsdy8flu603bmdg1bZ iZ2zecsdy8flu6 ...

  3. (转)rabbitMQ基础知识及命令语句

    摘要: 整理rabbitmq的用户管理相关知识,备忘 安装最新版本的rabbitmq(3.3.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败. ...

  4. python_web----------数据可视化从0到1的过程

    一.数据可视化项目配置 1. django + Echarts 2. 服务器(linux:Ubuntu 17.04 (GNU/Linux 4.10.0-40-generic x86_64)) 3. I ...

  5. [100个改变摄影的伟大观念].(英)玛瑞恩.高清扫描版.pdf

    下载地址  :https://u253469.ctfile.com/fs/253469-229765365

  6. iOS voip电话和sip软电话 --网络电话

    一|介绍1.两者区别: SIP软电话与IP电话在技术上属于同一类型,只是SIP软电话是使用电脑软件实现的,而IP电话有一部分是在话机中直接写入了程序,可以通过硬件直接使用.IP(简称VoIP,源自英语 ...

  7. Python学习日记:day8-------文件操作

    文件操作 1,文件路径:d:\xxxx.txt     绝对路径:从根目录到最后     相对路径:当前目录下的文件 2,编码方式:utf-8 3,操作方式:只读,只写,追加,读写,写读...... ...

  8. 用keras作CNN卷积网络书本分类(书本、非书本)

    本文介绍如何使用keras作图片分类(2分类与多分类,其实就一个参数的区别...呵呵) 先来看看解决的问题:从一堆图片中分出是不是书本,也就是最终给图片标签上:“书本“.“非书本”,简单吧. 先来看看 ...

  9. MySQL锁总结

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/78 MySQL 锁基础 参考了何登成老师文章的结构MySQL 加 ...

  10. ArcGIS 网络分析[1.1] 创建用于网络分析用的线类型shp文件[这个太基础了吧!]

    具体的准备,在上一篇就说过了,不再赘述. 阅读本篇前,需要的预备知识是:ArcGIS创建各种矢量数据的方法,了解地理坐标与投影坐标 本篇只创建单一的线数据,至于点数据,以后进行复杂的网络分析时再添加进 ...