基于区块链技术的电子支付平台MCashCHAIN介绍
扫描二维码
随时随地手机看文章
MCashCHAIN 致力于为我们雄心勃勃的项目之一提供解决方案,其目标是在区块链测试 Ebay 模型。众所周知,区块长期确认时间和天然气高价让它对拍卖,竞标或利用智能合约成为一个巨大的挑战。此外,加密货币的更多采用要求公共区块链在低费用下达到生产能力,为的是为电子商务提供微支付和为在线分散游戏体验提供高速。我们正在努力研究一个基于区块链的电子支付平台,该平台对我们生态系统和其他方面的分散应用程序 使用更安全,透明,高度可扩展,可供。
背景
Masternode Systems 是许多 PoS(Proof of Stake)加密货币的一部分。一个硬币持有人有足够的硬币用于 Masternode 时,他或她可以将特定数量的硬币发送到 Masternode 钱包,并且区块制造以后他们赚取新铸造的硬币。该系统是为了取代 Satoshi Nakamoto 发明 Proof of Work System 开发的,作为比特币的一部分。
Masternode 软件可以被认为是不同采矿版,它的功耗更低。Masternode 同网络中的其他节点联系,并保留区块链的备份, 不断检查和更新它。
这些节点执行的一些特殊功能是:
· 增加交易隐私;
· 启用即时交易;
· 参与治理和投票;
· 在密码方面启用预算和财务系统。
Dash (2014) , Zcoin (2017) , TRON (2018) 是在 Masternode 基础上创建的三个成功的区块链示例, 我们希望用它们的优势创建我们的平台。
实用的方向和应用
MCashChain应用在高速交易,普通用户零费用和高可扩展性方面没有限制。然而,我们将重点的应用程序如下:
· Du博
MCashDice 和 GemMob Studio 现有其他的游戏将被研制,转换并移植到MCashChain。MCashDice 将不再通过 Tomochain 运行。
· 拍卖
拍卖智能合约将通过 MCashChain 为几家艺术和古董拍卖行研制的。公司和初创公司股票和普通股拍卖将首先在 MCashChain 智能合约上进行的。
· C-商务
Midasshimaya 将在 MCashChain 基础上研制的,用于实体产品和虚拟资产的市场,例如虚拟收藏品,虚拟土地所有权,虚拟首选公司股票。
· 艺术品交易所 (M721 不可兑换代币)
通过使用 MCashChain上发布的 M721 代币分发实体艺术品的共同所有权标题将与越南最大的Chon艺术拍卖商合作研究和研制,并得到许多高净值网络艺术收藏家的支持。
· 鉴定和认证
在 Blockchain Excellence Search and Training Center 合作下,学生和开发商在越南和新加坡将有机会参加与区块链,智能合约,分散应用程序建设等开发相关的强化课程。认证将在 MCashChain 上被部署。
· 投票和选举
在公共部门的合作下,我们将在新加坡越南商会和将首先使用我们的解决方案进行投票协会的帮助下,例如在新加坡越南协会,向东盟地区的政府机构在 MCashChain 上提供进行投票和选举解决方案。我们还将为新加坡商业联合会和新加坡金融科技协会提供解决方案。
· 教育部门游戏化
为了鼓励学生体验 MCashChain,我们将与 ArrowHighTech 和 FingerprintEnglish 使用代币经济共同开发一系列教育游戏。最初的几个教育游戏将用于教 5 至 14 岁儿童英语和软技能。
· 区块链为服务
MCashChain testnet 已经是完成的。Public testnet 设置于 2019 年 6 月 6 日,Public Mainnet 设置于 2019 年 6 月 26 日。我们设计链条用于区块链化策略。我们将帮助将现有的应用程序和平台转换为适用于 MCashChain 的分散应用程序和分散式平台。我们拥有等待在 MCashChain 上进行转换和推广,使用MCash 为从 Midas 钱包直接付款并为现有客户提供服务的良好的现有产品和服务。这会引起更多主流用户的注意,帮助他们从应用程序转移到分散应用程序,并为 Midas 钱包创造更多实用程序。
架构
McashChain 使用 3 层架构,分为存储层,核心层和应用层。该协议遵循 谷歌 Protobuf,它可以通过插件容易扩展以支持新语言。
1. 核心
核心层包括共识,账户管理和智能合约。基于堆栈的虚拟机是在 McashChain上实现的,具有优化且优化的指令集。McashChain 的共识基于委托投票证明(DPoSV),许多功能被引入实现网络的最初目标。
对于智能合约语言,我们选择 Solidity,因为它得到了社区和开发人员的广泛支持。
2. 存储
McashChain 是基于事务的“状态”机器,其存储层由链存储和状态存储组成
2.1 连锁存储
McashChain 的连锁存储使用 Level DB,这是谷歌为本地存储应用程序开发的一台出色的存储引擎。
2.2 状态存储
事务前缀树,状态前缀树和收据前缀树的根节点哈希直接被存储在区块链中。McashChain 的状态存储在全节点内存中使用 Tron 的 KhaosDB。
3. 协议
McashChain 提供 Protobuf 应用程序接口和 HTTP Restful 应用程序接口。Protobuf 简化客户端开发,API .proto 也可用于许多编程语言(C ,Java,Python,Golang 等)。HTTP 应用程序接口更适合 Javascript 客户端(例如Nodejs)。
4. MCASH 虚拟机 (MVM)
MVM 与 EVM(以太坊虚拟机 ) 有百分之百的兼容。McashChain 支持所有与 EVM 兼容的智能合约,协议和原子交叉链令牌传输。这意味着用以太坊协议编写的任何智能合约和分散应用程序都可以无缝地移植到 McashChain。
5. LightningSend
LightningSend是一个利用传输锁定和超级节点共识来促进 McashChain瞬时交易的功能。LightningSend 允许 MCASH 与现有的集中支付平台竞争,例如提供快速交易时间的 VISA / Master。McashChain 的 LightningSend 技术提供这个,但在一个分散和不信任的方式。
LightningSend 功能使用事务锁定机制来防止在网络上的双重花费。目前,为了使商家能够防止比特币等系统中的双倍花费,他们通常必须等到区块链确认,以确保发送交易是有效的。平均,比特币区块链上的区块需要 10 分钟才能被确认。事务锁定旨在改进现有加密货币系统将双倍花费被当前处理的方
式,从而加快交易时间。
6. 分片技术
我们实现类似于 DBMS(数据库管理系统)的分片技术,其中数据库表的行是分开保存的,而不是分成列 (是规范化和垂直分区在不同范围做的 )。每个分区都构成分片的一部分,分片又可以位于单独的数据库服务器或物理位置。
我们的想法是将区块链的状态和事务处理划分为分片,每个分片由一组单独的节点处理。这意味着单个节点现在只需存储其自己的分片的状态,并只处理事务的子集,从而提高整体事务吞吐量。
7. UNIDEX 交易所
自 2009 年比特币网络成立以来,已经许多新的区块链将创建了。每个链都有不同的目的和任务。然而,这为全球采用加密货币制造了另一层障碍。一些研究工作导致一个链的包装加密货币的创建,以便在另一个链上使用。典型的例子是 WBTC (包装比特币),在以太坊上使用的 ERC-20 令牌。
以我们看来,每个区块链都以某种方式创建自己的生态系统和应用程序。为了将加密货币的有用性带到全球的下一个采用水平,需要为原子交叉链交换和交叉链智能合约做更多努力。这种多维交互复杂性是 MCash 基金会的研究领域之一。
我们建议,通过使用交叉链智能合约来包装 MCASH,我们将能够在若干个链上发出若干种类型的 MCASH。在 i 链上,包裹的 MCASH 将被称为 i-MCASH。所有 i-MCASH 的总供应量仍然完全等于 MCASH 的总供应量。i1-MCASH 的一种类型被转移到交叉链智能合约的时候,相应的 i2-MCASH 将自动发出。
我们为第一阶段开发选择了这些区块链:NEO,ZIL,TEZOS,EOS 和TRON,各自包装的加密货币名为:z-MCASH(在 ZILLIQA 链上),e-MCASH (在 EOS 链上),n-MCASH(在 NEO 链上),tz-MCASH(在TEZOS 链上)和 tr-MCASH(在 TRON 链上)。在使用混合交叉链智能合约下,所有 iMCASH 都能够以 1 比 1 的比例转换为 MCASH。i-MCASH 可以与支持多个链的 Midas 钱包上的任何其他 MCASH 交换。
8. ZMC (ZERO MCASH)
由于区块链的公共性质,用户们在网络交互时能泄露其隐私。为了解决这个问题,可以使用第三方硬币混合服务来模糊加密货币交易的踪迹。2013 年 5月,Matthew D. Green 和他的研究生(IanMiers 和 Christina Garman)提出了零币协议,其中可以匿名加密货币交易,而无需经过可信任的第三方,硬币被销毁然后再次铸造以擦除其历史。虽然一枚硬币将花了,但没有可以准确显示正在花费哪枚硬币的可用信息。
我们的目标是在 McashChain 部署 ZMC(ZeroMCash),而不对基础层进行任何更改。我们建议对协议的隐私承诺进行分析,并认为使用此协议所为固有的信息泄漏是受控制和明确定义的,这使其成为支持 McashChain私人交易的可行解决方案。
9. 实现
McashChain 核心是用 Java 实现的,最初是 Java-Tron 的一个分支。
共识
1. 权益证明和委托授权投票(PoS-DAV)
一个比特币矿工确认区块时,他会受到比特币作为奖励。如果比特币的价格和普及程度继续上升那么交易的数量也会如此。随着交易数量的增加,更多矿工将加入社区。很明显,更多采矿意味着更多能源消耗。比特币采矿的总耗电量估计等于爱尔兰的耗电量,并且在不久的将来它会增加两倍。
为了解决能源成本问题,权益证明(PoS)作为工作证明(PoW)的替代方案被创建了。通过权益证明,业主可以创建块而不是矿工,并且不需要每秒产生尽可能多的哈希的耗电机器。因此,与工作证明能耗相比,权益证明的能耗不大。但是,标准 PoS 的问题在于验证影响与锁定代币数量的直接相关。这导致各方囤积网络基础货币大量, 从而在网络生态系统发生不当影响。
McashChain 共识机制使用创新的权益证明和委托授权投票(PoS-DAV)系统,其中 64个超级节点(SN)为网络生成区块 。每 2 个小时,Mcash Xnode持有者可以投票选出 SN 候选人,前 64 名候选人被视为 SN。选民可以根据标准来选择 SN,例如由 SN 赞助的项目以增加 Mcash 的采用,以及向选民分发的奖励。
SN 的账户是正常账户,但他们的投票积累允许他们生产区块。
McashChain 网络每 3 秒生产一个区块,每个块将 10 个 MCASH(前 2 年)MCASH 授予 SN 和其他选民(XNode)。前两年每年将颁发约 105,120,000 MCASH。
每次 SN 完成区块生产时,奖励将被发送到超级分类帐中的子帐户。SN 可以检查,但不能直接使用这些代币。SN 可以检查,但不能直接使用这些代币。每个SN每24个小时只能提取一次,将奖励从子账户转移到指定的 SN账户。McashChain 网络上的 3 种类型的节点是 Witness Node,Full Node 和 Solidity Node。
Witness Node 由 SN 建立,主要负责区块生产和提议创建/投票。Full Nodes 提供 API 和广播事务和区块。Solidity Node 同步来自其他 Full Nodes 的区块,并提供可索引的 API。
2. 多层 Xnodes
每个节点级别的收益随着赌注金额和奖金线性地增加(见附录 A)。如,Jedi节点获得的奖励是 ApprenTIce节点的 115倍。我们相信这个系统将鼓励人们投入更多 MCASH 以达到更高水平,帮助创建一个健康的奖励系统。
帐户
1. 类型
McashChain 中的 3 种类型的帐户是常规帐户,令牌帐户和合同帐户。
● 常规帐户用于标准交易。
● 令牌帐户用于存储 M1 令牌。
● 合同帐户是由常规帐户创建的智能合约帐户,也可以由常规帐户触发。
2. 创建
有三种方法可以创建 MCASH 帐户:
● 通过 API 创建一个新帐户
● 将 MCASH 转移到新的帐户地址
● 将任何 M1 令牌转移到新的帐户地址
还可以生成由地址(公钥)和私钥组成并且不由 McashChain记录的离线密钥对。用户地址生成算法包括密钥对生成,然后提取公钥 (64 字节数组表示 x,y 坐标)。 使用 SHA3-256 函数散列公钥并提取结果的最后 20 字节。将 32 添加到字节数组的开头,并确保初始地址长度为 21 字节。使用 SHA3-256 函数两次散列地址,并将前 4 字节作为验证码。将验证码添加到初始地址的末尾,并通过 base58 编码以 base58check 格式获取地址。编码的主网地址以 M 开头,长度为 34 个字节。
3. 结构体
三种不同的帐户类型是正常,资产发行和合同。
一个帐户包含 7 个参数:
● account_name: 帐户的名称。
● type: 这个帐户是什么类型的。
● balance: 这个帐户的余额。
● vote: 在这个帐户收到的投票。
● asset: 预计会在此帐户中使用 MCASH 的其他资产。
● latest_operaTIon_TIme: 这个帐户的最新运营时间。
区块
区块包含区块题和一些事务(从 0 到多个)。
1. 区块题
区块题包含 raw_data, witness_signature 和 blockID。
1.1 原始数据
原始数据在 Protobuf 中被表示为 raw_data。它包含消息的原始数据,包括 6个参数:
● TImestamp: 此消息的时间戳。
● txTrieRoot: 哈希树根。
● parentHash: 最后区块的哈希。
● number: 区块高度
● version 版
● witness_address: 此区块中包含的证人地址。
1.2. 证人签名
证人签名在 Protobuf 中表示为 witness_signature, 它是来自 witness 节点的此区块题的签名。
1.3 区块 ID
区块 ID 在 Protobuf 中被表示为 blockID。它包含区块的原子标识。区块 ID 包含 2 个参数:
● hash: 区块的哈希。
● number: 块的散列和高度。
2. 交易
2.1 签署
McashChain 的交易签署流程遵循标准的 ECDSA 加密算法,以确保资金只能由其合法所有者使用。
● private key: 是秘密号码,只产生它的人知道它。私钥本质上是随机生成的数字。
● public key: 与私钥对应的数字,但不需要保密。公钥可以从私钥计算, 但反之不亦然。可以使用公钥来确定签名是否是真实的(换句话说,使用正确的密钥生成)而不需要泄露私钥。公钥是压缩的或未压缩的。压缩的公钥是 33 个字节,由前缀 0x02 或 0x03 和一个名为 x 的 256 位整数组成。较旧的未压缩密钥为 65 字节,由常量前缀(0x04)组成,后跟两个称为 x 和y(2 * 32 字节)的 256 位整数。压缩密钥的前缀允许从 x 值导出 y 值。
● signature: 证明签名操作发生的数字。签名是从要签名内容的哈希以及私钥中数学生成的。称为 r 和 s 的两个数字。使用公钥,可以在签名上使用数学算法来确定它最初是从散列和私钥生成的,而不需要知道私钥。
2.2 带宽模型
普通交易仅消耗带宽点,但智能合约操作消耗能量和带宽点。有两种带宽点的类型可用。用户可以通过冻结 MCASH 获得带宽点,同时每天还可获得10000 个可用带宽点。当 MCASH 事务广播时,它通过网络以字节数组的形式传输和存储。一个事务占用的带宽点数=事务字节数乘以带宽点率。例如,如果事务的字节数组长度为 200,则事务消耗 200 个带宽点。但是,如果MCASH 或令牌传输导致创建目标帐户,则仅扣除为创建帐户消耗的带宽点,并且不会扣除额外的带宽点。在帐户创建方案中,网络将首先消耗事务发起者从冻结 MCASH 获得的带宽点。如果此数量不足,则网络将使用事务发起方的 MCASH。
在从一个 MCASH 帐户到另一个 MCASH 帐户的标准 MCASH 传输方案中,网络首先消耗由事务发起者获得用于冻结 MCASH 的带宽点。如果这还不够,那么它将消耗每日免费 10000 点带宽。如果仍然不够,则网络消耗事务发起者的MCASH。金额是根据交易中的字节数乘以1000 Matoshi计算的。因此,对于可能不一定冻结其 MCASH 参与超节点投票的大多数 MCASH 持有者,第一步是自动跳过(因为冻结 MCASH 余额=0)并且 10000 每日带宽为交易提供动力。
对于 M1 令牌传输,网络首先验证发布的令牌资产的总可用带宽点是否足够。如果不是,则它消耗从冻结 MCASH 获得的带宽点。如果仍然没有足够的带宽点,则它消耗事务发起者的 MCASH。
2.3 费用
MCASH 网络通常不收取大多数交易的费用,但是,由于系统限制和公平性,带宽使用和交易确实需要支付一定的费用。
费用分为以下几类:
● 正常交易需要带宽点数。用户可以使用每日免费带宽点或冻结 MCASH来获取更多。当带宽点不足时,MCASH 是从发送帐户直接使用的。所需的 MCASH 是字节数* 1000 Matoshi。
● 智能合约需要耗费能源,但也需要带宽点为广播和确认交易。带宽成本与上述相同。
● 所有查询交易都是免费的。它不需要能源或带宽。
McashChain 还为以下交易定义了一组固定费用:
● 创建见证节点: 10000 MCASH
● 发出 M1 令牌: 1024 MCASH
● 创建新帐户: 0.1 MCASH
● 创建交换对: 1024 MCASH
2.4 交易作为股权证明 (TaPoS)
McashChain 使用 TaPoS 确保交易全部,确认主要区块链,同时使伪造链变得困难。在 TaPoS 中,网络要求每个事务包括最近区块题的散列的一部分。此要求可防止事务在不包括引用块的分支上重放,并且还向网络发出特定用户及其一份在特定分支上的信号。这种共识机制保护网络为免受拒绝服务,51%,自私采矿和双重花费攻击。
2.5 交易确认
事务到网络之后,它被包括在未来区块中。19 个区块在 McashChain(包括其自己的区块)被开采后,交易就得到确认。每个区块由前 64 个超级节点中的一个以循环方式生成。每个区块在区块链上为开采需要约 3 秒钟。由于网络条件和机器配置,每个超级节点的时间可能略有不同。通常,约 60 秒后,交易被认为是完全确认的。
管理
1. 超级节点 (SN)
每个帐户都可以申请并有机会成为超级节点(表示为 SN)。获得最高票数的前 64 名候选人将成为具有生产区块的权利和义务的 SN。投票在每个时期结束时被计算(2400 个区块 - 大约 2 个小时),并且 SN 将相应地改变。
如果 SN表现不佳,他们将遭受大幅削减和轻微惩罚(在接下来的 6个时间段内不会产生区块)。在轻微惩罚之后的时期,如果节点性能没有得到改善,将重大惩罚被给出(24 个时期)。为了防止恶意攻击,需要付出代价成为SN 候选者。申请时,10,000 MCASH 从申请人的账户中将被烧掉。
2. 委员会
该委员会用于修改 MCashChain 动态网络参数,例如区块生成奖励,交易费用等。该委员会由本轮中的 64 个 SN 组成。 每个 SN 都有提议并对提案进行投票的权。当提案获得 33 票或更多票时,它将获得批准,新的网络参数在下一个维护期内(3 天)被应用。
2.1 动态网络参数
2.2 创建提案
只超级节点帐户有权提议动态网络参数的更改。
7.2.3 投票提案
只有委员会成员(SN)可以投票赞成提案,未及时投票的成员将被视为不同意。该提案在创建后的 3 天内处于活动状态。可在 3 天投票期间更改或检索投票。一旦期限结束,提案将成功(33+票)或失败并结束。
2.4 取消提案
提议者可以在提案生效之前取消提案。
3. 结构
SN 是新生成的区块的见证。见证包含 8 个参数:
● address: 见证的地址。
● voteCount: 获得该见证的投票数量。
● pubKey: 见证的公钥。
● url:见证的网址。
● totalProduced:见证产生区块的数量。
● totalMissed:见证错过区块的数量。
● latestBlockNum: 区块的最新高度。
● isjobs: 布尔标志。
智能合约
McashChain 智能合约是用 Solidity 语言编写的。McashChain Solidity 是以太坊Solidity 语言的分支。
1. 能量模型
部署和触发智能合约的最大能量限制是几个变量的函数:
● 冷冻 1 MCASH 的动态能量为 50,000,000,000(总能量限制)/(总能量重量)
● 能量限制是冻结 MCASH 的每日帐户能量限制
● 冻结 MCASH 的剩余日常账户能量被计算为能量限制 - 使用的能量。
● MCASH 中的费用限制在智能合约部署/触发中被设置。
● 帐户中剩余可用的 MCASH。
2. 部署
Solidity 编译器自动生成 JSON 文件,即合同元数据,其中包含有关当前合同的信息。它可用于查询编译器版本,使用的资源,ABI 文档,以与合同更安全的交互并验证其源代码。
代币
1. M1 代币
McashChain 帐户可以花费 1024 MCASH 来发出带有以下参数的 M1 令牌:
● token_name(令牌名称)
● total_capitalization(总资本总额)
● exchange_rate: to MCASH (汇率:到 MCASH)
● circulation_duration (流通时间)
● total_supply (总供应量)
● total_lock_amount (总锁定金额)
● locking_period: in days (锁定期:以天计)
● description (描述)
● total_bandwidth_consumption (总带宽消耗)
● max_bandwidth_consumption_per_account (每个帐户的最大带宽消耗)
● token_frozen_amount (令牌冻结金额)
2. М20 代币
与 ERC-20 完全兼容。M20 接口是:
3. M721 代币 (NFT)
M721 令牌标准有助于创建不可替代的令牌。在许多方面,它的功能与 M20的非常相似。这种相似性存在有两个原因:
首先,开发人员更容易进行转换。
它让用户将这些代币存储在普通钱包中,并在交易所或电子商务平台上进行交易[11],这样更容易。
M721 通过该特定令牌的所有权获得其不可替代的属性。
结论
总之,McashChain通过从所有现有的 dPos链中学习,消除了以前开发的链条的痛点和不稳定性,将为 Midas Ecosystem和我们的 dApps 开发合作伙伴所需的高吞吐量 dApp 提供最理想的特性。数十万个 TPS,Lightning 网络自第一天被启用了,3 秒区块确认时间,普通用户零费用,与 Midas Wallet完全集成的,在 VinexNetwork 和 UniDex 被上市。McashChain 还为用户提供了通过 5级节点获得被动收入的机会,直接在 Midas Wallet 上运行和监控的,为专家用户提供 1 个超级节点。