트랜잭션
A transaction in a blockchain platform is a message sent between nodes that changes the state of the blockchain. 예를 들어 Alice의 계정에서 Bob의 계정으로 10 KLAY를 보내는 트랜잭션이 실행될 때 Alice의 잔액은 10 KLAY 감소하고 Bob의 잔액은 10 KLAY 증가합니다. 한 트랜잭션이 다른 트랜잭션 사이에 낄 수 없습니다. 트랜잭션은 아토믹(atomic) 연산이기 때문입니다 일반적인 블록체인 트랜잭션에는 다음과 같은 구성 요소가 있습니다.
구성요소 | Description |
---|---|
value | 명시된 양의 KLAY(단위: peb)가 전송됩니다. |
to | The account address that will receive the transferred value. |
input | Data attached to the transaction, used for transaction execution. |
v, r, s | 수신자가 발신자의 주소를 받을 수 있게 발신자에 의해 발생된 암호학적 서명입니다. |
nonce | 발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다. |
gas | The maximum amount of transaction fee the transaction is allowed to use. |
gasPrice | 발신자가 얼마나 가스비를 지급해야하는지 알 수 있도록 곱하는 값입니다. 발신자가 지급해야할 비용은 gas * gasPrice 로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위는 여기에 설명되어 있습니다. |
일반적인 블록체인 플랫폼은 하나의 트랜잭션 유형만 제공합니다. 하지만, Klaytn은 새로운 기능을 제공하고, 메모리 풋 프린트와 퍼포먼스를 최적화하기 위해 여러 가지 트랜잭션 유형을 제공합니다.
일반적인 블록체인 플랫폼에서 주소는 공개키에서 파생되며, 공개키는 트랜잭션 서명에서 다시 파생됩니다. 이런 방식은 주소와 키 쌍이 강력하게 연결된 경우에만 가능합니다.
클레이튼에서 키 쌍은 Klaytn의 주소와 분리되어 있으므로 발신자 주소는 트랜잭션 서명을 사용하여 파생되지 않습니다. 이것이 TxTypeLegacyTransaction을 제외한 다른 Klaytn 트랜잭션 유형의 필드에
from
이 있는 이유입니다. 트랜잭션을 검증하기 위해 클레이튼에서 from
의 AccountKey