Mixin Network Whitepaper

[译] 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 到平台中,这里的一切都是同以往一样熟悉的开发环境。

原文地址:https://www.cnblogs.com/JoiT/p/8288166.html

时间: 2024-10-10 01:09:56

Mixin Network Whitepaper的相关文章

如何用Express.js & Vue.js 创建一个用比特币支付的在线商店!

#  如何用Express.js & Vue.js 创建一个用比特币支付的在线商店! 如果你想创建一个在线商店,并用比特币等加密货币来支付,那么这里提供了一个很好的解决方案.Express.js是一个轻量级 MVC架构的Web开发框架,适用于Web服务器端开发.Vue.js是一个渐进式的前端开发框架,你可以自由选择需要的模块集成了你的项目中.Mixin Payment是一个开源的,基于Mixin Network开发的加密货币支付方案. ## 准备工作: 先安装以下依赖包!- Go lang  1

如何从头开始确定虚拟SharePoint服务器场的配置(compute resource, network和storage)

如何从头开始确定虚拟SharePoint服务器场的配置(compute resource, network和storage) 让我们来设想一下, 假设你被上级要求设计一个SharePoint场, 用于满足自己公司的需求. 那么, 你会怎么做呢? 首先, 摆在你面前的是一系列的问题: 1. 用实体机搭建还是选用虚拟机平台? 2. 我的需求究竟是怎么样的? 如果需要描述, 我可以把这份需求拆分成为几个方面的问题? 3. 我的服务器场需要怎样的拓扑逻辑(即服务器角色分配)? 4. 为我的服务器场分配多

ubuntu开机出现waiting for network configuration

ubuntu启动时,出现waiting for network configuration,waiting up to 60 more seconds for network configuration等,进入桌面后网络图标也不见了 解决方法,首先在 /etc/network/interfaces 文件里面无关的都删去,留下lo这个 然后再到/etc/init/failsafe.conf文件里将sleep59改成5或10,sleep50意思是等待59秒

Linux 性能监控 : CPU 、Memory 、 IO 、Network

一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70% 上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的 可运行队列:每个处理器的可运行队列<=3个线程 2.监控工具 vmstat $ vmstat 1 procs -----------memory---------- ---swap-- -----io---- --s

深度学习方法(十):卷积神经网络结构变化——Maxout Networks,Network In Network,Global Average Pooling

技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 最近接下来几篇博文会回到神经网络结构的讨论上来,前面我在"深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning"一文中介绍了经典的CNN网络结构模型,这些可以说已经是家喻户晓的网络结构,在那一文结尾,我提到"是时候动一动卷积计算的形式了",原因是很多工作证明了,在基本的CNN卷积计算模式之外,很多简

qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method

最近在做一个网络音乐播放器时,由于出现qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method, 而不能播放网络歌曲. 上网搜了半天,都说要在电脑那里安装openssl,然后把C:\OpenSSL-Win64\bin下的libeay32.dll和ssleay32.dll拷贝到D:\Qt\Qt5.4.2\5.4\mingw491_32\bin, 然而并没什么卵用! 我的解决办法是: Qt的这个目

bzoj1834: [ZJOI2010]network 网络扩容

努力看了很久样例一直过不了...然后各种输出中间过程啊巴拉巴拉弄了1h,没办法了...然后突然想到啊原来的边可以用啊为什么不用...于是A了...感人肺腑 #include<cstdio> #include<cstring> #include<queue> #include<iostream> #include<algorithm> using namespace std; #define rep(i,n) for(int i=1;i<=n

linux 6.x network device not active

[[email protected] Desktop]# service networkrestart Shutting down interface eth0: Error: Device\'eth0\' (/org/freedesktop/NetworkManager/Devices/0)disconnecting failed: This device is not active [FAILED] Shutting down loopback interface: [ OK ] Bring

centos linux中怎么查看和修改计算机名/etc/sysconfig/network

centos linux中怎么查看和修改计算机名 查看计算机名:在终端输入hostname 修改的话 hostname +计算机名(重启后失效)要永久修改的话要修改配置文件/etc/sysconfig/network修改hostname=你要改的名字