Re: Add VRF(Verifiable Random Functions) Into Ordering Service to Support Large-scale COnsensus NetWork
Having delved into this more, I have the following comments.
Agree with Brian's points.
To the last point: VRF does not appear to have any live patents and is used by other projects (other than Algorand), a more thorough search is warranted.
I will add another route for HL participation: Work with Ursa and get the VRF algorithm into that library. I believe that the solution can be broader than just applicability to Fabric BFT.
Also, there is a comment on the FAB (https://jira.hyperledger.org/browse/FAB-15350) which argues against the committee selection process and the use of VRF for hashing.
These have to be addressed.
The commenter (Yakov Manevich) has assumptions about the future (see below). You have to balance this comment against the cost of implementing a VRF based BFT as a pluggable component in Fabric or any other DLT.
"So, clearly - using committee selection is good for large networks with thousands of nodes, and I don't think we'll have a Byzantine ordering service oriented for large networks in the near future. "
From: tsc@... <tsc@...> on behalf of Brian Behlendorf via Lists.Hyperledger.Org <bbehlendorf=linuxfoundation.org@...>
Sent: Tuesday, May 7, 2019 10:43 PM
To: tsc@...; 宣章炯
Subject: Re: [Hyperledger TSC] Add VRF(Verifiable Random Functions) Into Ordering Service to Support Large-scale COnsensus NetWork
Further to the other supportive comments:
* The Fabric developer mailing list, and or the chat channel, may be a better place to continue the technical side of this discussion, as it's really up to them what gets integrated directly into Fabric. TSC is more of a cross-community technical discussion list. I would bet there's interest in a Sawtooth consensus plugin as well, though, so it's not bad that you asked this here, though a consensus engine would work differently there.
* If your question is less about the technical side of how to build it (or whether it's a good idea) and more about getting it into Hyperledger, you could offer this kind of thing to the Hyperledger Fabric project directly as a PR on Gerrit (what Fabric uses instead of Github) or you could host it as a separate consensus engine under Hyperledger Labs. That may be obvious but I'm not sure how well you know the community so thought it was worth stating.
* If your intent is to offer it as a contribution of code into Hyperledger (whether into Fabric directly or as an add-on hosted at Labs, etc) then you may want to make sure that there aren't obvious patents that apply to VRF, or if there are, that the patent holders have granted a license to you or to the public in general for open source implementations. We want to avoid the situation where code that clearly implements a patented algorithm is embedded into Fabric or other open source code, and then a patent holder comes around later to Hyperledger or to end users demanding a license for that use.
On 5/7/19 12:43 PM, VIPIN BHARATHAN wrote:
-- Brian Behlendorf Executive Director, Hyperledger bbehlendorf@... Twitter: @brianbehlendorf