区块链:如何创建和签署以太坊交易?

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

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

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

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

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

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

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

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

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

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

以太坊交易结构

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

可以使用JavaScript对象表示法描述事务,因此在创建该事务时,使用MyEtherWallet如下所示:

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

一个是gasPrice,另一个是gasLimit,这是您的交易中允许使用的最大天然气量。这些值可以从以太坊节点估计,因此通常由钱包提供商自动填写。

大咖零距离 | 如何尽量的以小博大:1月3日20:00,金色盘面邀请实盘大V爆哥做客金色财经《大咖零距离》直播间,将分享《如何尽量的以小博大》,敬请关注,欲进群观看直播扫描海报二维码报名即可![2020/1/3]

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

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

Anonce是以太坊网络用于跟踪交易的数值,有助于避免网络中的双重支出以及重放攻击。有时,由于汽油价格低廉,交易会卡在网络中,因此,以较高的价格广播交易,但同一随机数会在矿工接手后有效地“替换”网络中的待处理交易。

声音 | BB:监管者不知道如何利用区块链应对非传统领域价值储存的需求:Blcok.one的CEO BB发推文表示,监管者虽然知道区块链,但他们不知道如何利用区块链技术来应对主流市场对在非传统领域价值储存的快速增长需求,而这些非传统领域更符合个人的信仰体系。[2019/4/21]

签署以太坊交易

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

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

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

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

立即签名,稍后再转

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

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

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

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

链链资讯

PEPEBTC:4.20晚间行情:行情又开始转牛了吗

文章系金色财经专栏作者币圈北冥供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别防上当.

[0:62ms0-3:454ms