사토시(sat)는 비트코인 1개를 100000000등분한 단위로, 1 sat = 0.00000001 BTC입니다. 비트코인 기본 계층의 거래에서 금액을 기록하는 가장 작은 단위입니다. 별도의 암호화폐가 아니라 같은 비트코인을 세는 방법입니다. 길이를 미터나 센티미터로 나타내듯, 금액을 BTC나 정수 개의 사토시로 나타낼 수 있습니다.
안나는 25000 sat를 보내려는데 지갑에는 0.00025 BTC가 표시됩니다. 다른 화폐도, 더 유리한 환율도 아닙니다. 같은 금액을 두 가지 단위로 적은 것입니다. 1 BTC = 100000000 sat이므로 0.001 BTC = 100000 sat도 성립합니다. 일상에서 작은 금액을 다룰 때는 소수점 뒤로 영이 이어지는 BTC 표시보다 sat가 읽기 편할 수 있습니다. 원화 같은 법정통화에 대한 비트코인 가격은 변하지만 BTC와 sat 사이의 환산 관계는 변하지 않습니다. [1] [2]
안나가 설정에서 sats를 선택해도 비트코인이 어디론가 이동하거나 새 코인이 생기지 않습니다. 화면의 숫자와 단위만 바뀝니다. sat는 단위의 약자이며 영어에서는 복수형으로 sats도 흔히 씁니다. 이름은 비트코인을 만든 Satoshi Nakamoto에서 따왔습니다. 따로 구매해야 하는 별도 자산을 뜻하지 않습니다. 작은 단위는 소액을 표현하기 쉽게 해 줄 뿐, 구매력을 일정하게 유지하거나 수익을 보장하지는 않습니다. [2]
안나의 지갑이 전에 받은 50000 sat를 사용한다고 해 봅시다. 받는 사람에게 25000 sat를 보내고, 안나에게 24000 sat를 거스름돈으로 돌려주며, 나머지 1000 sat는 거래를 블록에 넣는 채굴자의 수수료가 됩니다. 계산은 50000 = 25000 + 24000 + 1000입니다. 안나가 이번 결제에 실제로 쓴 금액은 사용한 입력 전체가 아니라 26000 sat입니다. 설명을 위한 예시이지 일반적인 수수료나 권장 수수료는 아닙니다. 승인하기 전에 수신 금액과 수수료를 각각 확인하세요. [8]
지갑에는 수수료와 함께 sat/vB 단위의 Fee Rate가 표시될 수 있습니다. 수수료 계산에 사용하는 거래 크기의 단위인 가상 바이트 하나당 몇 사토시를 내는지 나타낸 값입니다. 거래 크기가 100 vB이고 요율이 10 sat/vB이면 수수료는 1000 sat입니다. 보내는 돈의 몇 퍼센트를 낸다는 뜻이 아닙니다. 같은 금액을 보내더라도, 한 거래가 더 많은 과거 수령분을 합쳐 사용한다면 크기는 달라질 수 있습니다. 지갑의 최종 확인 화면에서 계산된 수수료를 확인하세요. [7] [8]
단위 없는 숫자만으로는 금액을 알 수 없습니다. sats 입력란에 25000을 쓰는 것과 BTC 입력란에 같은 숫자를 쓰는 것은 전혀 다릅니다. 결제 QR 코드를 읽은 뒤에도 서명 전에 주소, 네트워크, 금액, 수수료를 확인하세요. 서명은 자금을 사용하도록 허용하는 디지털 승인입니다. 지갑은 비트코인을 통제할 수 있게 하는 비밀 값인 개인 키로 서명을 만듭니다. 결제 링크 규격인 BIP 321에 따른 결제 링크의 amount 매개변수는 소수점으로 마침표를 사용하는 BTC 금액입니다. amount=0.00025는 25000 sat를 뜻합니다. 지갑 화면이 sats를 쓰거나 현지 소수 구분자를 쓰더라도 링크의 규칙은 같습니다. 링크를 직접 고칠 필요는 없으며, 확인 화면에 올바른 금액이 나오는지가 중요합니다. [3]
네트워크에 사토시 하나하나를 나타내는 작은 파일이 있는 것은 아닙니다. 금액과 사용 조건이 담긴 거래 출력이 기록됩니다. 아직 사용하지 않은 출력을 UTXO라고 합니다. 지갑은 이런 수령분 여러 개의 금액을 합쳐 하나의 잔액으로 보여 줄 수 있습니다. 결제할 때는 일부 출력을 통째로 사용하고 수신자와 거스름돈을 위한 새 출력을 만듭니다. 사토시는 그 금액을 세는 단위이지, 지갑 안에 따로 들어 있는 물건이 아닙니다. [2]
금액을 얼마나 세밀하게 나타낼 수 있는지와 실제로 얼마를 보내는 것이 유용한지는 다른 문제입니다. 출력에 1 sat를 기록할 수는 있습니다. 하지만 거래를 검증하고 전달하는 컴퓨터인 노드는 지나치게 작은 출력을 만드는 거래의 중계를 거부할 수 있습니다. Dust는 노드의 거래 중계 정책과 그 출력을 나중에 사용하는 데 들 것으로 예상되는 비용에 관한 개념입니다. 기준은 출력 유형과 정책 설정에 따라서도 달라집니다. 모든 유효한 결제에 똑같은 최소 금액이 적용된다는 보편적인 규칙은 아닙니다. 이미 블록에 들어간 작은 출력도 사용 수수료가 그 가치보다 더 클 수 있습니다. [7]
Lightning Network는 결제 채널을 사용하며, 참여자들은 채널에 넣은 자금의 배분을 갱신합니다. 따라서 모든 결제를 비트코인 블록에 개별적으로 기록할 필요가 없습니다. 내부 계산에는 millisatoshi, 줄여서 msat도 사용합니다. 1 sat = 1000 msat이며, 수수료 등을 더 세밀하게 계산할 때 유용합니다. 그렇다고 비트코인 기본 계층에 사토시보다 작은 금액의 출력이 생기는 것은 아닙니다. 채널을 닫을 때는 Lightning 규칙에 따라 정수 개의 사토시로 환산하며 너무 작은 일부 출력은 생략합니다. 내부 장부의 정밀도와 최종 정산은 구분해야 합니다. [6] [5]
1 BTC를 1억 부분으로 나눈다고 비트코인이 늘어나는 것은 아닙니다. 미터를 센티미터로 바꿔 적어도 탁자가 길어지지 않는 것과 같습니다. 새 비트코인은 블록에 따라 새로 발행되는 보상인 블록 보조금의 규칙에 따라 만들어집니다. Halving에서는 이 보조금을 정수 개의 사토시 기준으로 반으로 줄입니다. 나머지 소수 부분은 버리므로 먼 미래에는 결과가 0이 됩니다. 기술 상수 MAX_MONEY는 금액 범위를 검사하는 데 쓰입니다. 이 상수만으로 정확히 2100만 BTC가 실제 발행되어 모두 사용 가능하다는 뜻은 아닙니다. 잃어버린 키와 사용할 수 없거나 청구되지 않은 일부 보상도 이용 가능한 양을 줄입니다. [1] [8]
Bitcoin Core는 금액에 CAmount라는 64비트 정수 자료형과 값이 100000000인 COIN 상수를 사용합니다. 따라서 0.00025 BTC는 내부적으로 정수 25000으로 처리됩니다. 이는 일반적인 이진 부동소수점 연산, 즉 floating point 연산에서 생길 수 있는 오차를 피하는 데 도움이 됩니다. 사용자에게 중요한 점은 단위와 정확한 금액을 확인하는 것입니다. 계산기나 결제 처리 소프트웨어를 만든다면 근삿값을 계산한 뒤 반올림하는 대신 정수 사토시나 정확한 십진 연산을 사용해야 합니다. [1]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Bitcoin, 21 Million, Unit of Account, Lightning Network, UTXO, Transaction Fees. 다음 항목에서도 이 글을 참조합니다 Bitcoin Pizza Day, Chaumian eCash, Blind Signature, OP_CHECKTEMPLATEVERIFY.