[Blockchain A-Z] 암호화폐 직관적 이해 : 채굴자가 트랜잭션을 선택하는 방법

yebeen·2022년 8월 31일
0

Blockchain A-Z

목록 보기
24/43
post-thumbnail

트랜잭션은 모든 노드와 모든 채굴자에 연결되어있는 멤풀(mempool) 또는 메모리 풀(memory pool)에서 발생합니다. 하지만 이것들은 전부 블록 내부에 포함되기 전에 저장되는 미확인 트랜잭션입니다.

블록은 10분 간격으로 추가되지만 트랜잭션은 비트코인을 보내거나 받을 수 있는 것 처럼 계속 발생합니다. 언제든지 할 수 있고 모든 트랜잭션은 멤풀에 입력됩니다. 트랜잭션을 위한 집결지 같은 것 입니다.

즉, 모든 채굴자나 노드에는 집결지처럼 아직 보유 중인 트랜잭션 리스트가 있는 멤풀이 연결되어 있습니다. 채굴자는 이 트랜잭션을 블록에 추가해야합니다.

만약 블록당 2000건의 트랜잭션이 있고 채굴자가 최대 5건의 트랜잭션만 추가한다고 가정하면 채굴자는 어떻게 트랜잭션을 선택할 수 있을까요 ?

멤풀에는 실제보다 짧은 트랜잭션 ID가 있고 각 트랜잭션을 포함해 채굴자가 받을 수수료 정보가 있습니다. 수수료는 필수가 아니고 임의적이며 채굴자가 블록 생성에 성공하면 그 블록과 연결된 수수료를 받게 됩니다.

채굴자는 가장 높은 수수료를 고를 것 입니다.

이 상황에서 채굴자는 0에서 약 40억까지의 논스 범위에서 골든 논스를 찾는 작업을 진행합니다. 만약 1초안에 유효한 골든 논스를 찾지 못하면 타임스탬프 필드가 업데이트되고 채굴자는 다시 논스를 살펴볼 것입니다.

마이닝 풀의 경우 타임스탬프 필드가 업데이트 되기 전 골든 논스를 찾는 작업이 끝나게될 것이고 1초가 지날때까지 대기해야합니다. 매우 비효율적이고 불필요한 해시 파워를 가지게 됩니다.

문제 해결을 위한 비트코인 프로토콜에는 아키텍처상의 내장 솔루션이 있습니다.
해싱 파워가 많은 채굴자도 참여 가능하고 마이닝 풀이 제대로 작동하는 솔루션 입니다.


솔루션은 높은 수수료를 기반으로 트랜잭션을 선택하기 때문에 블록의 구성을 변경합니다. 채굴자는 트랜잭션을 선택하고 높은 수수료를 부과해야 합니다. 하지만 가장 높은수수료를 내고도 유효한 해시를 찾지 못했다면 어떻게 해야 할까요 ?

이때 채굴자는 블록의 구성을 변경합니다.
즉, 트랜잭션 조합을 변경하여 다시 한 번 전체 논스를 거쳐 골든 논스를 찾아내는 것입니다.

이것이 채굴자의 트랜잭션 선택 방법이며 마이닝 풀 채굴자가 알고리즘으로 문제를 해결하는 방법입니다. 개인의 경우 알고리즘을 찾아내야 하지만 풀에 합류하면 풀에서 서비스로 제공합니다. 알고리즘이 자동으로 수수료를 최대화하기 위해 가장 좋은 방법으로 트랜잭션을 결합합니다.

트랜잭션에서 0과 같은 아주 낮은 수수료를 지정하면 멤풀에 걸릴 가능성이 있습니다.


선택 가능한 트랜잭션이 7000건 정도로 매우 다양하기 때문에 보통 가장 높은 수수료로 시작해서 임계값 같은 것을 갖습니다. 할당에 관한 특정 임계값 이하의 트랜잭션은 보지도 않습니다.

일정 기간 내로 트랜잭션이 선택되지 않으면 트랜잭션이 트랜잭션을 발생한 대상자에게 공개됩니다. 이로서, 지갑이 현재 평균 수수료를 확인하고 트랜잭션이 멤풀에 걸리지 않도록 무엇을 입력해야 하는지 파악하는데 도움을 줍니다.

profile
🐣🐥

0개의 댓글