金色觀察|infura制裁特定地區用戶 以太坊去中心化了嗎一、事件緣由
一、事件緣由
俄烏衝突,歐美對俄羅斯制裁。
3月4日,委內瑞拉MetaMask用戶發現無法訪問MetaMask錢包,因為Infura為響應美國對俄羅斯及烏克蘭部分地區的制裁,而對Infura的API配置進行更改,但改錯了。致使委內瑞拉用戶無法通過MetaMask訪問以太坊節點。
Infura發言人表示,作為一家美國公司,Infura密切關注美國的對外制裁計劃,並嚴格調整其政策以遵守美國法律。受到制裁影響的地區包括伊朗、朝鮮、古巴、敘利亞和克裏米亞、頓涅茨克和烏克蘭盧甘斯克地區。
其實此前就發生國多次因Infura故障導致Metamask無法使用的情況。比如,2月5日Infura宕機,導致用戶無法通過MetaMask使用Dapps。
二、Infura部分客戶
據Infura官網,目前使用Infura作為以太坊客戶端API的主要應用如下:
但因為兩個原因,1、Infura和Metamask均為Consensys旗下產品。2、Metamask覆蓋最主要的以太坊用戶群體,所以絕大多數以太坊用戶是通過Infura和以太坊區塊鏈交互的。
Infura原理如下:
來源:https://infura.io/product/ethereum
要了解Infura是如何讓影響到Metamask的,需要了解一下以太坊的堆棧。
三、以太坊堆棧
以太坊堆棧可抽象為5層,從下向上分別為:
第1級:以太坊虛擬機EVM
以太坊虛擬機EVM是以太坊智能合約運行時的環境。以太坊區塊鏈上的所有智能合約和狀態變化都是通過交易來執行的。EVM處理以太坊網絡上的所有交易處理。
與任何虛擬機一樣,EVM在執行代碼和執行機器(以太坊節點)之間創建了一個抽象級別。目前,EVM運行在分布在世界各地的數千個節點上。
在底層,EVM使用一組操作碼指令來執行特定任務。目前有140個唯一的操作碼,這組操作碼確保EVM圖靈完備。圖靈完備的意思是只要有足夠資源,EVM幾乎可以計算任何東西。
作為dapp开發人員,不需要對EVM有太多了解,只要它存在並且它可靠地為以太坊上的所有應用程序提供動力而無需停機。
第2級:智能合約
智能合約是在以太坊區塊鏈上運行的可執行程序。使用特定編程語言Solidity編寫,然後編譯為EVM字節碼,EVM字節碼也就是上文的操作碼,是一種低級機器指令。
智能合約不僅是开源的庫,本質上是开放的API服務,始終在以太坊上運行且無法關閉。智能合約提供了用戶無需許可即可和Dapp交互的功能。這也意味着可組合性,任何應用程序都可以與已部署的智能合約集成以組成新功能。任何人都可以將新的智能合約部署到以太坊,以添加自定義功能以滿足其需求。
第3級:以太坊節點
為了讓Dapp與以太坊區塊鏈交互,它必須連接到以太坊節點。連接到節點後,你才能讀取區塊鏈數據或者將交易發送到網絡。
以太坊節點是運行以太坊客戶端軟件的計算機。客戶端是以太坊的一種實現,它驗證每個區塊中的所有交易,保持網絡安全和數據准確。以太坊節點共同存儲以太坊區塊鏈的狀態,並就交易達成共識以改變區塊鏈狀態。
Dapp通過JSON-RPC(遠程過程調用)API連接到以太坊節點或者自己的以太坊節點,Dapp能夠從區塊鏈讀取數據(如用戶帳戶余額)以及向網絡廣播新交易(例如在账戶之間轉移ETH或者執行智能合約功能)。
第4級:以太坊客戶端API
由於以太坊全節點太大以及帶寬要求,很多Dapp开發者不會自己安裝以太坊全節點,市場上出現許多由以太坊开源社區或者專業服務商構建和維護的以太坊客戶端API,允許Dapp連接到以太坊區塊鏈並與之通信。這些API抽象出直接與以太坊節點交互的大部分復雜性,开發人員可以花更少的時間處理復雜的以太坊客戶端,而將更多時間專注於特定功能。
如果面向用戶的是Web應用程序,可以直接在前端選擇JavaScript API或者選擇使用Python或Java API在服務器端實現。
第5級:終端應用程序
最頂層是面向用戶的App。這和互聯網开發的標准程序一樣,主要是Web和移動App。
四、web3架構
前端代碼需要籤名以及和以太坊上的智能合約通信;籤名需要用到錢包,最多的是Metamask;籤名後信息廣播到以太坊上有兩種方式:1、自己運行的以太坊區塊鏈節點;2、使用Infura、Alchemy和Quicknode等第三方服務提供的節點。
所以一個以太坊上的Dapp的典型架構如下:
所以如果Infura拒絕特定地區IP地址的用戶,那么他的交互將被排除在以太坊網絡之外。
因為Metamask的以太坊客戶端API默認用的是Infura,這也意味着這些地區的用戶使用Metamask無法和Dapp交互。但Metamask畢竟是去中心化自我托管的,所以用戶還可以用選擇使用其他以太坊客戶端API的錢包甚至自己的以太坊客戶端,來和以太坊區塊鏈上的智能合約交互。
因此Infura拒絕特定地區用戶並不能說明以太坊已經中心化了,只能說明在某些環節中心化了,尤其考慮到Infura和Metamask均為Consensys旗下產品。
五、其他以太坊客戶端API
下述是除了infura之外的以太坊客戶端API,其中Dapp應用比較多的是Alchemy和QuikNode。
Alchemy - Ethereum Development Platform
使用Alchemy的應用
QuikNode - Blockchain developer platform.
使用QuickNode的應用或者服務
BlockCypher - Ethereum Web APIs
Cloudflare Ethereum Gateway.
DataHub by Figment - Web3 API services with Ethereum Mainnet and testnets.
Nodesmith - JSON-RPC API access to Ethereum Mainnet and testnets.
Ethercluster - Run your own Ethereum API service supporting both ETH and ETC.
Chainstack - Shared and dedicated Ethereum nodes as a service.
Python Tooling - Variety of libraries for Ethereum interaction via Python.
web3j - A Java/Android/Kotlin/Scala integration library for Ethereum.
Rivet - Ethereum and Ethereum Classic APIs as a service powered by open source software.
Nethereum - An open source .NET integration library for blockchain.
Tatum - The ultimate blockchain development platform.
Watchdata - Provide simple and reliable API access to Ethereum blockchain.
Zmok - Speed-oriented Ethereum nodes as JSON-RPC/WebSockets API
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
金色財經 Maxwell
文章數量
186粉絲數
0