나는 Hyperledger Fabric의 아키텍처를 연구 중입니다. 나는 확신 할 수있는 피어가 트랜잭션의 출처를 로컬에서 어떻게 확인할 수 있는지 궁금합니다.로컬에서 피어를 승인 할 때 트랜잭션의 출처를 확인하는 방법은 무엇입니까?
문서에 따르면 제출 클라이언트가 승인하는 피어에게 트랜잭션을 보낼 때 각 인증 피어는 클라이언트의 서명을 확인합니다. 내가 아는 한, 서명은 클라이언트의 개인 키로 암호화 된 메시지입니다. 서명을 검증하기 위해 인증 피어는 클라이언트의 공개 키가 필요합니다.
내 질문은, 어디에서 보증하는 피어가 클라이언트의 공개 키를 얻는가? 공개 키는 configtxgen
도구로 생성 된 채널의 창세기 블록 안에있는 것으로 추측됩니다. 동일한 채널의 모든 피어가이 창세기 블록을 가지고 있기 때문입니다. 맞습니까? 또는 트랜잭션에 https 연결과 같은 클라이언트의 공용 키 (클라이언트 인증서)가 포함되어 있습니까? (그러나 문서에 따르면 메시지 형식에 대한 클라이언트 공개 키의 여유는 없습니다.)
감사합니다.
답장을 보내 주셔서 감사합니다. 당신의 대답은 나에게 논리적이라고 느낍니다. 문서에 따르면'PROPOSE' 메시지 형식은'이고'tx' 형식은 입니다. 내가 아는 한, 서명은 클라이언트의 개인 키로 암호화 된 다른 필드 (clientID, ... 등)입니다. 그래서, 당신은'clientSig'가 암호화 된 다른 필드 이외에 클라이언트의 인증서를 포함한다는 것을 의미합니까? 또는 인증서가 트랜잭션에 포함되어 있지만 의사가 'PROPOSE'메시지 형식의 일부로 언급하지 않았습니까? –
byron1st
서명이 암호화되는 이유는 무엇입니까? 목적은 모든 사람에 대한 소유권 증명을 제공하는 것이므로 암호화되지는 않지만 누구든지 (따라서 트랜잭션이 있으므로 신원을 갖고 따라서 공개 키를가집니다) 검증 할 수 있습니다. 답변을 업데이트하고 확인해보십시오. – yacovm