[译] 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. UVA - 10249 The Grand Dinner

    Description Problem D The Grand Dinner Input: standard input Output: standard output Time Limit: 15 ...

  2. 用泛型创建SqlServerHelper类实现增删改查(一)

    使用泛型,可以构建对数据库单表的基本增删改查. 首先有一数据库 Test_SqlServerHelper ,有2表 接下来创建项目,对数据库进行增删改查. 直接贴代码:(SqlServerHelper ...

  3. mysql并行复制降低主从同步延时的思路与启示

    一.缘起 mysql主从复制,读写分离是互联网用的非常多的mysql架构,主从复制最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重. 为什么mysql主从延时这么大? 回答:从 ...

  4. MAC系统里JDK版本切换

    1.首先安装需要的JDK版本 JDK7,JDK8则需要自己到Oracle官网下载安装对应的版本.自己安装的JDK默认路径为:/Library/Java/JavaVirtualMachines/jdk1 ...

  5. Idea在导入有maven项目时,不能自动识别pom.xml

    当在idea中导入maven项目时,不能自动识别pom文件,显示为普通橙色xml文件. 解决方法:点击最右侧侧边栏,点击添加(蓝的的小加号),选择你导入项目的pom.xml文件

  6. 写给自己的web总结——css篇(1)

    上一篇写了关于html的知识,算是小试牛刀,这次来尝试写一下css. 初步了解css css的全称为cascading style sheet-- 层叠样式表,通过编入代码来对html里的标签做出各种 ...

  7. 安装卸载selenium

    安装: C:\Users\xiongjiawei>pip install selenium==2.48.0 Collecting selenium==2.48.0 Retrying (Retry ...

  8. 配置程序成为Linux服务

    最近写了个程序需要随Linux启动时自动运行起来, 查了一些方法后, 通过配置程序成为系统的服务实现了这个需求, 在此记录一下. 测试程序 #! /bin/sh while [ true ] do e ...

  9. ES6数组及数组方法

    ES6数组可以支持下面的几种写法: (1)var [a,b,c] = [1,2,3]; (2)var [a,[[b],c]] = [1,[[2],3]]; (3)let [x,,y] = [1,2,3 ...

  10. 虚拟机创建流程中neutron代码分析(三)

    前言: 当neutron-server创建了port信息,将port信息写入数据库中.流程返回到nova服务端,接着nova创建的流程继续走.在计算节点中neutron-agent同样要完成很多的工作 ...