快讯:
1、工信部发布《区块链安全白皮书-技术应用篇》。 2、云南省政府召开第20次常务会议,提出大力发展区块链等数字经济。 3、河北平泉市市长:平泉将牢牢抓住国家区块链改革的历史机遇。 4、百度区块链实验室发布《百度区块链白皮书V1.0》。 5、美国SEC主席拒绝更换证券法版本以适应数字货币。 6、美国2020年民主党总统候选人:区块链可以改善美国社会和经济状况。 7、韩国首尔市将推出一项区块链政策,推动智能城市建设。 8、菲律宾央行副行长:鼓励区块链开发,尚未准备接受加密货币。
据btcmanager消息,开发者们创建了一个基于比特币闪电网络的概念验证网站Lightning Tasks(闪电任务),并在拉脱维亚举行的首次比特币会议上进行了展示,以表明小规模支付可以在瞬间完成。此网站允许用户通过完成简单的任务来获得一些Satoshi,从而激励更多的人使用闪电网络。
据Cointelegraph近日消息,澳大利亚地产公司Vicinity宣布将为其能源网络试用区块链解决方案,与澳大利亚能源科技公司Power Ledger合作,Power Ledger提供的新区块链平台将允许Vicinity 实时管理能源分配,决定是继续使用太阳能电池板还是切换到国家电网。Vicinity Justin Mills的执行总经理声称,区块链解决方案可能有助于降低能源成本并保护环境。
1、工信部发布《区块链安全白皮书-技术应用篇》。 2、云南省政府召开第20次常务会议,提出大力发展区块链等数字经济。 3、河北平泉市市长:平泉将牢牢抓住国家区块链改革的历史机遇。 4、百度区块链实验室发布《百度区块链白皮书V1.0》。 5、美国SEC主席拒绝更换证券法版本以适应数字货币。 6、美国2020年民主党总统候选人:区块链可以改善美国社会和经济状况。 7、韩国首尔市将推出一项区块链政策,推动智能城市建设。 8、菲律宾央行副行长:鼓励区块链开发,尚未准备接受加密货币。
据btcmanager消息,开发者们创建了一个基于比特币闪电网络的概念验证网站Lightning Tasks(闪电任务),并在拉脱维亚举行的首次比特币会议上进行了展示,以表明小规模支付可以在瞬间完成。此网站允许用户通过完成简单的任务来获得一些Satoshi,从而激励更多的人使用闪电网络。
据Cointelegraph近日消息,澳大利亚地产公司Vicinity宣布将为其能源网络试用区块链解决方案,与澳大利亚能源科技公司Power Ledger合作,Power Ledger提供的新区块链平台将允许Vicinity 实时管理能源分配,决定是继续使用太阳能电池板还是切换到国家电网。Vicinity Justin Mills的执行总经理声称,区块链解决方案可能有助于降低能源成本并保护环境。
1、工信部发布《区块链安全白皮书-技术应用篇》。 2、云南省政府召开第20次常务会议,提出大力发展区块链等数字经济。 3、河北平泉市市长:平泉将牢牢抓住国家区块链改革的历史机遇。 4、百度区块链实验室发布《百度区块链白皮书V1.0》。 5、美国SEC主席拒绝更换证券法版本以适应数字货币。 6、美国2020年民主党总统候选人:区块链可以改善美国社会和经济状况。 7、韩国首尔市将推出一项区块链政策,推动智能城市建设。 8、菲律宾央行副行长:鼓励区块链开发,尚未准备接受加密货币。
据btcmanager消息,开发者们创建了一个基于比特币闪电网络的概念验证网站Lightning Tasks(闪电任务),并在拉脱维亚举行的首次比特币会议上进行了展示,以表明小规模支付可以在瞬间完成。此网站允许用户通过完成简单的任务来获得一些Satoshi,从而激励更多的人使用闪电网络。
据Cointelegraph近日消息,澳大利亚地产公司Vicinity宣布将为其能源网络试用区块链解决方案,与澳大利亚能源科技公司Power Ledger合作,Power Ledger提供的新区块链平台将允许Vicinity 实时管理能源分配,决定是继续使用太阳能电池板还是切换到国家电网。Vicinity Justin Mills的执行总经理声称,区块链解决方案可能有助于降低能源成本并保护环境。

