首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EOA是如何工作的,它们与智能合同的交互是什么?

EOA是如何工作的,它们与智能合同的交互是什么?
EN

Ethereum用户
提问于 2021-02-03 12:44:49
回答 2查看 2K关注 0票数 1

在网上阅读和搜索之后,我仍然对EOA的工作方式以及它们与智能合同的关系有很多疑问。我的dapp背后的想法是允许用户预订。如果不符合某些条件,它还提供退款。我知道我必须在web3.js中实现一个组件,它发送事务(我决定称之为合同管理器)和可靠的智能契约。我对如何开始这一进程有疑问。我的想法是只有一个EOA (我认为它在合同经理(?)中)它收集客户数据(客户id和支付),并通过事务将其发送到智能合同。

我的问题是:

  • 是否可能只有一个收集所有前端请求(客户id +支付)的EOA?这是客户的EOA身份吗?那么,一个EOA (合同经理)收集许多EOA +付款?
  • 每个客户的付款(这是由合同经理收取)必须是以次充好还是以实际资金支付?
  • 正确的说法是,我的合同经理(用web3.js实现)拥有唯一将事务发送到智能合同的EOA吗?
EN

回答 2

Ethereum用户

回答已采纳

发布于 2021-02-03 15:58:44

这涉及以太的几个部分如何工作。我试着用一种可以理解的方式来解释:

1.)Ethereum拥有“外部拥有的账户”(EOAs)和“合同账户”。EOA很像普通的银行账户。他们有一个地址(IBAN)和一个余额(以以太为单位)。基本上,EOA的所有者拥有一个公钥对,其中只有他知道私钥。匹配的公钥是“EOAs”地址- "IBAN“。现在,只有EOA的所有者可以通过在过程中使用私钥从该帐户转移以太(=“取款或电汇”)。简而言之,EOA由各自的所有者“直接拥有和控制”。合同账户“不属于”任何人。它们只是单独存在,并存储智能契约代码。他们也有地址等,但没有人拥有匹配的私钥。因此,包含智能合同逻辑控制合同帐户。有关更好的解释,请参见:https://github.com/ethereumbook/ethereumbook。如果你和Ethereum一起工作,考虑买这本书。每一分钱都值!

2.)您描述的场景可能有一个智能合同(即合同帐户,而不是EOA),它接受客户的付款(即从EOA),然后存储谁(=哪个地址)付款的列表。在智能契约中,这可以通过mapping来实现。支付给smart合同的款项随后可以转发到“业务所有者”地址(EOA)。

总之,对于你们的问题:

  • 不,你会有一个接受预订的合同账户
  • 从技术上讲,你也可以通过签证付款,只需将“收据”储存在连锁店中。不建议你这么做!您也可以使用自己的预订令牌。我想用以太付款是这里最好的办法。总之:你为什么一开始就想在Ethereum中实现这一点呢?
  • 您的web3.js只需将事务发送到块链。我想你会有一个网络应用程序,它允许客户预订,然后支付(并记录)在Blockchain上。在这里,客户将使用他的钱包(例如Metamask)支付给您的帐户,您的后端将听到一个事件告诉您预订和付款通过。

3.)根据您到底想做什么,您还可以为预订发出(不可替换的)令牌。想要“购买”预订的顾客购买一种令牌。参见,例如,对于这样一个令牌的标准,例如https://ethereum.org/en/developers/docs/standards/tokens/erc-721/

4.)无论如何,请考虑这样一个事实,即在区块链上存储个人信息是错误的做法,因为所有内容都是公开的,以后不能删除。一个更好的方法可能是你的客户付钱给你(例如以太),然后你为他发出一个所谓的“可核实的索赔”,声明你确认了他的预订和付款。这发生在非链上,只有一个散列存储在区块链上。一般的方法称为“自我主权身份”(SSI)。如果您想跟进这个问题,请参阅系统,如"Sovrin“或"uPort”。https://medium.com/uport/erc1056-erc780-an-open-identity-and-claims-protocol-for-ethereum-aef7207bc744

希望这能帮到你。

票数 3
EN

Ethereum用户

发布于 2021-02-03 13:56:26

EOA总是有一个私钥来签署交易。因此,如果您计划使用一个通用的EOA (后端管理器),那么所有事务的发送方将是EOA --而另一个也将支付所有的煤气费。

如果您希望从用户那里获得一些以太资产(以太或一些令牌)作为支付,用户需要自己的钱包(EOA)从哪里支付资产。然后他们会用资产向你的普通EOA发送一笔交易。但是,如果他们只是简单地将事务发送到您的智能契约,而没有通用的EOA,那么就会更容易了。用户还可以在提交事务时输入他们的一些唯一ID。

如果你想要获得非密码资产,那么你需要想出一些方法来处理它们--这部分与区块链无关。

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

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

复制
相关文章

相似问题

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