Web3js

在前端簽署交易並在後端伺服器上發送

  • April 7, 2022

嗨,我正在製作一個類似於 OpenSea 的 NFT 拍賣網站來學習區塊鏈技術。但是我對在我的應用程序的前端發送交易有一些安全問題,因為如果使用者決定購買 NFT 並且在那裡轉移資金的交易是在前端進行的,他們不能只編輯 javascript 所以他們不除了gas費,還需要支付什麼嗎?如果是這樣,我該如何防止這種情況?可以通過在前端簽署交易然後在後端發送來防止這種情況嗎?

獲得交易詳細資訊後,您可以對其進行簽名並使用已簽名的數據 RLP 編碼。編碼後,您可以使用已簽名的數據,而不必擔心您的使用者是否更改了任何值。 https://web3js.readthedocs.io/en/v1.2.11/web3-eth-accounts.html#signtransaction

希望這可以幫助。

您可以在智能合約中進行驗證。

function buy(uint256 tokenId) public payable {
   require(msg.value == tokens[tokenId].price, "Not valid price");
}

使用者可以修改交易,但如果價格不正確,它將恢復。

引用自:https://ethereum.stackexchange.com/questions/107703