链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 狗狗币 > 正文

科普:创建和签名以太坊交易

作者:

时间:

在我们之前的文章中,我们已经讲解了创建私钥的作用以及如何创建一个私钥。具体来说,在第一部分,我们知道了密钥就是一个很大的随机数而已,没有别的;而在第二部分,我们学习了如何用一个很大的随机数来创建一个能够持有资产的以太坊钱包。在这最后一部分里,我们要学习如何使用这样的随机数来签名、操作你自己的虚拟资产。

区块链的交易与银行交易没有特别大的区别。今时今日,大部分银行都支持你用数字手段完成大部分操作:转账给别人、给自己的储蓄账户存钱,乃至借贷,等等。互联网技术让我们可以完成大部分操作,而无需亲自到场。

尽管这些操作对你来说很容易,但对银行来说,既不容易,也不便宜。在幕后,有多个第三方参与你的银行操作的结算、验证和确认。如果这些还不够,为了符合银行业的规范条例,金融机构还必须执行繁琐的措施来确定你(发起操作的人)就是那个有权操作你的账户的人。所有这些层面都会产生繁重的成本,这就是为什么 Visa 和万事达这样的网关在每次提供服务时都要收取费用的原因,通常是根据转账额来收取。而且,当然,任何时候你发起的任何操作,都可以被冻结,乃至被撤销。

在 2017 年,欧盟要求金融机构实现 Payment Services Directive 2 (Directive 2015/2366),也就是银行必须实行包括 SCA(强身份验证)在内的安全条例。由于 PSD2+SCA 的成本,在 2019 年 3 月,也只有 59% 的欧洲银行成功满足了监管要求,让最后通牒时间又推迟了一年。-

区块链交易的规则有所不同

因为公链的分布式和免许可特性,任何人都可以在网络中签名和广播交易。基于区块链的特点,你需要划出一部分资金作为手续费,好让你的交易能被 “挖出”(即, 被某个矿工打包到区块链上),但手续费的高低则要看用户对使用区块链的需求,与转移价值的多少无关。举个例子,用一个以太坊账户给另一个账户转账 1 美元,和转账 100 万美元,要交的手续费是一样的。只要手续费一致,这两笔交易在矿工那里是一视同仁的,都会被打包到有效的区块中,向全网传播。

灰度 CEO:比特币ETF被拒Grayscale Investments可能会起诉SEC:金色财经报道,灰度首席执行官Michael Sonnenshein表示,如果其将300亿美元的比特币信托基金转换为交易所交易基金(ETF)的申请被拒绝,Grayscale Investments可能会起诉美国证券交易委员会(SEC)。美国证券交易委员会批准或拒绝Grayscale申请的最后期限是7月6日。在寻求法律行动时,Grayscale将辩称,美国证券交易委员会已经批准了比特币衍生品支持的ETF,但却一再拒绝现货ETF申请。现货交易的ETF像股票一样追踪基础资产的价格,让投资者更容易接触到该资产。

Grayscale Investments经营着十几只基金,管理着近400亿美元的资产,Grayscale Bitcoin Trust目前的交易价格与资产净值相比有20%以上的折扣。(forkast)[2022/3/29 14:23:57]

区块中包含了一系列的交易,而且区块是一个接一个,只增不减的。因为新区块的部分数据是来自上一区块的,这些 “区块” 就会形成一个接一个的有序链条,这就是 “区块链” 这个名字的由来。区块链还使用了一种易于处理和验证的数据结构,叫做 “默克尔树”,这也是为什么要伪造区块链上的某一笔交易或者某一个区块几乎不可能的部分原因 —— 实在是太容易鉴别了。-

此外,区块链交易不需要任何权威团体的验证。要想发出一笔有效的交易,只需使用对应于所在区块链系统的数字签名算法(DSA)的私钥,为交易生成一个签名即可。以太坊和比特币区块链使用?ECDSA?算法,而 Cardano 和 Polkadot 则使用?EdDSA?算法。这两张算法都依赖于椭圆曲线密码学,但后者使用了扭结的 Edwards 曲线,是一个对通用数字签名的提升。任何账户都能用私钥签名来发起交易,但只有余额足够的地址所发起的交易才能被成功执行。

椭圆曲线签名算法基于 “离散对数问题”, 其经典形式是,给定一个整数 k,使得 a^k ≡ b (mod p),其中 p 是质数,求 k。不像其它公钥密码学算法比如?RSA,仅基于大指数的因式分解问题(这在最近已经成了格密码学(lattice-based cryptography)的攻击目标)。今天还没有发现计算 k 的高效方法(可描述为椭圆曲线上的给定点 P 和 Q)。这也是虽然不同的区块链使用的曲线和签名算法有所不同,但都基于椭圆曲线的原因。-

