当前位置:首页区块链如何创建和签署以太坊交易?

如何创建和签署以太坊交易?

如何创建和签署以太坊交易?

由于所有数字资产都是通过交易创建的,因此签名在任何区块链中都起着至关重要的作用。在本文中,我们将向大家介绍如何对以太坊交易进行签名,探索如何使用这些数字来签署操作数字资产等的操作。

交易-与旧交易,与新交易

区块链交易与银行交易没有什么不同?现如今,大多数银行可以轻松地使用数字化方式将钱汇给某人,将钱存入您的储蓄帐户,甚至提取贷款。互联网时代使我们能够在线执行大多数此类操作,而无需任何物理交互。

尽管它们易于使用,但对于银行而言,这些操作绝非易事,同时也不便宜。在幕后,您的银行业务的清算,验证和确认涉及多个第三方,而且还要保持对银行法规的遵守。

金融机构必须采取冗长的措施,以确保您确实是有权操作您的帐户的个人。所有这些层级都会产生大量成本,诸如Visa或MastERCard之类的付款**通常会根据交易金额对每次购买收取费用的众多原因之一。当然,无论何时何地,这些操作都可以冻结,并且在某些情况下也可以还原。

如何创建和签署以太坊交易?1

区块链交易的行为遵循不同的规则集

由于公共区块链的分布式和未经许可的性质,任何人都可以签署交易并将其广播到网络。根据区块链的不同,您将收取一定费用,以允许“挖矿”交易(即由矿工捡起并包含在区块链中),但该费用通常基于区块链中的用户需求,而不是基于交易中资产的价值。例如,从一个以太坊账户向另一账户发送$ 1的费用将与发送$ 100万相同。矿工可以平等地接受这两项交易,并将其添加到有效块中以广播到区块链。

如何创建和签署以太坊交易?2

此外,区块链交易无需任何中央机构的验证。为了使交易有效,仅需使用与其区块链相对应的数字签名算法(DSA)使用私钥对其进行签名。以太坊和比特币区块链使用ECDSA算法,而Cardano或Polkadot等其他项目则依赖EdDSA算法。

两者都依靠椭圆曲线,而后者使用扭曲的爱德华兹曲线,这是对通用数字签名的改进。尽管可以使用任何私钥对交易进行签名,但是只有与用于签署交易的私钥相关的帐户包含足够的资金时,转移交易才会成功执行。

如何创建和签署以太坊交易?3

一旦一笔交易被签名,广播到网络中并被挖矿到网络中成功的区块中,就无法恢复交易。与银行业务不同,成功挖矿的区块链交易无法还原或恢复到先前交易的状态。大多数公共区块链交易的性质使它们可见,因此,用于这些交易的区块链是这些资产的最终真实来源。

以太坊交易结构

现在我们已经充分了解了区块链交易的本质,我们准备创建我们的第一个基于以太坊的交易。我们将从一个简单的转移交易开始:将0.1 ETH转移到address。

如何创建和签署以太坊交易?4

可以使用JavaScript对象表示法(ON)描述事务,因此在创建该事务时,使用MyETHerWallet(通过send offline登录后使用)如下所示:

如何创建和签署以太坊交易?5

随即跳出几个值:nonce,gasLimit,gasPrice,data,和chainId。这与我们的交易内容没关,而是与我们的交易执行方式有关。这是因为在以太坊中发送交易中,您必须定义一些其他参数来告诉矿工如何处理您的交易。我们交易中的两个属性涉及“ gas”,这是计算工作量的度量单位,必须将其支付给以太坊矿工才能将交易提交到区块链网络。

一个是gasPrice(以名为Gwei的单位表示,等于1/10是以太坊的本机代币以太坊),另一个是gasLimit,这是您的交易中允许使用的**天然气量。这些值可以从以太坊节点估计,因此通常由钱包提供商自动填写。

如何创建和签署以太坊交易?6

除了gas参数之外,您还必须指定将在哪个特定的以太坊网络上执行该交易。以太坊网络包括带有chaidId 1的主网络(mainnet),但是由于可以通过在线水龙头请求或资助testnet ETH,因此可以向您提交交易的其他测试网络(testnet)没有任何经济价值的风险。通常,在开发Dapp时,您将首先在本地网络上运行它,然后将其部署到测试网,作为**一步,然后再进入主网上。

**但并非最不重要的一点是,我们有data和nonce,如果您需要提交一些其他数据时,您可以将其作为事务的一部分附加。与智能合约进行交互时,数据字段将包含您对该合约的指令。

A nonce(“仅使用一次的数字”)是以太坊网络用于跟踪交易的数值,有助于避免网络中的双重支出以及重放攻击。有时,由于汽油价格低廉,交易会卡在网络中,因此,以较高的价格广播交易,但同一随机数会在矿工接手后有效地“替换”网络中的待处理交易(一旦“缓慢”可以看到“”交易,因为它与已批准的交易具有相同的现时数,因此将被拒绝)。

签署以太坊交易

抓住我们以前的ON,我们终于可以继续进行签名过程了。如我们所述,此过程涉及ECDSA算法。为了与ECDSA签署交易,我们将使用流行的ETHers.库,该库已经包装了对椭圆曲线包的必要调用,以便将secp256k1曲线与ECDSA算法一起使用。

如何创建和签署以太坊交易?7

您可以在Runkit中在线测试此代码,并使用私钥将其与MyETHerWallet(MEW)的结果进行匹配。

如何创建和签署以太坊交易?8

结果表示您已签名的交易,可以广播到以太坊网络。

如何创建和签署以太坊交易?9

您可以直接使用MEW或Alchemy的在线实用程序Composer,它允许您使用用于与以太坊节点通信ETH_sendRawTransaction的RPC API方法将已签名的交易传递到以太坊网络。

立即签名,稍后再转

如上所述执行的交易签名称为“离线签名”。由于我们的私钥处于我们的控制之下,因此我们可以使用以太坊帐户创建签名验证,并在以后将其广播到以太坊网络。许多在线钱包同时进行签名和广播(例如Metamask,Portis)。但是,脱机签名对于诸如状态通道之类的应用程序特别有用,这些通道是跟踪两个帐户之间余额的智能合约,并且在提交已签名的交易后就可以转移资金。

脱机签名也是去中心化交易所(DEXes)中的一种常见做法,在该交易所中,买卖订单存储在链外,并且仅在与适合先前签署的交易的订单匹配时才在链上结算。

使用Portis,您可以签署交易以与加油站网络(GSN)进行交互。为了与GSN进行互动,Portis订阅了一个中继站池,这些中继站能够支付您交易的汽油费。这些中继器订阅去中心化合同(例如Ropsten测试网中的这一合同),Portis向他们发送请求以中继您的交易。您仍然需要签署交易(毕竟,未签署的签名是没有意义的),但是Portis小部件会在后台执行所有之前的处理,因此即使使用全新的钱包,用户也可以开始签署交易并与智能合约进行交互。没有ETH可以支付汽油费。

温馨提示:

文章标题:如何创建和签署以太坊交易?

文章链接:https://www.btchangqing.cn/236112.html

更新时间:2021年04月18日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

HashSpace哈希宇宙:以无国界社交应用生态打造可信数字宇宙

2021-4-18 14:01:43

区块链

加拿大推出首个以太坊ETF 这对以太坊会产生什么影响?

2021-4-18 14:06:07

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索