상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
포르투갈의 유명한 해양 탐험가는 누구이며, 어떤 업적을 남겼나요?
포르투갈에서의 와인 시음 경험은 어떻게 되나요?
카니보어 식단과 환경 문제의 연관성은?
카니보어 식단을 유지하며 요리하는 팁은?
LiveData에서 요청 실패 시 대처하는 방법은?
LiveData와 APK 크기 최적화의 관계는?
switchMap을 사용하여 실시간 푸시 알림을 구현하는 방법은?
JUnit은 무엇인가요?
JUnit에서 세션 관련 테스트는 어떻게 하나요?
Robolectric에서 Snackbar의 동작을 테스트하는 방법은 무엇인가요?
Robolectric에서 애니메이션 테스트를 어떻게 할 수 있나요?
돼지고기, 이렇게 즐겨보세요: 6가지 팁!
Previous
Next
수정하기 - 솔리디티에서 'block.timestamp'은 무엇을 나타내나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`block.timestamp`는 이더리움 블록체인에서 특정 블록이 생성된 시간을 나타내는 속성입니다. 이 값은 블록이 채굴된 시점의 Unix 타임스탬프(1970년 1월 1일 00:00:00 UTC부터의 초 수)로 표현됩니다. Solidity 스마트 계약에서 `block.timestamp`를 사용하면 현재 블록의 생성 시간을 확인할 수 있으며, 이는 다양한 용도로 활용될 수 있습니다. 1. 블록 타임스탬프의 중요성 블록체인에서는 모든 거래와 상태 변화가 블록에 기록되며, 각 블록은 생성된 시간 정보를 포함합니다. `block.timestamp`는 다음과 같은 이유로 중요합니다: - 시간 기반 로직 : 스마트 계약에서 특정 시간 이후에만 실행되도록 하는 로직을 구현할 수 있습니다. 예를 들어, 특정 조건이 충족된 후 일정 시간이 지나야만 계약의 기능을 실행하도록 설정할 수 있습니다. - 이벤트 기록 : 블록체인에서 발생한 이벤트의 타임스탬프를 기록하여, 나중에 이력을 추적하거나 분석할 수 있습니다. - 상태 관리 : 특정 시간에 따라 계약의 상태를 변경하는 데 유용합니다. 예를 들어, 특정 기간 동안만 유효한 제안이나 투표 시스템을 구현할 수 있습니다. 2. 사용 예시 다음은 `block.timestamp`를 사용하는 간단한 스마트 계약의 예입니다: ```solidity pragma solidity ^0.8.0; contract TimedAuction { uint public auctionEndTime; address public highestBidder; uint public highestBid; constructor(uint _biddingTime) { auctionEndTime = block.timestamp + _biddingTime; } function bid() public payable { require(block.timestamp < auctionEndTime, "Auction has ended"); require(msg.value > highestBid, "There already is a higher bid"); if (highestBid != 0) { // Refund the previous highest bidder payable(highestBidder).transfer(highestBid); } highestBidder = msg.sender; highestBid = msg.value; } function auctionEnded() public view returns (bool) { return block.timestamp >= auctionEndTime; } } ``` 위의 예시에서 `TimedAuction` 계약은 <a href='https://sangseek.com/sangseeks/경매/ko'>경매</a>를 설정하고, 경매가 끝나는 시간을 `block.timestamp`를 사용하여 계산합니다. 사용자가 입찰할 때마다 현재 시간이 경매 종료 시간보다 이전인지 확인하여 유효성을 검사합니다. 3. 주의사항 - 블록 생성 시간의 변동성 : `block.timestamp`는 블록 생성 시점에 따라 다르며, 블록체인 네트워크의 상태에 따라 약간의 변동이 있을 수 있습니다. 블록 생성자는 타임스탬프를 조작할 수 있는 가능성이 있으므로, 이를 신뢰할 수 있는 값으로 간주해야 합니다. 일반적으로 블록 생성자는 자신의 블록 타임스탬프를 현재 시간보다 약간 늦게 설정하는 경향이 있습니다. - 시간의 정확성 : `block.timestamp`는 절대적인 시간 기준이 아니며, 블록체인 네트워크의 상태에 따라 다를 수 있습니다. 따라서, 시간 기반의 로직을 구현할 때는 이러한 점을 고려해야 합니다. 결론 `block.timestamp`는 Solidity 스마트 계약에서 시간 기반 로직을 구현하는 데 필수적인 요소입니다. 이를 통해 계약의 기능을 시간에 따라 제어하고, 다양한 시간 기반의 조건을 설정할 수 있습니다. 그러나 블록 생성자의 영향과 블록체인 네트워크의 특성을 고려하여 신중하게 사용해야 합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기