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

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

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

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

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

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

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

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

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

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

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

以太坊交易结构

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

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

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

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

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

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

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

签署以太坊交易

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

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

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

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

立即签名,稍后再转

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

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

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

AVAX?区块链技术代币激励机制研究

中本聪于2009年发布的《比特币:一种点对点的现金支付系统》中将区块链技术规纳为一种去中心化的由各个参与节点验证存储、防篡改、可追溯、去中心化的分布式账本。中本聪为了鼓励更多的节点参与验证交易工作,创设了代币的激励机制,鼓励节点矿工参与验证工作,同时获得代币奖励与手续费奖励作为回报。

SAND争议继续:比特币挖矿系统如何影响碳足迹?

围绕比特币挖矿生态系统对环境影响的争论再次升温,研究者对这个问题提供了一些新的观点。诺亚?史密斯(Noah Smith)曾是一名助理金融学教授,现在则是一名专栏作家。今年3月,他发表了一篇评论文章,矛头直指比特币挖矿业,他指出比特币网络不断增长的能源消耗是不可持续的。

欧易okex官网Plasm先行网Shiden的平行链竞拍策略

总体而言,我们为 Kusama 网络拍卖预留了 30% 的储备金。对于第一次拍卖,我们将使用 15% 的 SDN 令牌(6,750,000 SDN)。通过锁定 KSM 11 个月(连续 1-8 个周期),所有众筹和拍卖参与者都可以获得 SDN 令牌。 我们将进行面额更改,15% 的代币差不多是 6,750,000 SDN。

NEAR?比特币私钥丢失的相关法律问题研究

当下,1枚比特币价格已近6万美元。越来越多的投资者选择投资比特币。通常,投资者通过私钥、助记词来保有比特币。随着比特币愈发珍贵,一些犯罪分子盗取私钥或者助记词,取得投资者数字货币地址中的比特币。还有一些投资者将自身持有的比特币私钥、助记词忘记,导致对应数字货币地址中的比特币无法使用。

[0:78ms0-3:56ms