请选择 进入手机版 | 继续访问电脑版

Hi,Tokens

 找回密码
 立即注册
查看: 533|回复: 7

【转】中华一闲人-虎评墨客

[复制链接]

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
发表于 2018-7-30 18:30:27 | 显示全部楼层 |阅读模式
虎评墨客 | 部署子链协议合约





  功能简介  

子链协议合约定义了用于上层的共识协议。子链的共识协议可以分为多种:

1. 处理类共识协议(类似于CPU),比如POS,POW,PBFT等;
2. 文件存储类共识协议(类似于硬盘),比如POF(IPFS),FileCoin等;
3. 功能类共识协议,比如随机数,时戳等;
4. 自定义类共识协议,比如投票,IOT,sensor network等。

子链协议合约部署之后,可以让具有对应模块的SCS注册,并缴纳保证金。在等待时间之后(通常是50个block),就成为子链的候选SCS节点。

子链协议合约必须与对应的SCS模块协同工作。墨客提供一个POS的实现,包括SubchainProtocolBase.sol 和相应的SCS模块。

功能模板

1.  SCSList
存储所有注册并缴纳保证金的节点

2.  bondMin
参与这个协议所需最低保证金

3.  register(注册)
具有相应模块的SCS调用注册,并缴纳保证金

4.  withdraw(退出)
SCS可以选择退出,并在一定时间后返回保证金

5.  getSelectionTarget
根据子链要求的SCS数得到选择标准,即如何从总数中随机取出需要的SCS节点数

6.  approveBond(子链押金授权)
授权SCS参与的子链可以在SCS表现恶意的时候没收保证金

7.  forfeitBond(没收押金)
子链没收SCS的押金










本帖被以下淘专辑推荐:

回复

使用道具 举报

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
 楼主| 发表于 2018-7-30 18:30:56 | 显示全部楼层
区块链是什么?

实现在大范围分布式网络下的数据保存和操作一致性的系统。

第一步
加密货币的本质是区块链上记录的一个数字,和它的加减操作。

现有实现:比特币,莱特币,Zcash
应用:支付,兑换
变体:如果这个数字是加密的,但是仍然可以做加减操作,那么就是完全匿名的货币。
这个范围内需要解决的问题:
1. 共识选择对系统的影响
2. 挖矿收益经济动力学
3. 与法币系统的对接
4. 效率问题

第二步
智能合约的本质是区块链上记录的一段代码,和它的执行操作。

现有实现:以太坊
应用:ICO,去中心化的ERC20交易
变体:把一些形成规范的代码固定下来,就是ERC20 token。
这个范围需要解决的问题:
1. 效率
2. 存储
3. 分片

第三步
区块链上记录的可融合的信息,和它们之间的交互操作。

现有实现:墨客
应用:去中心化的跨链
这个范围的问题:
1. 子链
2. 与链外世界的通讯
3. 链与链之间的通讯

第四步
区块链上记录的人工智能,和它的演化操作。

现有实现:无
假想的应用: IOT链的信息推送给Deep Learning链,形成决策,实现系统的正反馈,逐步优化对某个应用的解决方案或应对突发事件。

回复

使用道具 举报

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
 楼主| 发表于 2018-7-30 18:31:15 | 显示全部楼层
我们今天再共同回顾下墨客的系统架构:

我们将系统分为两层,底层是POW挖矿,与现有的以太坊系统兼容,现有的以太坊矿机可以很方便的转移到墨客挖矿。上层是SCS node,这样的node数量可以非常巨大,每个部署的子链合约(smart contract as a subchain, SAAS),可以随机挑选出参与挖矿的SCS节点,形成一个共识子网。SCS节点提供服务,并获得报酬。




墨客设计了两级挖矿机制,其实涉及到了更深层次的考量。eth和比特币的分配机制其实很单一,靠POW挖矿。但是POW挖矿的成本很高,普通的参与者除了从二级市场靠交易获得eth或者btc,没有其他的分配机制。无论是btc的手续费,还是eth的gas,是系统中唯一的一次分配途径。

墨客提出了两级挖矿特别是上层挖矿提供了一个二次分配的功能。就是子链的部署者需要持续的付出MOAC,分配给参与的scs节点,以维持子链的正常运行。这个和eth的部署一次,无限使用是不一样的。eth靠使用者支付gas给矿工维持合约的功能,墨客是让合约的创建者或者社区支付子链合约的维持成本。而SCS节点参与挖矿的成本很低,只需要一定的MOAC保证金,对系统的要求很低。

