正如我们所知,比特币有一个叫做脚本的东西,可以实现一些简单的智能契约形式。它可以使我们能够使用已签名但不传播的事务来实现离链系统,如闪电网络。
现在的问题是,Ethereum事务中是否有类似的功能?与调用智能契约的函数不同,我们是否可以执行某种形式的脚本来验证事务以获得相同的好处?
这个问题似乎问得太不清楚了。所以我试着用另一种方式问它。
在Ethereum中,我们可以通过交易来调用合同。因此,首先我们必须将一个合同部署到区块链中,然后使用另一个事务调用它。
现在的问题是:是否可以执行一些没有部署到块链,而是存储在事务本身中的代码?
就像我说过的,这在比特币中是可能的,使用交易的脚本,可以实现许多令人兴奋的功能。我想找个办法在以太也这么做。
我希望这一次是清楚的。
发布于 2018-03-18 22:18:57
最初的海报是在询问Ethereum是否有基于事务的脚本/操作码,这种脚本/操作码的方式类似于比特币,可以用来编写单个交易的脚本来执行操作码,而无需使用智能契约。这样,事务本身就可以以脚本/动态的方式工作(例如,multisig、小计算等),并且不需要契约。
不幸的是,直接的答案是否定的。虽然事务性脚本提供的用例不多,但只要发布一个合同并在发送脚本事务时使用它,就不会有更高的成本效益。所以问题是你为什么不想用合同来结算?
类似于LN的功能,您仍然可以在一个离链的“通道”中交换数据,然后最终将最终结果发布到链中。然而,与比特币不同的是,最终结算将需要在智能合同中进行,而不是在交易脚本中进行。
例如,莱顿可与LN相媲美,但可在ethereum上实现。
您仍然可以在链上对数据进行签名,并将其与链上事务的需要进行通信,但最终需要一些东西来解决平衡/状态中的这些更改。在没有合同或第三方软件服务中介(从本质上填补合同所扮演的角色)的情况下,您可以轻松完成的唯一一件事是来回发送事务签名,这些签名只是arn没有提交到网络上,然后在最后全部提交给网络,但这是有限的,而且对于少数用途的许多警告和安全/信任问题也很方便。
发布于 2018-03-18 15:55:42
如果我理解的没错的话,你是在问你是否可以有一份聪明的合同,不需要被调用就能完成任务。如果是这样的话,答案是否定的。合同不会在没有调用的情况下做任何事情,所以他们不能在“背景”中运行。
当然,在合同之外(以及区块链之外),你可以做各种各样的事情。您可以验证事务等等(即使我不确定“验证”事务是什么意思)。
发布于 2018-03-18 16:58:46
我认为这里的问题是,你是否可以签下一个交易链,并将签署的交易用于其他目的(也是离链交易)。你可以这么做。我认为您应该使用这个RPC调用来实现:https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_签名。(有人可以证实这一点。)
如果您询问是否可以在不与智能契约交互的情况下“更改状态”(即不向合同发送事务),则答案是“否”。更改智能契约状态的唯一方法是向其发送有效事务(或发送其他智能契约-导致“内部”消息调用从而更改状态的有效事务)。
https://ethereum.stackexchange.com/questions/43106
复制相似问题