比特币钱包网页:Godwoken中缺失的那一块

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册
币安app

binance币安交易所

币安交易所app是全球排名第一的虚拟货币交易所,注册领取盲盒礼包!

APP下载   官网注册

对于开发者来说,cell编程模型无疑是NervosCKB中最有趣的部分。在这里,我们先对cell模型作一个简短的描述:

- Cell是通用版的UTXO- 一个cell是一个包含任意数据和可定制脚本的UTXO- 当一笔交易尝试销毁或创建一个cell,cell中的脚本将被加载并执行,在执行脚本中返回任何错误,都将导致交易失败。

Cell模型不同于账户模型:

- 验证而非计算- 将数据存储在单独的cell中,而不是将数据存储在一个账户中

当你比较两个模型时,你会发现还有许多其他的不同之处,如果你对该话题感兴趣,可以在talk.nervos.org上找到更多关于cell模型VS账户模型的讨论。

Cell模型中缺失的那一块

UTXO是一个非常棒的模型,cell模型继承了它的灵活性。我们(通过cell模型)可以发行UDT(用户自定义代币,类似于ERC20),存储链上资产,玩石头剪刀布游戏,或者与比特币实现原子交换等。Cell模型可以实现很多人们最初认为不可能实现的事情。

不幸的是,有一些合约确实很难在cell模型上实现:

- 投票- 众筹- 去中心化定价的虚拟机- ...

这些难题合约有一个共性,那就是需要共享状态。

在一个UTXO类的模型内,状态是自然分离的。

在CKB中,用户可以在独立的cell中进行投票。这样我们就需要一个链下的角色收集这些投票的cells并计算结果。当我们只想「看到」结果时,它实现的非常好。但是我们不能在另一个合约中使用投票结果,比如一个基于投票的DAO合约。我们很难在一个链上合约中验证统计后的结果。所以我们必须证明每一个投票cell的存在,交易时就需要引用每一个投票的cell,这可能非常昂贵。

再举个例子,我们来看一个众筹合约:

一个cell中有所有的众筹代币,用户可以支付CKB来获得相应数量的代币。问题在于,当我们分割这个cell,众筹cell的outpoint就被改变了;其他用户必须等到下一个区块才能看到新的outpoint。所以在一个区块时间内,只有一个用户可以参与众筹,这是不可接受的。

与投票的例子类似,一个典型的解决方案就是引入一个链下角色,用户在个人的cells中发出众筹请求;然后链下角色需要收集这些cells并将结果放在一个cell中。

我们可以看到,由于在cell模型中,状态是自然分离的,因此我们必须依赖某个链下角色来收集状态。这样的方法是可行的,但是仍然会有一些问题:

- 如何有效地证明收集的结果- 如何保证在引入了链下角色后的去中心化- 用户如何与链下角色进行交互

当然,解决这些问题并不难;我们可以通过支付链下角色一些费用来激励他们;使用某种挑战机或者零知识证明(zkproof)来验证收集的结果;定义一些协议来规定和链下角色的交互。我们总能解决这些问题。

等等,我想要的只是一个投票合约。我为什么需要整这么多(复杂的)东西?

一个合约管理一切

可不是嘛!我们可不想为每一个合约都整这么多东西,我们只需要构建一次:

Godwoken是一个建立在CKB上的基于账户模型的编程层,目标就是管理一切状态共享的合约。

Godwoken由以下几个部分组成:

- 主合约——一个维护所有账户、所有区块的全局状态的类型脚本(layer1.5层)- 挑战合约——一个处理挑战需求的类型脚本- 聚合器——一个收集layer1.5层交易的链下程序,并定期向主合约提交layer1.5层的区块。- 验证器——一个持续监控两个合约的链下程序。验证器在一个无效区块被提交时会发送一个挑战请求,在一个错误的挑战请求被提交时会发送一个无效的挑战请求。

