Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User Delegate #61

Closed
6 of 7 tasks
therne opened this issue Nov 26, 2018 · 0 comments
Closed
6 of 7 tasks

User Delegate #61

therne opened this issue Nov 26, 2018 · 0 comments
Assignees
Labels
major 주 프로덕트 개발 및 그와 관련된 작업들

Comments

@therne
Copy link
Contributor

therne commented Nov 26, 2018

Identity Manager (#21)을 User Delegate와 Account Proxy로 쪼갠다.

Purpose

  • Provider의 견제: 현재 Provider는 API를 통해 DAuth를 맘대로 수행해버릴 수 있다. 이를 방지하기 위해, 사용자 활동을 감시하고 필터링하는 User Delegate라는 노드를 중간에 하나 더 두고 Provider의 활동에 대해 사용자에게 알림으로서 Provider를 견제할 수 있다.
  • My Data Ownership: 자신의 데이터에 대한 모든 통제권을 갖고 싶으면, User Delegate 노드를 직접 돌리면 된다.
  • Private-key-less한 Airbloc 사용을 하려면, 중간에 Proxy로서 콜을 대신 수행해주는 노드가 필요하다. (Account Proxy와 역할이 겹침)

Consideration

  • User Delegate의 예방적 신뢰 장치: User Delegate는 (자신이 Delegate하는 User들에 한해서) 임의로 설정을 조작할 수 있다. 물론 유저는 얼마든지 Notify할 수 있기 때문에, 유저는 자신의 설정이 바뀌면 Delegate를 바꾸는 방식으로 대응할 수 있지만 이는 후행적인 처리이며 Delegate는 사실상 어떠한 패널티도 입지 않는다. 따라서 예방적 신뢰를 보장할 수 있는 프로토콜을 설계하거나, 챌린지 프로토콜 등의 도입을 통해 확실한 패널티를 부여해야 한다.

  • Fallback User Delegate의 설정 : 현재 DAuthSignup시 User Delegate가 없으면 Fallback User Delegate인 Airbloc Tracker가 설정되도록 하드코딩되어있다. 물론 일단 Airbloc Tracker를 Delegate로서 SignUp한 이후에 setDelegate를 통해 Delegate 권한을 임의로 옮겨올 수 있지만, 궁극적으론 UX단에서 DAuthSignup시 User Delegate (a.k.a "Tracker Service")를 사용자가 직접 지정할 수 있게 해야 한다.

Requirement

  • CLI에 userdelegate로서 돌아갈 수 있는 옵션을 추가
  • server API와 userdelegate API 분리
  • Accounts에서 Delegate 지정
  • Delegate를 새로 지정하려면 직접 트랜잭션을 날려야 한다.
  • DAuth에서 이제 Provider는 직접 블록체인 콜을 하는게 아니라, 단순히 User Delegate에게 P2P로 요청을 수행하고 User Delegate가 직접 블록체인 인터렉션을 하게 됨.
  • 이미 DAuth로 바꾼 설정은 Delegate가 오버라이딩하지 못한다.
  • Delegate가 DAuth 설정을 변경했을 때 별도의 event를 emit한다.
@therne therne self-assigned this Nov 26, 2018
@therne therne added this to the Airbloc Public BetaNet milestone Nov 26, 2018
@therne therne mentioned this issue Nov 26, 2018
8 tasks
@therne therne added the major 주 프로덕트 개발 및 그와 관련된 작업들 label Nov 26, 2018
@therne therne closed this as completed Jan 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
major 주 프로덕트 개발 및 그와 관련된 작업들
Projects
None yet
Development

No branches or pull requests

1 participant