Yearn.Finance为即将推出的WBTC Vault提交MakerDAO改进提案:Yearn.Finance团队提交了一份MakerDAO改进提案,建议将WBTC Vault添加至白名单以访问即将来自Maker的预言机定价,这表明其离发布不会太远。此外,9月18日,Yearn.Finance推出了新的“SyntheticRebaseDollar”,其中包括“基于credit的rebase指数”。该指数旨在追踪已铸造稳定币锚定基础资产的价值,并根据价格波动自动增加或减少已铸造稳定币的总数。该团队表示,他们“还不确定”将使用该协议做什么,并希望发布该指数,以便其他人利用该技术进行构建和改进。(Cointelegraph)[2020/9/18]

一旦一笔交易有了签名、随签名一起发到了网络中、被打包到了一个成功挖出的区块中,那这笔交易就不能再撤销了。不像银行操作,成功打包上链的交易无法撤销,也无法恢复到还没执行这笔交易的状态。大部分公链都让交易的内容完全可见,所以这些交易所使用的区块链就是这些资产的终极真相来源。

现在我们已经完全理解了区块链交易的特性,我们已经准备好了,可以去创建一笔以太坊交易了。我们从一笔简单的转账交易开始:转账 0.1 ETH 给地址?0x17A98d2b11Dfb784e63337d2170e21cf5DD04631。交易可以用 JavaScript Object Notation(JSON)格式来表达,在创建这笔交易时,我们可以在?MyEtherWallet?上看到这些信息(在登录后使用?send offline):

(编者注:MyEtherWallet 网站最大的用途是帮你生成一个以太坊账户,但直接使用它来发送交易可能需要你暴露自己的私钥或助记词,是一种非常不安全的做法,极度不推荐。如果你想使用 MyEtherWallet,请配合使用他们的浏览器插件或手机钱包,而不是直接使用他们的网站。)

这里马上会跳出几个值:nonce、gasLimit、gasPrice、data?和?chainId。没有一个跟交易的内容有关,但它们都跟交易的执行方式有关。这是因为,为了在以太坊上发送一笔交易,你要事先定义好一些额外的参数,来告诉矿工如何处理你的交易。交易的两个参数都跟 “gas” 有关。Gas 本身是一个单位,用来衡量一笔交易的计算负担,作为给以太坊矿工支付的依据。一个参数是?gasPrice,表示用户愿意为每单位的 gas 支付的单价,以 Gwei 为单位(Gwei 是 ETH 的 1/10^9);另一个是?gasLimit,是用户指定自己的交易可以耗用的最大 Gas 数量。这些参数可以用以太坊节点来估算出一个合理的数值,一般来说都由钱包服务商帮你填好了。

- 以太坊中的价值通常都以 wei 为单位。wei 是以太坊区块链上最小的价值单位,是 ETH 的 1/10^18。Gas Price 则通常以 giga wei(缩写为 Gwei)为单位。Gas Price 在以太坊网络上是个复杂的问题,因为它经常会浮动。EIP-1559?是一个最近通过的网络变更,可能会在今年底推出,可能会缓解 Gas Price 的剧烈波动。除了 wei 和 Gwei,还有其它用于表示价值的单位。要了解这些单位,请访问?eth-converter.com?-

(编者注:作者本文出版于 2021 年 4 月。现已确定,以太坊核心开发者决定在 2021 年 8 月的 “伦敦” 升级中包含 1559。1559 对用户体验的改变体现在,用户不再直接指定 Gas Price,相反,要指定两个数值:MaxFeePerGas 和 MaxPriorityFeePerGas,前者表示你愿意为单位 Gas 支付的最大价格,而后者表示你愿意为单位 Gas 支付给矿工的最大价格;实际上你为 Gas 支付的单价是 min(MaxFeePerGas, MaxPriorityFeePerGas + BaseFee) (即两者中取小的那一个)而 BaseFee 是一个随网络的上一个区块的满载率自动波动的一个数值。矿工得到的单价是你的 Gas 单价减去 BaseFee;而 BaseFee 部分则会被销毁。值得注意的是,在可预见的未来,用户仍然可以使用传统的交易格式来发送交易,但这种格式可能最终会在协议层被废弃,即,本文所讲解的以太坊交易的格式,有一天可能会过时。)

除了 gas 参数,你还需要指定要在哪个网络上执行这笔交易。以太坊网络既包括 chainId 为 1 的主网,也包括其他测试网络(testnet)。你也可以在测试网上发送交易,而且不会损失任何金钱,因为测试网的 ETH 可以用免费获得。一般来说,如果你要部署一个 dApp,那么第一步应该是在本地网络上调试它,然后是部署到测试网上,最后一步才是部署到主网上。

最后,也很重要的是,我们还有?data?和?nonce?。如果你想要在交易中添加额外的数据,你就需要用到?data?字段。在你跟智能合约交互时,data 字段可以包含你给合约的指令。而?nonce?(“仅使用一次的数字”)则是以太坊网络用来跟踪你的账户状态、避免多重支付和重放攻击的一个数值(可以理解成流水号)。当你的交易因为 gas fee 太低而暂时无法打包的时候,你可以使用同一个 nonce 但指定更高的 gas price 来 “替换” 你的那笔卡住的交易;一旦这笔 “更快” 的交易得以打包上链,你原来签名的那笔交易(因为使用了同一个 nonce)就会被以太坊的节点抛弃掉了。