这样的挖矿机制使得广大的SCS节点都可以参与并获得收益,从而使得MOAC的二次分配更加广泛。这样,可以极大的调动社区的积极性,形成一个开放的系统。

子链的缺省配置是用moac支付。子链的创建者可以设定每个block的时间间隔,以及每个block的reward。这些reward是由创建者支付。墨客提供一个动态的管理机制,使得即使MOAC本身的价值波动,但是仍然可以让scs节点有收益,子链创建者也不至于负担过重。


如果MOAC的价格变动:

1、价格下跌,reward 无法支付电费,那么SCS收益率下降,SCS可能消极怠工,不再提供正常的服务给子链,消极怠工的多了,子链就不得不重新增加新节点出来,但是这样的开销会很大。所以对子链的创建者/维护者来说,比较好的办法是增加reward的数量。但是这里要注意的是子链reward的数量只能增加,以防止子链创建者恶意降低reward。

2、墨客增加了reward自动递减的重力效应,就是每个flush周期过后, block reward降低某个百分比,解决了MOAC持续上升对子链创建者/维护者的负担。

3、如果价格不变,子链创建者/维护者通过定期增加reward来抵消 这个重力效应。

总结就是reward 自动递减 (以match MOAC升值的预期) + 子链创建者显式的增加reward (以match MOAC 下跌的情况下,SCS收益过低的情况)。

另外墨客系统中子链合约部署后,用户(不是scs节点)可以以directcall的方式 调用合约function的时候,不消耗gas。


主要是因为:
1、DApp的用户不需要理解MOAC系统,甚至不需要获得MOAC的条件下就可以使用Dapp。他直接跟Dapp交互,不需要经历虚拟货币以及合约调用的学习曲线。

2、不采用gas的情况下,用户的directcall 调用不再需要底层的balance transfer 交易,大大减少对底层的压力。

3、用户还是可以获得子链(合约)内部的token,来实现相关的业务逻辑。



报酬及罚金流向




回复

使用道具 举报

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
 楼主| 发表于 2018-7-30 18:31:31 | 显示全部楼层
当前两个区块链的货币之间的兑换有两种方式,一种是采用线下的方式,找到一个可信的有相反需求的其他买家,甲把A货币转给乙,乙把对应的B货币转给甲。这样的办法比较低效,找到一个可信的对家很难,执行的风险也很大。另外一种方式就是普遍采用的中心化的交易所,大家把各自的货币充值到交易所,交易所在它的系统里面记录每个人的余额,然后兑换就在交易所的平台上面进行,直到玩家从交易所取出相应的货币。

中心化的交易平台的问题显而易见。在监管缺失的情况下,中心化交易所可能存在内幕交易,伪造交易,资金挪用等等。而且中心化的交易所很容易受到主权机构的控制。


闪电网络实现跨链


怎么样从去中心化的角度解决这个问题?现在有几个尝试。比较典型的是莱特币的创始人Charlie Lee提出的用闪电网络的方法实现比特币和莱特币之间的跨链。具体做法是用闪电网络的哈希锁定和时间锁定。

流程如下




这里通过公布X,同时解锁两个交易,实现跨链交易最重要的原子性问题。

但是这个解决方案有几个问题:

1. 需要跨链的每个链都支持闪电网络,也就是需要哈希锁和时间锁的功能。现有的链如果没有这个功能的话,需要进行硬分叉。很多情况下并不现实。

2. 整个交易的过程是个交互手动的过程。用户乙必须等待甲的公布,之后要确保在对方网络中递交合适的信息。如果需要实现自动化的话,会比较麻烦,需要额外的基础设施支持,比如类似Cosmos的拜占庭容错hub支持。


墨客跨链机制


墨客采用系统特有的系统定时触发功能和子链的功能,完美解决了上述两个问题。

系统定时触发功能和子链的功能分别在系列文章《墨客系列-系统定时触发》和《墨客系列-子链》中有更详细的介绍。这里概括一下:系统定时触发功能是设置在指定的未来区块位置执行某个交易,这个设置是100%会被执行。子链功能是在底层的POW基础上实现可定制的和分片的子区块链。




墨客具体的跨链这样实现


