Klaytn 계정(account)은 개인의 잔액 또는 스마트컨트랙트에 관한 정보를 포함하는 데이터 구조입니다. 클레이튼의 상태(state)는 모든 계정의 상태, 클레이튼 계정들에 저장된 모든 데이터의 과거와 현재 상태를 의미합니다. 노드에서 트랜잭션이 실행되면 클레이튼의 상태는 모든 노드에서 변경됩니다. 클레이튼의 노드들이 같은 블록들을 같은 순서로 처리했다면 클레이튼의 상태는 네트워크 모든 노드에서 동일하여야 합니다.
각 계정의 상태 정보는 각 계정의 식별에 사용되는 20 바이트 주소(address)로 참도 할 수 있습니다.
일반적인 블록체인 플랫폼의 계정은 특정 길이의 암호화된 주소와 연결되어있습니다. 이 주소는 키 쌍과 강하게 결합 되어 있습니다. Key pair 가 선택된 경우의 주소는 공개키에서 파생됩니다. 이는 사용자 경험 측면에서 많은 단점을 가지고 있습니다.
사용자가 원하는 주소를 가질 수 없게 됩니다.
보안성을 향상하기 위하여 여러 키 쌍을 사용할 수 없습니다.
개인 키가 노출되었을 때나 사용자가 주기적으로 보안성을 높이기 위하여 개인 키를 변경하고 싶을 때 키 쌍을 변경할 수 없습니다.
이러한 단점들은 블록체인 플랫폼에서 사용자가 주소를 식별자로 생각할 수 없도록 만드는 큰 장애물입니다.
이 문제를 해결하기 위하여 klaytn 은 사용자가 자신의 주소와 키 쌍을 선택할 수 있도록 합니다.
이 기능으로 사용자는 원하는 주소를 선택할 수 있으며, 다중 키 쌍을 사용하고 보안을 강화할 수 있습니다.
키 쌍의 수는 하나 이상이 될 수 있습니다.
각각의 키 쌍은 다른 역할을 수행할 수 있습니다.
개인 키를 도난당하거나, 개인 키가 노출된 경우 다시 안전한 상태로 되돌릴 방법이 없습니다.
가장 좋은 방법은 새로운 키 쌍을 생성하여 다른 계정을 만들고 기존 계정에서 잔액을 옮기는 것입니다. 다중 서명 또는 용도별 키와 같은 고급 키 체계가 지원되지 않으면 매우 불편합니다.
이러한 문제를 더욱 효율적으로 해결하기 위하여 여러 기능들을 제공합니다.
클레이튼 계정은 키 쌍과 연결되는데 이 키 쌍은 변경될 수 있습니다.
클레이튼 계정은 다중 키 쌍을 지원하며, 각각의 키는 다른 목적을 가지게끔 할 수 있습니다.
클레이튼 계정은 주소와 강하게 결합한 단일 키를 가진 계정과 호환됩니다.
클레이튼 계정의 역할 기반키나 다중 키 기능을 이용하여, 사용자는 실생활에서 일어날 수 있는 개인 키의 노출 등 보안 위협에 더욱더 잘 대처 할 수 있습니다.
사용자가 자신의 개인 키가 노출되었다는 것을 인지하게 되면 사용자는 자신의 계정에서 노출된 키 쌍을 제거하고 새키 쌍을 만들어 노출된 개인 키와 교체할 수 있습니다.
키 교체 작업을 위해서 미리 생성된 계정 정보 업데이트용 키를 이용할 수 있습니다.
이 키는 노출된 개인 키와 별도로 저장되어 있어서 비노출 상태여야 안전하게 이용할 수 있습니다.
Human- Readable Address (HBA)
블록체인 플랫폼의 주소체계는 계정 소유자의 개인정보를 효율적으로 보호한다는 장점이 있습니다.
그러나 사용자의 측면에서는 매우 불편합니다.
인간의 두뇌는 이러한 긴 주소를 암기하거나 인식하는 것이 어렵습니다.
그렇기 때문에 이런 주소체계는 입력 실수 같은 다양한 오류를 유발하며 중대한 재정적 손해를 입힐 수도 있습니다. 이런 주소체계는 사용자가 선호하는 기억하기 쉽거나 사용하기 쉬운 주소를 선택한 기회를 뺏어갑니다.
HRA라고 불리는 이 기능은 현재 개발 중입니다.
지갑 키
클레이튼 지갑 키 형식은 해당 주소와 함께 개인 키를 쉽게 다룰 수 있도록 만들어졌습니다.
이는 사용자가 개인 키를 주소와 함께 관리하기 쉽게 만듭니다.
0x{private key}0x{type}0x{address in hex}입니다. 16진법을 따르며, {type}은 00여야 합니다. 다른 값은 예약되어 있습니다.
클레이튼 계정 유형
두 가지 유형의 계정이 있습니다.
외부 소유 계정(EOAs) 와 스마트컨트랙트 계정 (SCAs)
외부 소유계정(EOAs)
외부 소유 계정에는 잔고와 같은 정보가 있습니다.
이 유형의 계정에는 코드나 스토리지가 없습니다. 외부 소유계정은 개인 키로 제어되며 관련 코드를 가지지 않습니다. 외부 소유계정은 키 페어를 사용하여 생성이 되고 키 체인을 가진 어떤 사람이든 외부 소유 계정을 제어할 수 있습니다.
스마트컨트랙트계정 (SCAs)
외부 소유 계정과 다르게 스마트컨트랙트 계정에는 관련 코드가 있으며 해당 코드로 제어됩니다.
스마트 컨트랙트 계정은 스마트 컨트랙트 배포 트랜잭션에 의해 생성됩니다.
일단 배포되면 스마트 컨트랙트 계정은 자체적으로 새 트랜잭션을 시작할 수 없습니다.
외부 소유 계정이나 다른 스마트 컨트랙트 계정에 의해 작동되어야 합니다.
외부 소유 계정의 계정 유형 ID는 0x1
스마트 컨트랙트 계정의 계정 유형 ID는 0x2로 할당되었습니다.
'블록체인 개발할뻔' 카테고리의 다른 글
스마트 컨트랙트의 작동 원리 (0) | 2022.07.13 |
---|---|
스마트 계약 , 스마트 컨트랙트? 개요 (0) | 2022.07.12 |
클레이튼 시작하기 앞서 KCT 알아보기 (1) | 2022.07.06 |
ERC20 장단점, 선택적규칙 다른 이더리움 표준 (0) | 2022.07.05 |
ERC-20 토큰이란? (2) | 2022.07.01 |
댓글