微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以太坊区块链启用网站究竟是什么从技术上讲?

如何解决以太坊区块链启用网站究竟是什么从技术上讲?

有一些关于 DeFi 的炒作,它基本上是针对以太坊的
(我还没有看到其他促进 DeFi 术语使用的非以太坊区块链)。 然后是 MetaMask,它是作为 Chrome 浏览器插件分发的必不可少的钱包。

但是一些区块链站点特别需要MetaMask并在它们之间建立一些通信。

我知道以太坊,但它是区块链,基本上是后端技术。
我认为这与浏览器和网站无关。

到底什么是(从技术上讲)启用了以太坊区块链的网站?
或者反过来说,MetaMask 与访问过的网站究竟是如何交互的?

解决方法

网站如何与 MetaMask 扩展程序交互

Metamask 扩展将 ethereum 属性注入到 JS window 对象中。此属性链接到 Metamask 扩展的 JS API,允许网站进行某种程度的控制 - 例如“打开一个窗口请求用户提交此交易”(但不是“获取私钥”例如)。

此示例 JS 代码将打开 Metamask 窗口,并在点击 myBtn 时要求用户授予与网站共享其(公共)地址的权限。然后将共享地址保存到 accounts 变量中。

$('#myBtn').click(async (e) => {
    let accounts = await window.ethereum.request({
        'method': 'eth_requestAccounts'
    });
}

您可以在 https://docs.metamask.io/guide/getting-started.html#getting-started

找到更多信息 ,

基本上在去中心化应用程序 (DApp) 中,HTML 前端直接与区块链交互,而无需通过网络服务器。这是通过独立于 DApp 存在的钱包完成的,确认所有交易。任何发送的交易都通过 JSON-RPC API node 直接从前端发送到以太坊区块链(请参阅请求往返描述的链接)。

与使用服务器端后端的集中式 Web 应用程序的主要区别

  • 后端开发人员不能违反(智能)合同的条款,例如把用户的钱偷到自己的口袋里。 This is called non-custodial model and it mitigates counterparty risk

  • 后端不能拉钱或让用户做他们不能接受的事情,因为钱包确认了所有的交易。用户或其资深代表可以仔细检查钱包将在区块链上交互的所有智能合约。

  • 与中心化服务不同,区块链永远不会宕机,因为它是高度分布式的(10,000 个节点)

  • 用户使用 ETH 作为交易费用的货币自行支付所有交易费用。

请注意,该模型并非以太坊独有,也被许多其他区块链使用。可以找到实时 DeFi 应用程序,例如在 EOS、Solana 和 NEAR 区块链以及许多与以太坊虚拟机兼容的链上,如 Polygon、Avalanche 和 Binance Smart Chain。

请注意,目前大多数用户仍然需要信任从某个集中式 Web 服务器下载的 HTML 代码。我们已经看到例如过去的 DNS 接管攻击。但是,这仍然大大降低了风险,因为对 Web 应用程序的任何“登录”都不会自动将用户置于风险之中,因为钱包仍然需要确认任何交易。

另请注意,对于不涉及金融资产或其他具有价值的资产(如 NFT)的应用程序,区块链毫无意义,因为区块链的主要用例是解决金融主权并消除交易对手风险。这种权衡伴随着高昂的交易成本和对某种加密货币的需求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?