01
找到匹配交易: 在墨客网甲从Am地址发送m个 MOACMOACBm : m, e, n, Ae )念很多额外的e. ideas of consensu flexible nsus implementation which could be loaded as a module by participating:Am -> Bm : m, 另外一区块链网(例如以太坊)中乙从地址Be发n个Eth 到地址Ae,表示为( Am ->Bm : m  ^ Be -> Ae : n )。

02
在墨客网络,甲创建一个哈希锁的系统定时触发交易T:Am ->Bm : m  on Block#k。甲同时会把m MOAC发送到系统合约作为预备金。计算Hash(T)。

03
这个系统定时触发交易将在k block后执行这个交易。如果成功,Bm获得m MOAC,否则退回给Am。成功与否依赖于哈希锁是否被解锁:是否有可验证的以太坊交易Be->Ae : n eth,以及Hash(T) 标识。

04
乙看到系统定时触发交易T后,知道在k block后100%会执行,所以他可以很放心的发送交易Be->Ae : n eth, 同时将Hash(T)放入数据段。

05
乙在以太坊的交易确认后,监控子链将以太坊的交易信息作为参数调用系统合约,解开hash锁。

06
到k block之后,系统合约自动执行,完成Am->Bm : m。

这里,墨客区块链通过其他区块链的确认交易信息解锁墨客交易,实现原子操作。

但是这里的巨大优越性在于,对其他区块链没有新的要求,只需要交易能附加数据信息,这个功能每个区块链都有。因此,墨客跨链机制可以实现与所有的区块链的跨链操作!

目前墨客系统通过子链来实现拜占庭容错的快速消息传递。

墨客的共识分两部分,底层的POW共识,由v-node来实现。每个v-node都连接一个或多个SCS node。SCS node实现对合约的分片执行。支持同一种自定义共识协议的SCS node之间可以形成一个子链。为了实现墨客系统与以太坊区块链之间的信息传递,SCS node可以同时连接一个eth的light node。




这样,SCS node可以随时获得eth中的需要监控的交易信息。多个SCS node之间通过预定义的共识协议,将对应的操作(比如解锁系统合约的调用请求)发送到v-node层,从而实现跨链信息的拜占庭容错。

综上所诉,墨客提供一个与其他所有区块链的跨链方案,同时提供跨链的信息传递,以实现去中心化的跨链交易。但是,不仅限于此,在此构架上可以很方便的实现去中心化的交易所。
回复

使用道具 举报

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
 楼主| 发表于 2018-7-30 18:31:47 | 显示全部楼层
功能简介


子链合约定义了用户DAPP所需的子链控制功能和业务逻辑功能。子链控制功能包括:
1、所采用的协议、子链的SCS个数、子链刷新周期、子链每个区块的报酬和每个TX的报酬
2、SCS参与子链的调用过程,以及子链的刷新过程
3、子链的资金控制

子链的业务逻辑定义SCS节点运行的业务流程。这个业务逻辑可以是基于solidity的binary代码,也可以是任意语言的script或者bin代码,只要SCS模块能够执行。

子链的控制功能在底层v-node端以全局合约的方式执行,业务逻辑由上层执行。

墨客提供一个POS 子链的实现,SubchainBase.sol。


功能模块


1. Protocol:指向子链协议合约部署后的地址

2. MinMember/MaxMember,参与这个子链的最低/最高SCS节点数

3. FlushInRound:刷新等待周期

4. Funccode:子链业务逻辑代码

5. NodeList/NodeCount:参与子链的SCS节点/数

6. MatchSelTarget:比较合约地址以确定SCS是否被选中参与子链

7. RegisterAsSCS:SCS 调用此函数来确认自己成为子链的节点

8. RegisterOpen:Dapp部署者设置子链注册开放

9. RegisterClose:Dapp部署者设置子链注册关闭

10. GetEstFlushBlock:获得预计的下次刷新的等待区块数

11. CreateProposal:SCS调用此函数来创建一个新的刷新请求

12. DisputeProposal:SCS调用此函数来创建一个反驳的刷新请求

13. VoteOnProposal:SCS调用此函数来投票支持哪个刷新请求

14. CheckProposalStatus:查询当前proposal状态

15. RequestProposalAction:SCS调用此函数来执行刷新

16. AddFund/WithDraw:Dapp部署者增加/减少可用资金
回复

使用道具 举报

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
 楼主| 发表于 2018-7-30 18:32:01 | 显示全部楼层
