안녕하세요, DAYBIT 팀입니다.
이번주 금요일부터 주요 암호화폐 커뮤니티에서 DAY 토큰 컨트랙트와 관련하여 잘못된 정보가 확산되고 있는 것을 확인하였습니다.
정확한 정보 전달을 통해 오해를 방지하고자 안내드립니다.
[DAY 토큰 컨트랙트 주소]
https://etherscan.io/address/0xcb0c9e609935b61e78096be3bb5859728e3406c6#code
[잘못된 정보]
DAYBIT 보유분인 9억 DAY 토큰은 이미 소각되었으며 DAYBIT은 없는 토큰을 unlock하여 BTC 리워드 대상으로 포함시키고 있다는 문제가 제기되었습니다.
[컨트랙트 간단 설명]
DAYBIT은 정해진 양보다 더 많은 DAY 토큰을 unlock하거나 unlock되지 않은 DAY 토큰를 BTC 리워드에 포함시키지 않게 컨트랙트 소스 코드를 작성하였습니다.
해당 목적 달성을 위해 DAYBIT 보유분으로 발행된 9억개의 DAY 토큰을 먼저 0x0000000000000000000000000000000000000000 계정으로 보낸 뒤 unlock이 가능한 시점에 그 시기에 가능한 양만큼의 DAY 토큰을 위 계정에서 거래소 계정으로 가져옵니다.
[컨트랙트 코드 설명]
위 주소를 통해 진입하신 뒤 [Code] 탭 내 ‘Contract Source Code’를 보시면 319번 째 줄부터 아래와 같은 함수를 확인하실 수 있습니다.
function unlockBalance(uint256 _balance) public onlyOwner {
require(lockedBalance >= _balance, "Cannot unlock more balance than locked balance");
require(_balance <= getUnlockableAmount(), "Too much amount");
lockedBalance = lockedBalance.sub(_balance);
balances[owner] = balances[owner].add(_balance);
emit Transfer(address(0), owner, _balance);
}
require(lockedBalance >= _balance, "Cannot unlock more balance than locked balance")
Lock된 DAY 토큰보다 더 많은 DAY 토큰을 Unlock 할 수 없도록 조건을 설정하였습니다.require(_balance <= getUnlockableAmount(), "Too much amount");
Unlock할 수 있는 양보다 DAYBIT의 DAY 토큰 보유량이 많아지지 않도록 조건을 설정하였습니다.lockedBalance = lockedBalance.sub(_balance);
Unlock된 DAY 토큰 양만큼을 Lock된 DAY 토큰 풀에서 제외합니다.balances[owner] = balances[owner].add(_balance);
DAYBIT의 계정에 Unlock된 만큼 DAY 토큰을 추가합니다.
여기서 맨 아래 줄의 address(0)이 0x0000000000000000000000000000000000000000 계정을 의미합니다. Unlock된 양만큼이 위 계정에서 DAYBIT 계정으로 옮겨지게 됩니다. 위 1항과 2항 조건에 따라 9억 개를 초과하여 Unlock 할 수 없으며 매 시기에 Unlock 할 수 있는 양보다 DAYBIT의 보유량이 많아질 수 없습니다. 따라서, DAYBIT은 정해진 양보다 더 많은 DAY 토큰을 Unlock하거나 Unlock되지 않은 DAY 토큰를 BTC 리워드에 포함시킬 수 없습니다.
[컨트랙트 감사]
스마트 컨트랙트 보안 전문업체인 HAECHI LABS(https://medium.com/haechi-labs)와 계약을 통해 컨트랙트 감사를 진행 중에 있습니다. 감사와 관련한 내용은 추후 별도로 공지드리겠습니다.
감사합니다.
DAYBIT팀 드림