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 到平台中,这里的一切都是同以往一样熟悉的开发环境。
Mixin Network Whitepaper的更多相关文章
- Mixin Messenger 源码解读 1 — — WCDB Swift
Mixin Messenger 早期采用 FMDB 后来切换至 WCDB 沿用至今,一直比较可靠稳定,这里分享一下使用心得和功能扩展. 关于 Mixin Messenger Mixin Messeng ...
- 什么? 1XIN = 21BTC
什么? 1XIN = 21BTC 最初看到这个标题,我还回去考证一下. 原来是 Mixin Network 的宣传广告. BTC 是多少? 2100万枚. XIN 是 100 万枚. 所以才有了 1X ...
- 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 ...
- Symmetrical Network Acceleration with EBS 12
Andy Tremayne, my esteemed colleague and fellow blogger, has published a new whitepaper that discuss ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- 创建 OVS flat network - 每天5分钟玩转 OpenStack(134)
上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页 ...
- 在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)
前面讨论了 OVS local network,今天开始学习 flat network. flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接, ...
- OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)
前面已经创建了两个 OVS local network,今天详细分析它们之间的连通性. launch 新的 instance "cirros-vm3",网络选择 second_lo ...
- 再部署一个 instance 和 Local Network - 每天5分钟玩转 OpenStack(131)
上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 ...
随机推荐
- Android Library projetcts cannot be exported.
记一次比較无语的犯错,前几天我在紧急打包一个apk的时候.遇到了这样一个异常:Android Library projetcts cannot be exported. 异常提示截图例如以下: wat ...
- Spring基础知识之基于注解的AOP
背景概念: 1)横切关注点:散布在应用中多处的功能称为横切关注点 2)通知(Advice):切面完成的工作.通知定了了切面是什么及何时调用. 5中可以应用的通知: 前置通知(Before):在目标方法 ...
- spring的bean是在什么时候实例化的
如果没有特殊配置,当bean的scope为原型,也就是singleton的时候,在启动spring容器的时候完成实例化.且需要注意的是,当实例化一个bean的时候,先执行其构造函数代码,然后再执行se ...
- springmvc返回json字符串中文乱码问题
问题: 后台代码如下: @RequestMapping("menuTreeAjax") @ResponseBody /** * 根据parentMenuId获取菜单的树结构 * @ ...
- MPSOC之2——ubuntu环境配置及petalinux安装
MPSOC的linux开发需要使用petalinux,选择Ubuntu操作系统. 1.Ubuntu 1.1. Ubuntu安装 版本16.04.03 vmare版本:12.0 安装时注意选择" ...
- 图片验证码(Struts2中使用)
写在前面: 最近在项目中做了一个登录页面,用到了图片验证码的功能,所以记录一下.方便之后再有用到,直接拿来用即可.其实图片验证码的生成都是有固定步骤的,网上也有很多的例子,有的时候,如果不想深究,都是 ...
- SQL 杂活
例子一:查询两个表数据并且分页展示 select * from ( select ROW_NUMBER() OVER(order by CreateTime desc) as rownum,* fro ...
- 八张图学通JavaScript 转自52
- UIImage类方法总结及UIImage生成方法对比
http://mp.weixin.qq.com/s/A900w0Y5pGjuaB4j9Os9ww1.UIImage 生成方法的对比 Apple官方的文档为生成一个UIImage对象提供了两种方法: 1 ...
- Java之线程安全中的三种同步方式
一个程序在运行起来时,会转换为进程,通常含有多个线程. 通常情况下,一个进程中的比较耗时的操作(如长循环.文件上传下载.网络资源获取等),往往会采用多线程来解决. 比如,现实生活中,银行取钱问题.火车 ...