墨客区块链是新一代区块链平台。凭借开创性的区块链多架构模式,墨客不仅解决现有区块链系统(包括比特币和以太坊)的性能和成本问题,还引入了新功能,从而最大限度地降低开发人员、用户、企业乃至整个区块链生态系统的进入门槛。

墨客平台使用分层多区块链架构、区块链分片技术、子链智能合约和跨链功能来实现这一目标。墨客平台的基础架构即为基于全球公链上运行的母链用于负责智能合约管理和子区块链(子链),子链还支持各类共识机制基础上的交易。

子链与侧链完全不同。侧链通常是一个独立链,它可以独立于主链工作。其拥有自己的点对点网络。然而,侧链在系统中的节点数量通常很少,所以非常容易受到攻击,其安全性比主链差几个数量级。因此,侧链只能容纳与其安全级别相一致的价值。

与此不同的是,母链上的子链高度依赖于母链的点对点网络连接性和流控制。因此,它可以提供与母链相同的安全级别,同时显著提高单个区块链的性能和灵活性。

此外,子链和母链的结合具有独特优点,如灵活性、独立性、高性能和跨链功能。

1
母链使用类似以太坊的工作量证明机制(PoW),因此可以部署在公共设置的环境中。我们对母链进行了优化,可以处理全部转账交易以及全局智能合约,实现的每秒交易数为900tps。目前我们的实时主网络已经有1%的以太坊网络算力,并且该算力仍在增长。
2
将每个去中心化的应用作为一个子链,在母链上进行部署。子链可以从大型已注册的矿池中选择SCS挖矿节点,为应用程序提供共识协议等。子链拥有单独的区块链,子链可以自动实现分片技术和本地状态存储。
3
去中心化的应用可自由选择适合其需求的最佳共识协议。我们提供了模块化的共识协议。如果去中心化的应用要部署自己的共识协议,则去中心化的应用开发人员可以方便地更换新的共识模块,以便快速部署最适合他们需求的子链。
4
去中心化的应用开发商将支付其区块链矿工和服务的所有费用,去掉通常情况下应用用户需要支付手续费的使用要求。因此,去中心化的应用用户不会仅限于加密社区内部。任何用户都可以下载应用程序并使用其功能,而无需事先获取任何通证(以支付交易的手续费)。
5
子链将保持与母链一样的安全级别,因为子链的矿工不会直接互通,而是通过母链的点对点网络相互联系。在实际情况下,所有子链每秒能处理的交易数将达到10000+左右。
6
我们已经实现了刷新机制,以允许子链将其状态哈希刷新到母链中以实现最终性。
7
子链的跨链功能还可以作为墨客系统与外部网络之间的桥梁,包括其他区块链、物联网网络、星际文件系统网络和现实世界等。
8
我们精心设计了子链层挖矿,以允许普通用户加入矿池并支撑去中心化的应用子链的共识,从而在各个区块产生后获得奖励。这种挖矿将吸引10万甚至100万用户参与,以更广泛的方式进行通证重新分配,并大幅扩大生态系统。
9
子链不仅可以用于单个去中心化的应用,还可以提供服务。例如:一个子链可以使用权益证明(POS)来处理智能合约,可以看成一个CPU处理器;另一个子链可以使用去中心化文件系统(IPFS),类似于文件系统。因此,只要去中心化的应用支付相应费用,就可以在多个服务子链之上建立去中心化的应用,使其更加强大且功能丰富。

回复

使用道具 举报

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
 楼主| 发表于 2018-7-30 18:32:21 | 显示全部楼层
随着比特币和多种加密货币的币值飙升,区块链技术引起了极大的关注。许多人接受了区块链技术是一个比较革命性的技术,但是认为虚拟货币是一种炒作,传销和空气,没有任何价值。这里我发表一下我的理解。

首先,区块链是一种分布式账本技术,可以让用户以去中心化的方式记录数据和信息,并且有天然的防串改,自动实现多地备份等优秀性能。理解区块链的关键是每一个参与共识的节点(或服务器)都保留一个账本,来维护和存储信息。这些账本通过算法定义的共识机制来保证相互之间的一致性。这个一致性是全局的,并且可以有很强的容错性,比如49%的账本都出错了,51%的账本一致就可以继续运行。

