시스템 계정 및 차단된 주소
네트워크 자금과 핵심 프로토콜 기능을 관리하는 특수 목적 계정으로, 일반 사용자 상호작용이 제한됩니다.
마루 네트워크는 스테이킹 보상, 수수료 징수, 거버넌스와 같은 핵심 기능을 위해 프로그래밍 방식으로 토큰을 관리하기 위해 모듈 계정으로 알려진 여러 시스템 계정을 활용합니다. 이러한 계정에는 개인 키가 없으며 각 모듈의 로직에 의해서만 제어됩니다. 프로토콜의 안정성과 보안을 보장하기 위해, 이러한 모듈 계정들은 이더리움 프리컴파일 주소와 함께 '차단된 주소'로 지정되어 사용자가 직접 토큰을 전송하는 것을 방지합니다.
모듈 계정 권한
각 모듈 계정은 그 능력을 정의하는 특정 권한을 가집니다. 이는
config/marood_config.go에 정의되어 있습니다. 주요 예시는 다음과 같습니다:mint모듈: 블록 보상을 위해 새로운aokrw토큰을 생성할 수 있는minter권한을 가집니다.staking모듈 풀: 본딩된amaroo토큰의 생명주기를 관리하기 위해burner및staking권한을 가집니다.gov모듈: 실패한 거버넌스 제안의 예치금에서 토큰을 소각할 수 있는burner권한을 가집니다.erc20모듈: 코스모스 네이티브 토큰을 잠그고 그에 해당하는 ERC20 표현을 민팅하거나, 그 반대의 작업을 수행하기 위해minter및burner권한을 가집니다.
차단된 주소 목록
BlockedAddresses 함수는 표준 bank.Send 트랜잭션의 수신자가 될 수 없는 주소의 포괄적인 맵을 생성합니다. 이 목록은 우발적인 자금 손실 및 악용을 방지하는 데 중요합니다. 여기에는 다음이 포함됩니다:1. 모든 모듈 계정: 등록된 모든 모듈의 이름에서 파생된 주소 (예:
auth, gov, staking, evm).2. 이더리움 네이티브 프리컴파일: 이더리움이 암호화 함수를 위해 예약한 첫 번째 주소 집합 (예:
0x00...01에서 0x00...09까지).3. 마루 정적 프리컴파일: 마루의 커스텀 프리컴파일(PCL, 신원 등) 및 코스모스 EVM에서 사용 가능한 기타 프리컴파일의 주소.
개발자에게 미치는 영향
마루에서 스마트 컨트랙트나 애플리케이션을 개발할 때 이 목록을 인지하는 것이 중요합니다. 표준 전송 함수를 사용하여 차단된 주소로 직접 토큰을 보내려고 시도하면 트랜잭션이 실패합니다. 이러한 시스템과의 상호작용은 스테이킹 모듈의 메시지를 통한 스테이킹이나 직접 전송이 아닌 컨트랙트 호출을 통한 프리컴파일과의 상호작용과 같은 적절한 채널을 통해 이루어져야 합니다.