암호화폐/용어

Revoke란?

anecdote 2023. 6. 16. 01:00

Revoke란?

 

Revoke는 내가 승인한 권한을 다시 취소하는 것을 말한다. 이더리움 스마트 컨트랙트에서 다른 지갑 또는 스마트 컨트랙트가 내가 가진 토큰을 전송하거나 소각하는 등의 행위를 허용하게 해주는 것에는 approve, setApproveForAll 등의 함수가 있다. 흔히들 특정 사이트에서 지갑을 연결하거나 signature를 만들기 위해 서명을 하는 등의 행위에 대해서도 불안하게 생각하는 경우가 많다. 하지만 해당 행위들은 온체인에서 일어나는 것이 아니라 해킹과는 크게 연관이 없다. 그래도 불안하다면 메타마스크 등의 연결한 지갑 자체에서 연결된 사이트 목록에서 해당 사이트를 삭제해 주면 된다.

 

function approve(address spender, uint256 amount) public virtual override returns (bool) {
    address owner = _msgSender();
    _approve(owner, spender, amount);
    return true;
}
function _setApprovalForAll(
    address owner, 
    address operator, 
    bool approved 
) internal virtual { 
    require(owner != operator, "ERC721: approve to caller"); 
    _operatorApprovals[owner][operator] = approved; 
    emit ApprovalForAll(owner, operator, approved); 
}

 

보통은 approve 하는 행위는 2차 마켓에서 판매를 하거나 Dex를 통해 스왑하는 경우 많이 사용한다. 앞서 말한 경우라면 괜찮겠지만 해커에게 승인한 경우라면 문제가 될 수 있다. 이때 해야 하는 것이 revoke이다. Revoke 역시 같은 함수를 사용하지만 approved 상태를 False로 하여 호출하게 된다. Revoke cash를 사용하면 내가 approve 했던 것을 볼 수 있으며 간편하게 revoke 할 수 있다. 물론 이더스캔에서 해당 스마트 컨트랙트에 가서 직접 approve를 해주는 방법도 가능하다. 스캠 사이트에서 권한을 주었거나 해킹을 당했다면 우선 revoke를 하여 해커가 내 자산을 움직이는 것을 방지하고 다른 지갑을 쓸 수 있도록 하자.

 

 

'암호화폐 > 용어' 카테고리의 다른 글

faucet  (0) 2023.08.07
비트코인, UTXO란?  (0) 2023.07.13
BRC20이란?  (0) 2023.05.23
이더리움 가스비(Gas Fee)란?  (0) 2023.04.21
Ordinals protocol이란  (0) 2023.04.19