虚拟货币本质上是去中心化的账本中记录的一个数值,以及对这个数值的加减操作。这是区块链技术的第一个阶段。区块链发展的阶段可以参考《墨客系列介绍-区块链发展趋势与AI的技术演化道路》。那么怎么来看待区块链技术和虚拟货币(token或通证)呢?

区块链技术本身并没有复杂深奥的东西在里面。从技术上将,它是有一定的进步性。但是,我认为,区块链技术本身可能只占区块链的革命性中的5%。对于区块链的最核心部分,其实是由于区块链带来的价值体系和引发的一系列颠覆性的生态变革。通证会在这个变革中起到非常重要的作用。

这个作用可以从三个层次来理解:

01

区块链技术的进步本身其实面对的是工程师。正如NOSQL对mysql的进步一样。你可以在此基础上构建更加强大的应用。但是如果仅仅这样,我们不能称区块链技术是一个革命性的技术。只能认为是技术进步的一小部分。

另外,从用户的角度讲,他并不关心底层的技术是mysql还是NOSQL,只要功能强大易用就行了。因此,如果仅仅采用区块链技术的优良特性,那么区块链面对的对象只是工程师,软件经理等,只是利用了区块链的5%。

区块链的革命性第一点在于由于引入了通证,使得区块链技术面向的对象从工程师转到了消费者。这是一个巨大的变化。因为区块链本身的特点,可以非常方便的实现去中心化信任的通证的流通。这样使得消费者都能直接感受到区块链技术的各种特性。

02

区块链的革命性第二点在于可以用通证来给传统方式下无法定价的物体、信息、流程等实现定价,并且让这个价值可以很方便的流通。

举个例子,谷歌地图有一个很强大的功能来显示每条道路上的拥挤情况。

这个功能并不是通过部署传感器来实现的,而是通过每个用户在使用地图的时候自动将自己的移动信息上传给谷歌服务器,然后通过一系列处理来实现对道路拥挤情况的判断。每个用户的位置移动信息在这个过程中,其实是非常有价值的,但是这个价值在传统的方式下没法实现,而是无偿地被谷歌获得,被它所挖掘,并获得巨大的收益。

在区块链下面,就可以很方便的用通证来实现对这些定位信息的定价,并且每个用户可以拥有这些价值。然后,用户可以自己控制怎么来使用这些有价值的信息。这样,区块链技术将颠覆现在的巨头公司无偿获得各种信息,并从中受益的模式。

推广出去,如果人类的各种信息都可以在区块链技术上实现定价,并且可以很方便的进行流通,交换,那么许多现在的商业模式将被改写、被颠覆。

03

在传统的方式下,应用程序的逻辑,游戏的发展,生产的流程,商业活动的运行,都是有个预先定义的规则。这个规则可以看成是用来驱动一个状态机从一个状态变化到另外一个状态的转化,是程序员,经理,等预先定义好的,是个中心化的决策。在区块链的方式下,这些状态机的变化,完全可以通过每个参与的个体,在这个系统中获得某种对信息或者资源的定价的通证,通过每个个体的逐利本性,利用通证来驱动状态的变化,并实现资源的优化配置。这样,整个系统的动力变化状态将完全改变。许多模式将被重构,对社会产生巨大的深远影响。

当然区块链技术不是万能的,会有它适用的范围。参考《墨客介绍系列-区块链适用的应用》。

回复

使用道具 举报

704

主题

1070

帖子

3955

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3955
 楼主| 发表于 2018-7-30 18:32:34 | 显示全部楼层
目标  

基于墨客的子链概念,快速部署一个支持网络互助的应用。

  背景  

网络互助在移动互联中的非常普及,比如网络拉票,点赞等,但是这类的需求没有一个合适的解决方案,是个用户痛点。

  应用分析  

这类应用的主要解决:
需要大量用户的参与,超过个人所能拥有的覆盖范围;
需要一点的刺激让其他人参与,比如情面,货币等;
需要解决互信问题。

  传统区块链的不匹配  

1、共识要求高,普通节点无法参与,形成所需节点数量要求和共识成本昂贵的矛盾。
2、支持的交易数量少,而这些应用需要大量的节点参与,交易量很高。
3、使用昂贵,需要专门的定制系统,通用的区块链系统应用有限。

而基于墨客平台的子链可以很好的解决以上问题。

  解决方案  

对这些应用的问题细分:




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Hi,Tokens  |网站地图

GMT+8, 2019-11-19 02:37 , Processed in 0.062101 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表