openRank의 reputation system

jaewon·2024년 9월 16일

openrank reputation oracle

누가 누구를 얼마만큼, 무엇을 위해 신뢰하는가

얼마나 : 신뢰 수준
무엇 : 신뢰 유형, 역할, 상황

신뢰 종류

암묵적 신뢰, 명시적 신뢰

암묵적 : 댓글, 리포스트, 팔로우 같은 참여의 선형 조합, 체인상 거래 데이터(자산의 가치에 따라 신뢰가 달라짐) -> 이 기반에는 휴리스틱에 대한 암묵적 동의가 필요하다

명시적 : 별점 시스템, 온체인 증명 사용 (선형 조합을 수행해서 행렬(i,j,v)를 만들 수 있음)

데이터 전처리

선형 조합으로 (i,j)행렬을 만든다
변조 여부는 어떻게 아나?
-> 공개 데이터 세트에서 동일한 변환 및 선형 변환 작업 -> 출력 비교
출처 레코드는 데이터 제공자가 서명하면 됨
-> 출처 데이터 + 변환 증명 -> 신뢰 가능

그래서 결국 최종 사용자는 입력 데이터의 ==출처==를 알 수 있다

증분 처리

데이터 제공자가 다음 컴퓨팅 에포크를 위한 출력 세트(평판 그래프)의 새 버전 만든다
델타 (패치) 형태로 출력을 게시하도록 선택 가능, 이 정보를 가지고 있는 사람은 누구나 이를 이용해서 후속 버전으로 변형할 수 있다.
데이터 제공자는 주기적으로 전체 스냅샷을 찍어서 방출해야한다. -> 그러면 모두가 모든 델타를 사용해서 최신 버전의 데이터 재구성 가능

Eigen Trust

그래프에서 peer A -> peer B 신뢰를 매핑함

이러한 직접적인 신뢰도를 ==local trust values(LTVs)==라고 한다.(A -> B != B -> A)

==context of local trust is important==

Modeling Distrust

원래는 0(중립적 신뢰 모델)이 가장 낮은 trust(평가가 아예 없을 때), 하지만 distrust를 모델링 하기 위해 (0이하는 부정적 신뢰 혹은 0 중립, 그 이상은 부정적 신뢰도를 나타내는 모델) 모델을 설정할 수 있음 -> 결과 점수 합산, 최종 신뢰 점수 계산

Seed Trust

peer와의 거리에 따라 레퓨테이션 점수 로직을 바꿀 수 있음(가까운 피어의 평가가 더 중요할 경우)

과정

  1. 로컬 신뢰 계산
  2. 정규화(신뢰도 합 = 1)
  3. 전이 행렬 S 구성
  4. 글로벌 신뢰도 계산

openrank도 거버넌스를 안만든게 이유가 있는것 같다

eigenTrust를 가져다 쓸 수 없다.
eigenTrust는 p2p환경에서 서로의 신뢰도를 평가하기 위해 만들어졌는데, 거버넌스는 서로의 신뢰도를 평가하지 않고, 한가지에 투표 혹은 서로의 신뢰도에는 관심이 없는 상황이 대부분이기 때문에, eigenTrust가 사용되는 상황과 핀트가 맞지 않는다.

profile
블록체인, 암호학

0개의 댓글