BotTT Ep 4: AIN 계정과 키 서명

AI Network Dev Team
AI Network_KR
Published in
5 min readOct 27, 2022

이 글은 ‘Blockchain on the Tea Table’ 시리즈의 네번째 에피소드입니다. 프린터 전용 버전을 다운 받으실 수 있습니다.

by Dongil Seo

AIN 계정

다른 블록체인 프로젝트에서와 마찬가지로 AIN 블록체인에서도 AIN 계정이라고 불리는 암호화 계정을 만들고 관리하기 위한 서비스들을 제공하고 있는데 이는 자기주권신원(self-sovereign identity)의 구현에 필수적입니다. AIN 계정들을 이용해서 사용자들은 블록체인 상의 네이티브 AIN 토큰과 같은 디지털 자산들을 안전하게 관리하고 키 서명(key signing)을 통해서 자신의 신원을 증명할 수 있습니다(주의: ERC20 AIN 토큰을 위해서는 이더리움 계정이 필요합니다).

AIN 계정 만들기

AIN 계정은 tools/account/createAccounts.js 라는 도구를 사용하면 아래와 같이 쉽게 만들 수 있습니다.

$ node createAccounts.js 1
Number of accounts to create: 1
Creating an account with prefix ''..
Account: {
"address": "0x0cef4322BaA1f2350D7247e04E40A9c2953B301b",
"private_key": "18189971c254ab3ac1e853d2c59218c744bd99736174cfa065469e621aed4a95",
"public_key": "4804e25f570d644c0d05927020c4076f55087100c43e1cc1db8f8870f39ca02445d501b9fc212aadd4567d8f3ef873aa8f77d301aa706d58eb4b7ec4a5879054"
}
Created accounts:
[
{
"address": "0x0cef4322BaA1f2350D7247e04E40A9c2953B301b",
"private_key": "18189971c254ab3ac1e853d2c59218c744bd99736174cfa065469e621aed4a95",
"public_key": "4804e25f570d644c0d05927020c4076f55087100c43e1cc1db8f8870f39ca02445d501b9fc212aadd4567d8f3ef873aa8f77d301aa706d58eb4b7ec4a5879054"
}
]

AIN 계정은 주소, 공개키, 개인키로 구성되어 있습니다. AIN 계정의 개인키는 비밀키라고도 불리는데 이 정보만으로도 나머지 정보들을 쉽게 만들어낼 수 있기 때문에 아주 조심스럽게 보관해야하는 계정의 핵심 정보입니다.

키 서명

키 서명은 대상 데이터와 개인키로부터 서명을 만들어내는 과정을 의미합니다. 이때 만들어진 서명은 후에 1) 해당 서명이 특정 주소를 가지는 계정에 의해서 서명되었다는 사실과 2) 대상 데이터가 서명 이후에 위변조 되지 않았다는 사실을 검증하는데에 사용될 수 있습니다. 예를 들어 트랜잭션 바디는 함수 signTransaction()에 의해서 다음과 같이 서명될 수 있습니다.

여기서 chainID는 서명이 진행될 대상 (테스트넷인지 메인넷인지와 같은) 블록체인의 ID를 나타냅니다(참조: Network ID and Chain ID). 체인 ID가 다른 서명들은 서로 호환되지 않는데, 예를 들어 테스트넷에서의 서명은 메인넷에서는 유효하지 않습니다.

서명 검증

대상 데이터, 서명, 그리고 주소가 주어지면 함수 verifyTransaction()에서와 같이 서명 검증을 수행할 수 있습니다.

데이터 검증 외에도 AIN 계정과 키 서명을 사용하여 할 수 있는 대표적인 일들은 다음과 같습니다.

  • 사용자 인증 (로그인 기법)
  • API 서버에 대한 접근 권한 관리
  • 비대칭 암호화 기법을 통한 안전한 통신 (참조: Public-key cryptography)

AIN 계정은 AIN 블록체인으로 가는 승차권을 얻은 것과 같습니다(즐거운 여행 되시길..).

AIN 블록체인은 여전히 성장 잠재력이 큰 프로젝트로서 개발팀은 현재 유연성(flexibility), 성능 및 보안성을 높이기 위해서 많은 노력을 기울이고 있습니다. 향후 새로운 소식이 궁금하시다면 아래 링크들을 참조하세요.

Printer-friendly version:
https://docs.google.com/document/d/10Ef33gYeei3WopKUp7YDk9lfP90WhK6xSYn1bhSzHKE/edit

--

--