![](/img/trans.png)
[英]Is there a simpler way to get decentralized data from Chainlink than doing separate multiple API calls through nodes?
[英]Is there a secure way to pass API keys to an oracle in Chainlink?
我正在編寫一個合約(下面的函數代碼),它通過 Chainlink GET function 從 API 中提取數據。我讀過 Provable (Oraclize) 有一個加密 API 請求參數的選項。 Chainlink 是否提供類似的服務? 我一直在谷歌搜索很多,但到目前為止還沒有找到任何有用的東西。 出於顯而易見的原因,我真的很想避免在公共鏈上發送我的 API 密鑰。
function requestVolumeData(string memory apiurl, string memory jsonpath) public returns (bytes32 requestId)
{
Chainlink.Request memory request = buildChainlinkRequest(jobId, address(this), this.fulfill.selector);
// Set the URL to perform the GET request on
request.add("get", apiurl);
request.add("path", jsonpath);
// Multiply the result by 1000000000000000000 to remove decimals
int timesAmount = 10**18;
request.addInt("times", timesAmount);
// Sends the request
return sendChainlinkRequestTo(oracle, request, fee);
}
理想情況下,您根本不想將 API 密鑰放在鏈上,但這里是您使用 Chainlink oracle 處理敏感數據的選項。
當然,這是一個受信任的操作,因為您必須用您的密鑰信任節點操作員。 但是,這將阻止世界看到您的密鑰,節點操作員只能在后端使用它。
您仍然需要為 Chainlink 節點運營商提供一種在后端解密數據的方法,這被認為不太安全,因為您仍在為人們提供訪問您的數據的方法,並且您正在使用它-鏈。
因此,您將運行一個包含另一個 API 的 API。
有計划在某個時候讓 DECO 出現,這將有助於保護私人數據的安全,即使是來自 Chainlink 節點運營商。
唯一安全的方法是使用機密計算。 這就是我們在 Verifiably 所做的。
我猜 Chainlink 最終會添加此功能。 我不確定他們為什么在收購 Town Crier 之后不這樣做,這似乎是很自然的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.