你可能发现,这听起来像是最近非常流行的rollup的解决方法。是的,没错。但是我们关注的是聚合的问题,而非可扩展性的问题。Godwoken提供了CKB基于账户模型的编程能力来解决聚合问题。

一些人将Rollup称之为layer1.5层;也有一些人认为它是layer2层;还有人认为它是layer1层(根据信任级别)。本文将Godwoken称为layer1.5层,以便将其与layer1层的CKB区分开。

Godwoken使用和原生CKB合约相同的技术栈。唯一的区别在于Godwoken合约是基于账户模型的;它将验证账户的状态而不是cells的状态。账户状态和layer1层的cells之间的映射关系是由Godwoken的主合约处理的,对于layer1.5层的合约来说,是透明的。

对于需要创建一个投票合约的开发者来说,只需要使用脚本简单地创建一个账户,这个脚本就会验证输入的数据和账户状态。

//伪代码verify_voting(i, votes) -> bool { state[i] += votes; merkle_root(state) == output_account_root}

从上面的伪代码中,我们可以看到验证模型类似于layer1层。

Godwoken主合约使用了一个稀疏merkletree来存储所有的账户和账户状态。

因此,如果我们想要在layer1.5层合约之间使用一个状态,

本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/zx/46444.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年08月07日
下一篇 2023年08月07日

相关推荐

  • 怎么查找智能合约地址,以太坊代币怎么样追回

    一、智能合约文字怎么看见内容在页面中点击查看合约详情。智能合约想要查看文字内容,首先要登录软件,然后点击信息界面,然后在详细信息上方中点击显示智能合约字样,点击查看详情,再点击查看智能合约,就可以看到具体合约内容。智能合约是一种旨在以信息化方式传播、验证或

    2025-06-03 19:00:01
    10 0
  • 比特币收益怎么算的,比特币永续合约中的收益率是怎么计算的

    一、比特币永续合约中的收益率是怎么计算的比特币挖矿机就是用于赚取比特币的计算机。这类计算机一般有专业的挖矿芯片,多采用安装大量显卡的方式工作,耗电量较大。计算机下载挖矿软件然后运行特定算法,与远方服务器通讯后可得到相应比特币,是获取比特币的方式之一。根据中

    2025-06-02 21:00:01
    13 0
  • 0kex交易平台官网,0kex交易所合约教学视频

    在过去的几年中,数字货币交易市场经历了飞速发展,无论是比特币、以太坊,还是其他主流数字资产,都受到了越来越多投资者的关注。随着市场的不断扩大,交易平台的选择也变得更加多样化,如何找到一个安全、稳定且具备创新特色的交易平台,成为了许多投资者面临的一个重要问题

    2025-06-01 13:49:29
    10 0
  • 合约费率太高是什么意思,合约费率怎么算

    一、怎么看数字货币交易所合约交易中的资金费率很多投资者都对这个标题感到困惑。有些投资者对数字货币交易所的所作所为也一无所知。数码货币交易所是本质上与交易所、期货交易所、债券交易所等数字货币交易场所。众所周知,只要是交易所,就有一定的手续费。现在虚拟数字货币

    2025-06-01 10:00:01
    12 0
  • 币本位合约怎么操作,币本位合约是什么币本位合约如何交易

    一、欧易okx合约交易怎么做欧易合约交易玩法不少小伙伴都有在参与,但是对于刚开始玩合约的用户来说,可能还不太清楚具体的玩法规则是什么样的。对此,深空游戏小编特意为大家准备了这边详细的内容攻略,让我们一起来看看吧!欧易合约怎么玩?合约交易是指买卖双方约定在未来

    2025-06-01 07:30:01
    10 0
  • 以太坊需要什么语言,以太坊智能合约的语言是什么

    一、以太坊是什么丨以太坊开发入门指南以太坊是什么丨以太坊开发入门指南很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。以太坊是什么以太坊(Ethereum)是一

    2025-05-30 22:30:01
    12 0

发表回复

8206
验证码

评论列表(0条)

    暂无评论

ok交易所
已有100万用户加入ok交易所

立即下载