1. 해시캐시 (HashCache)

   - 해시함수를 fn(X) = Y 로 표현한다면, X는 입력값 Y는 출력값이다.
     이 중에서 이쁜 Y를 만들기 위해 X를 바꿔가며 입력할 수 있는데, 
     이쁜 Y를 만든 X를 HashCache라고 부를 수 있다.
    

     그런데 X에는 자동으로 고정되는 값이 몇개 포함되어 있어야 하고, 
     사용자가 임의로 설정할 수 있는 값도 있어야 한다.

     즉, 수신자의 메일주소와 같이 바꿀 수 없는 값 + 사용자가 임의설정 가능한 카운터 = X로 했을때
     이쁜 Y를 만들 수 있는 X를  HashCache라고 부를 수 있다.


     (해시캐시의 개념은 스팸메일 필터링에서 나온 개념이므로 수신자의 메일주소를 주로 포함한다.

     90년대 국제표준에서는 Y의 앞자리20자리가 0이 되는 X값을 해쉬캐시로 정했었다.)



2. Nonce
   - 위 예제에서 사용자가 설정한 임의의 카운터를 Nonce라고 부를수 있다.  나머지 고정된 값들을 제외한 사용자가 

      고생을 해서 산출해야 하는 값이다.

   - 이쁜 Y라고 부르는 이유는, Y값의 범위를 정하거나 모양등을 정하므로서, 알고리듬의 복잡도가 탄생한다. 

      즉, Y값을 000000000xxxxxxx 이런식으로 고정한다면, 이를 위해서 사용자는 nonce를 여러번 생성해봐야지 적당한 nonce를 구할 수 있다.

   - 비트코인에서는 총32Byte(256bit) 중,  앞자리 40 bit가 0이어야 한다.



이러한 해시캐시(Nonce포함)개념으로 하나의 블록을 생성한다. 


3. 블록체인

  - 앞에서 설명한 하나의 블록을 여러개 연결한게 블록체인이다.

  - 연결방식은 뉴블록 = 직전블록의 Hash값 +  뉴데이타 + 뉴Nonce 이다.   

   - 뉴뉴블록 = 뉴블록 Hash값 + 뉴뉴data + 뉴뉴nonce로  항상 직전 Hash값만 포함한다.

     이것만으로도 이전의 모든 블록들을 마치 다 포함하는 것처럼, 앞 선 모든 블록들을 아무도 고치지 못하는 효과가 생긴다. 


 

  




Posted by yongary
,