说一说Mixin



  • 真没有想到PRESSOne会开始玩起论坛这么“前现代”的东西,来尝尝鲜啦。就从我进入区块链世界印象最深的一个软件说起吧:Mixin Message 我一直想聊一聊它,但是又害怕聊不好。现在不怕啦,论坛本身是一个容错性稍微高一点的地方啦,即使聊的不好,因为记录的公开可见, 后面总有自我修正和被修正的机会。

    加上最近的一个星期,重新看了看Mixin最新发布的白皮书,正好梳理一下自己的理解。不当之处,还请各位看官和大神多多包涵。

    为避免被喷,我还是先列一列ONEDev论坛上有关MIXIN的帖子,好事者可以顺着过去瞄一眼,再回来看我这个。当然顺着过去,不回来也没啥。

    1. mixin白皮书读后感(上):沿着中本聪的路线,前进!
    2. Mixin Development Resources and Documentations
    3. PRESS.one团队回答社群疑问——为什么底层链改为mixin了
    MIXIN 和MIXIN Message

    大多人知道Mixin是通过Mixin Message ,我不例外。刚开始进入数字货币的世界,我根本不知道该用什么钱包,在哪里购买,后来知道了Imtoken,火币,Bigone。依稀记得,第一次用钱包的时候,经过一系列的KYC认证之后,还不停提示我要把助记词抄在之上,这样保存的数字资产才最安全,我照做了(哦,不要问我那张抄有助记词的白纸在哪?我什么也不知道。)当时还告诉自己不要怕麻烦,进入新世界总是要有点门槛的。现在在熊市回过头来瞄一眼,好希望当时没迈过这个槛,哈哈。

    我应该是在PRESSOne的拓荒者社群知道MIXIN的,对,不怕说,作为一个新韭菜,我那时还不知道电报群什么,也不会翻墙,社群和星球的消息是主要的信息来源,顺带一说,当时怎么就没有找到一个什么论坛来解决自己入门的问题。

    第一次用Mixin,什么感觉?就是很惊奇,哦?是一个加密聊天软件。哦?还有钱包功能。哦?只用记住一个6位数密码?哦?密码还不能忘。翻开通讯录一看,500多人的手机号,零星还有3个人好像也开通mixin,当然加加加。就是惊喜,好奇,还有流畅。当然就跟之后的子弹短信让我兴奋一阵就失去好奇一样,我没怎么用了。不久之后,我就知道了EXin。这事儿让我直接把手机里面只存在了一个钱包Mixin,对于我这样刚毕业的大学生而言,没有那么大交易量,偶尔用EXin投点零花钱做做定投还是很舒服的呀。

    好了,个人的这点小事儿说完。总结一下,我不知道Mixin Message 会不会是一个杀手级的应用,会不会链接整个区块链世界,后文中将要谈到白皮书的很多技术方面的词汇,我也还并没有深刻的理解,但是作为一个刚刚接触区块链世界数字资产的小白而言,我相当喜欢这个应用,自此以后,手机应用中再无火币和Imtoken,记有助记词的白纸,也是前尘往事。

    啰嗦了好多,滑入正题。对于大多在这个时点来OneDev论坛的人而言,应该知道MIXIN NETWORK和MIXIN Message 是两个截然不同的东西。不知道自动翻回前面的链接瞄几眼再回来。简单来讲,Message 是这个网络的第一个应用,在其之上,还有独立的应用,例如Foxone,PRESSOne,还有很多类似小程序的机器人的,比如EXin,这里面链一个MIXin上的应用列表:,体会一下就OK。

    对于我而言,理解应用并不是那么难,但是要理解底下的网络到底是个什么东西,还是有点难度的。我平生第一次看白皮书,看的不是比特币的白皮书,而是mixin的白皮书,当然当时,我完全没看懂。

    先从白皮书里面这些陌生的词汇说起,看我能不能先把这些词汇说清楚,然后再能拼凑一下一个稍微完整一点的认识。BTY:欢迎即使纠错指点。

    Kernel

    先抛开白皮书中开头一顿对比特币和以太坊的数落和远大愿景,因为这些,我大概还能看懂。先谈一谈所谓Kernel这个词,一般翻译成内核。维基百科里面有多种含义,是一个操作系统的核心,我一直不是特别理解,mixin 和操作系统有什么关系。放下不说,其实在白皮书里面,对于Kernel有一个很清楚明白的定义:MIXIN网络的核心就是MIXIN 内核,一个快速的基于ABFT的DAG,它用有限的内核节点来处理UTXO。(The core of Mixin Network is the Mixin Kernel, a fast asynchronous Byzantine fault tolerant directed acyclic graph to handle unspent transaction outputs within limited Kernel Nodes。)

    我们把ABFT ,DAG ,UTXO ,NODES 这几个词先弄清楚,应该可以对这个所谓的网络内核的理解深一些。

    asynchronous Byzantine fault tolerant

    简称A-BFT,异步拜占庭容错技术,正如白皮书所言,MIXIN并没有发明什么新东西,BFT是一个已经相对成熟的技术,EOS中有用到,NEO有用到,我们可以先看一看论坛中另外的两个帖子是如何讲解BFT的:

    《看懂“拜占庭容错”,也就看懂了区块链的核心技术》
    [区块链] 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)

    大致上可以这么理解:BFT是众多共识算法(consensus algorithm)中的一种,与之类似的还有比特币和以太坊的PoW,MIXIN所使用的ABFT技术,之前也已经在EOS的项目中得到了使用,EOS之所以号称可以达到百万TPS,也是因为在DPOS的基础上加入了ABFT技术。

    区块链之所以有潜力带来巨大的变革,一个比较重要的原因就是它用技术和算法达成了去中心化条件下的信任问题,为了达成这一点,比特币用了非对称加密,哈希算法,还有一个重要的的部分就是共识算法——工作量证明。

    今天大概写到这,先回去再补下课,白皮书里面还有好几个我没有理解的关键词,后续再来补充如前所说,论坛的好处,就是可以随时在盖楼讨论和修正,抛转引玉,PRESSOne的论坛上应该少不了Mixin的死忠粉,欢迎各位大侠指路。江湖路远,咱们楼上楼下握个爪。

    PS:那些我还没有完全理解的陌生词汇:

    directed acyclic graph、unspent transaction outputs、Kernel Nodes、one time key derivation algorithm、Trusted Execution Environment、Mixin Domain、Domain Extensions、JSON-RPC interfaces



  • MIXIN Message 用起来确实丝滑,不提醒都会让人感觉不到是区块链产品,这也应该是mixin的目标,让人人都能低门槛的使用区块链产品。


  • administrators

    其实比特币也没发明什么新东西,一样是把已经有的东西通过非常巧妙的方式组织到一起,使之成为了一个完整系统。



  • @八师 八师,我发现了一个小秘密,哈哈,之前的帖子里面,mixin messager(消息发送器)的拼写是错的,应该是MIXIN Messenger(报信者,送信者,先驱)。这两个词在英文里面还是有些差异,把MIXINMessenger理解成先驱也不赖呀。



  • @huoju 嗯,感谢霍老师的回复。之前的理解有一点偏差。



  • 我来接着盖楼吧,之前在读MIXIN白皮书的过程中,一直对kenel,domin,domin extention,这些概念似懂非懂。

    今天重新去看MIXIN Labs 负责人在Bigone
    的电报群的演讲实录
    以及附上的两篇白皮书解读的文章,似乎更加清晰一些,所以赶紧过来更新。

    哦,对,顺带附上他的两篇解读文章。

    白皮书解读1: https://www.jianshu.com/p/4ccca1cf3df5
    白皮书解读2: https://www.jianshu.com/p/57ecad54641a。

    看完这三篇,再去看白皮书,会神清气爽一点。

    闲话少叙,依旧从从MIXIN是什么来谈起?
    我之前的两层理解是这样的:
    第一层,他是一个集成了加密通信功能的钱包。
    第二层,他是一个数字资产的交易网络。
    现在看完李林的演讲和白皮书解读,可以有一个第三层的理解:

    他为所有区块链资产提供闪电网络服务。

    第三层的理解,加入了两个在白皮书里面一带而过的背景。
    第一个背景,自比特币诞生以来,区块链世界的技术发展的可以大致分为两条主线,一个就是另起炉灶单干,典型如以太坊和EOS,Zcash和门罗,另外一个就是对比特币网络进行优化,典型如侧链,和闪电网络技术。
    第二个背景,区块链世界的资产从单一的比特币扩展到数千种,截至 2018 年 10 月 31 日,CoinMarketCap 网站统计了全球范围内的 2086 个加密货币和 15545 个加密货币交易所,全体加密货币的市值约 2035 亿美元(其中比特币市值占比为 54%)——央行发布2万字论文:区块链的能与不能。多样化的数字资产的产生,催生了更加多元的数字资产托管和交易的需求。

    这两个背景的加入,是不是让MIXIN的形象更加立体了一些?因为Mixin相信数字资产的种类和持有者未来会急剧增多,交易或者说支付的场景会越来越多,所以人们对不同类型数字资产交易速度会提出更高的要求,而现实的情况是,主流的数字资产之间互相没有交集,他们的交易速度也很难满足需求。

    这个立体的形象可能是在一开始阅读白皮书的过程中忽略掉的,但是实际上对后面文字的理解提供了很好的语境。比如,白皮书的开头部分就很清晰的论述的Mixin产生的背景和他的定位。而这段话可能会因为"吹牛逼谁不会呀"而被很多人忽视掉。话说,我之前就是这么理解的,表示惭愧。

    Similar to what Lighting Network and Liquid are for the Bitcoin blockchain, Mixin is a public distributed ledger to allow any public distributed ledgers to gain trillions
    of TPS,sub second final confirmation, zero transaction fee, enhanced privacy and unlimited extensibility。

    类似于比特币的闪电网络和Liquid,Mixin这个公开的分布式账本,让任何一个公开的分布式账本可以获得百亿级的TPS,亚秒级的确认速度,零交易费用,高隐私性和无限扩展能力。



  • 在对Mixin有了第三层的理解之后,我们再接着往下看白皮书里面的一组核心概念,kernel,domain , domain extension。李林的解读中有一个很重要的细节,就是把这三个词分别翻译成:记账核心,资产库,资产库插件。这样我们就很容易理解Mixin的三层网络了。

    最重要的是一个记账核心,他主要负责验证转账是否有效,在过去的区块链网络设计中,承担这个功能的话,一般会产生挖矿奖励,Mixin没有,这也是笑来老师之前说它是无币区块链的一个重要原因。至于他是如何做到的,这里先不考察。

    对我而言,最重要的一个认知上的突破,可能是在于把domain翻译成资产库。与此同时,把区块链网络就简化为分布式账本。这么来理解白皮书的原文就不容易困惑。

    Each Mixin Domain is also a distributed ledger, whose job is providing assets to the Mixin Kernel. The assets may be those on Bitcoin, Ethereum or any other blockchains, or even central organizations like banks.

    每一个Mixin的资产库也就是一个分布式账本,为Mixin的记账核心提供资产。这个资产可能来自比特币网络,以太坊网络或者其他区块链网络,甚至来自银行这样的中心化机构。

    对于这个设计,李林给出了一个很高的评价

    mixin的设计者头脑非常清醒,思考的非常深入。盯住了分布式记账体系的核心目标:资产交易。



  • mixin的白皮书写完愿景(Motivation)和概览(Overview)之后就开始介绍Kernel。这个章节里面其实就有很多数学公式和一些更加陌生的词汇,如果不对比特币的网络有更多深入的了解的话,实际上就不太能感受这两种对比之间的差异。

    在这里,我分享最近学习白皮书的一点感受和心得,这是一个陌生的世界,所以难免会出现很多比较让人挫败的场景,比如说,我在读Kernel这个章节的时候,就是完全懵逼的,数学公式,陌生的ABFT和DAG还有UTXO,以及比特币网络的设计原理。我相信以后的学习场景中肯定还会遇到更多这样的情况。我想到的一个解决方式是,黑白盒学习法。每一次的学习就是打开一个黑盒看里面组成部分和构造的过程,但是一打开黑盒你会看到里面还有很多黑盒和白盒。白盒你一看就大概能明白,但是黑盒,你可能还是一头雾水。这个时候,我们可能会接着往下再打开,又会遇到一样的情况。如果,我们一直沿着黑盒打开下去,肯定会是一个无底洞,这个时候我们在回过神来,看整体的问题,可能依旧没有被解决,但是时间和精力已经耗费过去,同时,还有很强的挫败感。怎么办,我现在想到的解决方式就是

    每次最多打开3层黑盒

    每打开一层,先把黑盒和白盒分清楚

    在每一层里面,分清楚哪些是关键的黑盒

    打开下一层的黑盒之前,想一想他在第一层黑盒的结构中是什么角色,我要了解它到什么程度

    记得是不是回到第一层,这个才是你要学习的主题,其他的就让他暂时保持黑盒的状态

    具体到Mixin的这个例子中, 我就觉的李林的白皮书解读之所以让我有一种很轻快的感觉,就是他很轻松的就在保留很多黑盒的情况下,让我对kernel这个概念有了框架性的理解。

    只需记住一句话,mixin使用了比特币的记账思路,同时结合了最新的混淆技术,实现了高度匿名但是可验证的记账。一堆节点一起记账,不一样怎么办?再来一个专有名词,异步拜占庭算法。

    而他的演讲则稍微细化了一下,但同样都有助于对于Kernel的整体性理解。

    所有的数字资产交易,在进入mixin kernel的时候,都被赋予一个独一无二的数字编号。
    Kernel处理的就是一个带有数字编号的资产。无需关心具体资产的特点。
    domain extension负责处理资产的智能合约以及一些其他特性。

    kernel是一个高速互通的分布式小型网络,这一点与EOS bp节点很相似,都是高速高性能服务器。

    Kernel的账本使用了比特币的utxo结构,mixin kernel由7-50个节点构成,所有节点通dag+bft+pos进行记账,一笔交易经过2/3xin持有者签名就被确认

    至于后面更多的黑盒,可以后续再来研究。