# District Labs
## Delegatable / District Labes / Disco.xyz /...
* Delegatable
* Solidity のフレームワーク
* District Labs
* DelegatableやTAGを活用して、VC/DIDベースのアクセスコントロールを提供する
* Disco.xyz
* 上記を使用しつつ、
* Disco公式のVCを発行するサービス
* VC・DIDのAPIゲートウェイを提供
* DiscoxyzAPIなど出す予定
* 現在は Ceramics Network を使っている
* TurboETH
* DiscoxyzAPI を使ってみたというフロントエンドのexample
## Delegatable
* *Counterfactual Delegation* を可能にする Solidity のフレームワーク
### Counterfactual Delegation
* ロールの情報をdApp内には持たず、off-chainで処理したり、tx内に制御情報を持たせて処理
* アカウント間で推移的に権限を委譲できる(権限は絞れる)

## District Labs
### Trust Anchor Gateway (TAG)
* off-chainでVC/DIDを解釈して、on-chainで解釈可能なアクセス制御(JITAccessControl)を発行する
* on-chainの情報(timestamp, token所持など)も制御に組み合わせられる(Caveat Enforcers)
* multisigのような運用が検討されている
https://mirror.xyz/districtlabs.eth/WKdxT_eZbWqu9EVGWhjYIUoHavIQcJfhLceIUTZwhws
https://mirror.xyz/districtlabs.eth/8C2B1iL22aGQ2ihist3x0-nUjqCOUAvLHVNpiBq-NYo

---

## Disco.xyz


```jsonld
{"id":"did:3:kjzl6cwe1jw145ltolsez9qm7q65uw60n3cx001p7gs1x2q7rcaft9f3eybi48t#eaf7052b-4da3-4a20-accb-370cd3841ef8","type":["VerifiableCredential","MembershipCredential"],"genId":"44745c53-a1d9-4ddc-b191-2b86cfea4948","proof":{"type":"EthereumEip712Signature2021","created":"2022-10-21T19:08:38.053Z","proofValue":"0x4291116c532f56dec309c849351f1ab41685b67064e84a71e54a95b6c10bdb1333659ae48000a0afd75557af9d64bbc0cb4637c686889e840efaf4de2dc88b081b","eip712Domain":{"domain":{"name":"","chainId":1,"version":"1"},"primaryType":"VerifiableCredential","messageSchema":{"Proof":[{"name":"created","type":"string"},{"name":"proofPurpose","type":"string"},{"name":"type","type":"string"},{"name":"verificationMethod","type":"string"}],"Issuer":[{"name":"id","type":"string"}],"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"}],"CredentialSubject":[{"name":"id","type":"string"},{"name":"organization","type":"string"}],"VerifiableCredential":[{"name":"@context","type":"string[]"},{"name":"credentialSchema","type":"CredentialSchema"},{"name":"credentialSubject","type":"CredentialSubject"},{"name":"id","type":"string"},{"name":"issuanceDate","type":"string"},{"name":"issuer","type":"Issuer"},{"name":"proof","type":"Proof"},{"name":"type","type":"string[]"}],"CredentialSchema":[{"name":"id","type":"string"},{"name":"type","type":"string"}]}},"proofPurpose":"assertionMethod","verificationMethod":"did:3:kjzl6cwe1jw145ltolsez9qm7q65uw60n3cx001p7gs1x2q7rcaft9f3eybi48t#controller"},"issuer":{"id":"did:3:kjzl6cwe1jw145ltolsez9qm7q65uw60n3cx001p7gs1x2q7rcaft9f3eybi48t"},"@context":["https://www.w3.org/2018/credentials/v1"],"isPublic":true,"recipient":"did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb","issuanceDate":"2022-10-21T19:08:37.287Z","credentialSchema":{"id":"https://raw.githubusercontent.com/discoxyz/disco-schemas/main/json/MembershipCredential/1-0-0.json","type":"JsonSchemaValidator2018"},"credentialSubject":{"id":"did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb","organization":"BoysClub"}}
```
## 宿題の回答
- アクセス制御が入っているか
- JITAccessControl を発行して制御
- 見せたい人のコントロールが可能か?
- Disco.xyz --- [全体公開 / 自分のみ の二値しかない](https://docs.disco.xyz/learn/faq#are-my-disco-credentials-private)
- Trustpointになっている箇所の整理
- TrustAnchorGateway(TAG)
- consorcium 的な multisig などで分散化を予定
- 詳細の設計は固まっていない
- このサービスを使う方向感
- VCをoff-chainにする場合は、Verifier側のdAppで使えそう
- サービス自体がZKやAAの環境が整うまでの間の現状の折衷案を目的に提供されている