Qtum量子链系统架构和开发流程剖析

区块链资讯 2017-01-10 18:34 发布在 链圈子 16656

在量子链的早期开发过程中,开发团队倾注了大量时间和精力,试图建立一个模型,将比特币的UTXO交易模型和以太坊智能合约结合起来,并且能与现有的比特币区块链架构高度兼容。为了达到这个目标,开发团队决定在比特币核心代码(v0.13版本)的一个分叉上,增加以太坊虚拟机的功能。(未包含PoS共识机制的更新) Qtum系统的交易传输架构模型如下:

图片1

图1: Qtum 系统的交易传输架构

以太坊

考虑到以太坊虚拟机的运行时间和账户储存数据库(Account Store database)的高耦合性,在量子链的开发中,我们并没有把这部分的源代码做过多的修改。因此,以太坊的代码库和测试套件仍然可以为量子链开发团队所用。此外,以太坊中MPT树(Merkle Patricia trees)被用于单独储存UTXO (请见Qtum/db 部分)。MPT树提供了一种加密认证的数据结构,用于储存所有的(key,value)对。而且,MPT具有完全确定性,即拥有相同(key,value)对的MPT,一定有完全相同的根哈希值(root hash),并为插入、查询、删除等操作提供相同的效率值(O(log(n)))。

比特币

比特币的交易结构也没有做过多的修改,仅增加了运行智能合约相关的操作代码。此外,为了提供各个节点间以太坊账户存储的同步性,我们在区块头信息中加入了状态根哈希值(state root hash)字段。

 

量子链

DB

比特币和以太坊的最大区别在于交易模型的不同,比特币使用的是UTXO(未花费交易输出)模型,而以太坊使用的是账户体系。为了使两种模型实现交互,我们决定保留以太坊的数据结构(MPT树结构),并在以太坊存储的基础上,增加新的存储层,并创建单独的数据库实例,用于存储未花费交易输出和相对应账户(智能合约)的映射关系。 Coin-picking

智能合约的执行可能会导致evm-invoked资金交易。为了保证所有节点上的共识机制和量子链db的一致性,我们从协议的层面定义了coin-picking算法。量子链使用FIFO(先进先出)模型进行coin的选择,即根据coin的入栈顺序决定该账户的交易输出顺序。当有交易(internal tx)发生时,最先入栈的coin将被选中,以此类推,直至达到交易所需的金额为止。

Opcodes

我们在量子链中定义了全新的操作代码:OP_EXEC,OP_EXEC_ASSIGN和OP_TXHASH,分别用于智能合约的创建,智能合约的执行和智能合约的花费。

图片2

版本号:虚拟机的版本号 GasLimit,GasPrice:类似于以太坊中的gas,用于执行代码的花费 数据:用于虚拟机执行的代码; 地址:被调用合约的ID值; OP_TXHASH允许智能合约的资金用于bytecode-invoked交易。在执行交易时,OP_TXHASH会被当前交易的哈希值替换。

Delegated calls reflection

由于Solidity代码支持其他合约的委托调用,因此可能会有隐藏资金交易的发生。为了在UTXO模型中体现这些交易,矿工在区块上加入了类似比特币的交易信息。这些交易信息中与OP_EXEC_ASSIGN模板一致的相关字段会被设置为0(除了地址和价值),这样可以避免不必要的区块空间浪费,并且仅使用OP_TXHASH作为输入数据。 Expected transactions queue

OP_EXEC,OP_EXEC_ASSIGN操作代码用于标记可花费的交易输出。比特币脚本编译器可以访问代码执行过程中产生的新区块的数据结构,其中包含了交易的哈希值。当脚本编译器运行验证模式时,OP_EXEC,OP_EXEC_ASSIGN将堆栈中的最后一组数据与哈希序列中的第一组数据进行比对。如果二者一致,则说明该输出为可花费的交易输出。否则,返回错误信息,并在序列中删除改组数据。在此过程中,OP_TXHASH也将交易哈希值储存在堆栈中。

文章标签: 量子链
评论
登录 账号发表你的看法,还没有账号?立即免费 注册