形成了上面说的 JSON 编码,我们就可以往下走,开始签名的流程了。如我们所述,这个过程要用到 ECDSA 算法。这里我们要用到一个常用的库?ethers.js,这个代码库里面已经封装好了在 secp256k1 曲线上使用 ECDSA 算法生成签名所需的椭圆曲线。

上面讲的这个签名过程可以称为 “离线签名”。因为我们是先创建好签名,然后再找办法把它广播出去的。但许多在线的钱包都把签名和广播合并在一起(比如 Metamask 和 Portis),签名之后立即广播。不过,离线签名对许多应用(比如状态通道)来说都是非常实用的。所谓状态通道,就是一个监控两者账户的智能合约,根据这两个账户提交的签名交易,在双方之间完成资金结算。离线签名在去中心化交易所上也是一种常用的实践:买单和卖单都是存储在链下的,只在撮合成功时才把两笔交易上链结算。在 Layer2 方案如 zkRollup 和 Optimistic Rollup 里面也扮演着重要角色。

使用 Portis,你可以使用签名交易与?Gas Station Network (GSN)?互动。Portis 已在 GSN 中订阅了一组中继者,他们可以帮你的交易支付 gas 费。这些中继者关联着一个去中心化的合约(比如 Ropsten 测试网上的这个),Portis 可以请求他们中继你的交易。你仍然需要签名你的交易,但 Portis 会帮你完成其他的一切,这样,即使你用的是一个全新的钱包、没有余额来支付 gas 费,也依然能够跟智能合约交互。在我们的?cryptopuppers?应用上尝试一下吧!如果你想了解更多,这里有 GSN(EIP-1613)的规范。还有,你可以看到来自 TabooKey 团队和 Portis 心爱的 cryptopuppers 应用的联动演示。

讲完了签名的过程,我们这个讲解私钥的系列就要跟大家说再见啦。如果你一期不落,应该能够理解以太坊账户是怎么来的、以太坊的交易是怎么一回事了。

标签:AMMETHUSDSDCGiant MammothETH交易是什么意思lbank怎么充值usdtusdc币圈最新消息

狗狗币热门资讯
押注比特币 MicroStrategy究竟赚了多少钱?

附特斯拉与MicroStrategy加密业绩对比。 北京时间今天凌晨,美股科技公司 MicroStrategy(NASDAQ: MSTR)发布 2021 年第二季度财务业绩报告。

治理的思考:Token与DAO

DAO是Web3时代社区应有的样子,所以下面的内容不再强调DAO,均称为社区。 社区是有着共同价值观和愿景的人汇集在一起,彼此尊重,相互支持,并朝着共同的目标努力,同时让所有成员受益 (精神和物质)。 社区共建并传递我们的文化共识。如果社区只有金钱交易行为,没有人会真正热爱这个社区。 我有一个心愿,希望可以构建一个真正的社区,我也将用一生为之努力。

金色观察|时间加权自动做市商与AMM有什么区别?

金色财经消息,Uniswap创始人正在与Paradigm两名研究院研究新的AMM模型,其研究为在以太坊上处理大额交易,可以将大额交易分成碎片在一定时间内消解。 笔者查阅了Paradigm官网显示文档,将其中关于AMM和时间加权自动做市商TWAMM的区别整理如下: 自动做市商(AMM) AMM将大部分uniswap上的做市过程实现了自动化。

美国五大银行的加密货币观:发行、投资、交易均有涉及

2021年7月16日,美国第二大银行美国银行(Bank of America)批准为一些客户交易比特币期货。美国银行在加密行业一直很保守,此次交易期货服务由于需要大量保证金,现在也仅允许向部分客户开放。

监管 DeFi?FATF 最新合规精神 你需要了解下

对于加密企业 / 团队来说,监管的收紧可能会导致严厉处罚,包括罚款、限制等。为避免这种情况,必须及时做出调整,遵守 FATF (反金融行动特别工作组)的规定。为了让公司或个人做出适当的合规调整,我们首先要理解 FATF 定义的 VASP (Virtual Asset Service Providers,虚拟资产服务提供商)的范畴。

金色DeFi日报 | 暹罗商业银行总裁:DeFi不能被完全监管

DeFi数据 1.DeFi总市值:845.33亿美元 市值前十币种排名数据来源DeFibox DeFi总市值数据来源:Coingecko 2.过去24小时去中心化交易所的交易量:47.4亿美元 过去24小时去中心化交易所的交易量数据来源:Debank 交易量排名前十的DEX 排名来源:DeFibox 3.DeFi借贷平台借款总量:241。