Comments (10)
The matrix helps a lot!
Fabric doesn't really have an anonymous equivalent to an HD Wallet based signing key, because since it's x509 certificate based, the CA's identity must always be disclosed, which gives away the org identity it belongs to. Fabric doesn't allow a signer certificate that is issued by an unknown authority to interact with a channel.
I think this means with Fabric, private messages must either be unpinned, or be pinned with a known identity. whether the pinning identity is registered with the network map or not, does not change the fact that its identity can be verified and associated with a member org based on the cert itself.
from firefly.
This is a great point.
Maybe next step is at a database/entity level, is to sketch out what information would be stored by FireFly in a 2 object, vs. 3 object model.
I guess in my mind to date, an organization
in the Firefly is one possible type of identity. A node
always felt like another type. Then on the horizon is something like a person
(self-sovereign identity) / thing
(IoT etc.) as another type. To your point that's probably incorrect thinking.
I'm hoping I can find a mechanical step forwards by introducing an Identity Manager
component (distinct from a plug point), that helps with the mechanics of getting all this logic in one place in the code.
Then if we need to evolve the concept of identity a bit, at least it's a self-contained task with minimal side effects.
from firefly.
A few of us had a whiteboarding session, and the outcome was this beautiful wall of noise... and the conclusions below it:
- We need to split
Author
into two fields - one representing identity, and one representing signing key - We need to split
Key
as a different object toOrg
and allow multiple keys - We need a consistent URI scheme for signing Keys
- We need to update the
Identity Interface [Ii]
before it can be useful for plugging in DID resolution - We need a separate plug point for Blockchain plugin+connector stacks (ethconnect/fabconnect) to resolve input strings, to key URIs
- We need to create a matrix of how input identity, maps to the stored
Message
objects, and what verification is performed
from firefly.
Here is first attempt at the matrix, for @jimthematrix to review as he works on the other items.
firefly_message_identity_matrix_20210907.pdf
from firefly.
I wonder if we actually have 3 levels of identity objects: Org =1--*=> Identity =1--*=> Key
An org can have multiple registered signing identities. A signing identity can have multiple signing keys (as a result of key rotation, or an identity having a primary key and a backup key for recovery). I know we talked about some of this, but don't know if your model above was deliberately collapsing signing keys with signing identities.
from firefly.
The thing on Fabric I'd read about was: https://hyperledger-fabric.readthedocs.io/en/release-1.2/idemix.html
However, 99% case certainly feels like having a channel scoped to a set of verifiers where disclosing transaction submitters is considered low-risk metadata leakage. But probably a conversation for other threads and issues.
from firefly.
@nguyer and I have been working on #192, which is intending to get the engineering started on implementing the split of author
and key
.
In doing this work, we will be carving out a place in the code that a governance plug point should exist and does not today:
When adding a new root org to the network, it should be possible for plugins to provide external verification that this member is authorized to create a new root identity.
from firefly.
Quick slide pulled together to aid the community discussion on 9/29
firefly_discussion_identity_20210929.pptx
from firefly.
This thread has great points to ponder upon. However, I see blockchain pinning of transactions and anonymous signature verification are stressed throughout in designing the solution. Idemix in Fabric attempts to dissolve an identity's authorized attributes but does less on anonymizing the issuer's identity. I had a different thought altogether about identity management at the connectors. But before that, it make sense to understand the current identity model in FireFly, could you please point me to more information?
from firefly.
Closed in favor of further discussion and feedback in the FIR hyperledger/firefly-fir#9
from firefly.
Related Issues (20)
- Reminder to submit the 2023 Q3 quarterly project report
- Late joiners to multiparty networks may hang processing earlier definitions HOT 3
- Organization creation should not be supported on non-multiparty namespace HOT 1
- Docs: Table of contents view issue HOT 2
- Refactor Idempotency logic to reduce boilerplate and increase code readability HOT 1
- Token activation transaction should be persisted earlier
- feature: upgrade Fabric version to v2.5 LTS HOT 2
- Dynamic Config Reload for Non-namespace Settings
- Generated FFI does not have "pathname" populated
- Intermittent unit test: `TestRequestWithBodyReplyEndToEndWithTLS`
- Reminder to submit the 2023 Q4 quarterly project report
- Private message fails with "No match for zerohash" HOT 5
- Signature uniqueness checking not precise enough for decoding events
- `FF23021: EVM reverted` errors during invoke with `idempotencyKey` leaves ops in `Initializing` status HOT 10
- Update helm charts for v1.3
- Create docs for new features in 1.3
- Query events by subscription filter HOT 2
- Upgrade to firefly-common v1.4.1 HOT 1
- Update third party dependencies and other security housekeeping
- Close FIR-17 HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from firefly.