到底什么(从技术上讲)是支持以太坊区块链的网站?

What exactly (technically speaking) is Ethereum blockchain enabled website?

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

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

我知道以太坊,但它是区块链,基本上是后端技术。
我觉得跟浏览器和网站没有关系。

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

网站如何与 MetaMask 扩展交互

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

此示例 JS 代码打开 Metamask window 并在单击 myBtn 时请求用户允许与网站共享他们的 (public) 地址。然后将共享地址保存到 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 前端直接与区块链交互,而无需通过 Web 服务器。这是通过独立于 DApp 存在的钱包完成的,确认所有交易。任何发送的交易都通过 从前端直接发送到以太坊区块链(请参阅 link 了解请求往返描述)。

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

  • 后端开发人员不能违反(智能)合约的条款,例如把用户的钱偷到自己的口袋里。 .

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

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

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

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

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

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