首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在事务中执行代码而不调用合同?

是否可以在事务中执行代码而不调用合同?
EN

Ethereum用户
提问于 2018-03-18 12:38:26
回答 4查看 177关注 0票数 2

正如我们所知,比特币有一个叫做脚本的东西,可以实现一些简单的智能契约形式。它可以使我们能够使用已签名但不传播的事务来实现离链系统,如闪电网络。

现在的问题是,Ethereum事务中是否有类似的功能?与调用智能契约的函数不同,我们是否可以执行某种形式的脚本来验证事务以获得相同的好处?

编辑

这个问题似乎问得太不清楚了。所以我试着用另一种方式问它。

在Ethereum中,我们可以通过交易来调用合同。因此,首先我们必须将一个合同部署到区块链中,然后使用另一个事务调用它。

现在的问题是:是否可以执行一些没有部署到块链,而是存储在事务本身中的代码?

就像我说过的,这在比特币中是可能的,使用交易的脚本,可以实现许多令人兴奋的功能。我想找个办法在以太也这么做。

我希望这一次是清楚的。

EN

回答 4

Ethereum用户

发布于 2018-03-18 22:18:57

最初的海报是在询问Ethereum是否有基于事务的脚本/操作码,这种脚本/操作码的方式类似于比特币,可以用来编写单个交易的脚本来执行操作码,而无需使用智能契约。这样,事务本身就可以以脚本/动态的方式工作(例如,multisig、小计算等),并且不需要契约。

不幸的是,直接的答案是否定的。虽然事务性脚本提供的用例不多,但只要发布一个合同并在发送脚本事务时使用它,就不会有更高的成本效益。所以问题是你为什么不想用合同来结算?

类似于LN的功能,您仍然可以在一个离链的“通道”中交换数据,然后最终将最终结果发布到链中。然而,与比特币不同的是,最终结算将需要在智能合同中进行,而不是在交易脚本中进行。

例如,莱顿可与LN相媲美,但可在ethereum上实现。

您仍然可以在链上对数据进行签名,并将其与链上事务的需要进行通信,但最终需要一些东西来解决平衡/状态中的这些更改。在没有合同或第三方软件服务中介(从本质上填补合同所扮演的角色)的情况下,您可以轻松完成的唯一一件事是来回发送事务签名,这些签名只是arn没有提交到网络上,然后在最后全部提交给网络,但这是有限的,而且对于少数用途的许多警告和安全/信任问题也很方便。

票数 1
EN

Ethereum用户

发布于 2018-03-18 15:55:42

如果我理解的没错的话,你是在问你是否可以有一份聪明的合同,不需要被调用就能完成任务。如果是这样的话,答案是否定的。合同不会在没有调用的情况下做任何事情,所以他们不能在“背景”中运行。

当然,在合同之外(以及区块链之外),你可以做各种各样的事情。您可以验证事务等等(即使我不确定“验证”事务是什么意思)。

票数 0
EN

Ethereum用户

发布于 2018-03-18 16:58:46

我认为这里的问题是,你是否可以签下一个交易链,并将签署的交易用于其他目的(也是离链交易)。你可以这么做。我认为您应该使用这个RPC调用来实现:https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_签名。(有人可以证实这一点。)

如果您询问是否可以在不与智能契约交互的情况下“更改状态”(即不向合同发送事务),则答案是“否”。更改智能契约状态的唯一方法是向其发送有效事务(或发送其他智能契约-导致“内部”消息调用从而更改状态的有效事务)。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/43106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档