Add VRF(Verifiable Random Functions) Into Ordering Service to Support Large-scale COnsensus NetWork


宣章炯 <xzj19922010@...>
 

My name is Zhangjiong Xuan. I come from Hangzhou Qulian Technology Co., Ltd. We have a team to research Algorand and VRF Algorithm. Now we have implement the VRF Algorithm in the Golang. And we think there is a good scenario in the Hyperledger Fabric. So we want to ask the communitty if it’s a good Idea to use VRF Algorithm into Ordering Service, to do a feature in the Ordering Service. I hope TSC group can have a discussion whether will receive this proposal. If both of you think it's a good idea .Maybe we can have a try to do this job .And make a more detailed design in the google docs.

Thanks.


Jira:

Google doc:


VIPIN BHARATHAN
 

Hello Zhangjiong Xuan,
Sounds great. A faster version of consensus in the form of a VRF implementation. There may be some challenges with the structure and functions of nodes in HLF. I am sure you will overcome those. Ever since VRF was opensourced at the end of 2018 I had expected a group like yours to take on the challenge.
Best,
Vipin

 


From: tsc@... on behalf of via Lists.Hyperledger.Org <xzj19922010=gmail.com@...>
Sent: Tuesday, May 7, 2019 8:14 AM
To: tsc@...
Cc: tsc@...
Subject: [Hyperledger TSC] Add VRF(Verifiable Random Functions) Into Ordering Service to Support Large-scale COnsensus NetWork
 

My name is Zhangjiong Xuan. I come from Hangzhou Qulian Technology Co., Ltd. We have a team to research Algorand and VRF Algorithm. Now we have implement the VRF Algorithm in the Golang. And we think there is a good scenario in the Hyperledger Fabric. So we want to ask the communitty if it’s a good Idea to use VRF Algorithm into Ordering Service, to do a feature in the Ordering Service. I hope TSC group can have a discussion whether will receive this proposal. If both of you think it's a good idea .Maybe we can have a try to do this job .And make a more detailed design in the google docs.

Thanks.


Jira:

Google doc:


Baohua Yang
 

Great, zhangjiong!

I think this is an interesting topic, as VRP was typically used in public scenarios and some open-sourced repo will be a good start.


On Tue, May 7, 2019 at 10:14 PM 宣章炯 <xzj19922010@...> wrote:

My name is Zhangjiong Xuan. I come from Hangzhou Qulian Technology Co., Ltd. We have a team to research Algorand and VRF Algorithm. Now we have implement the VRF Algorithm in the Golang. And we think there is a good scenario in the Hyperledger Fabric. So we want to ask the communitty if it’s a good Idea to use VRF Algorithm into Ordering Service, to do a feature in the Ordering Service. I hope TSC group can have a discussion whether will receive this proposal. If both of you think it's a good idea .Maybe we can have a try to do this job .And make a more detailed design in the google docs.

Thanks.


Jira:

Google doc:



--
Best wishes!

Baohua Yang


Brian Behlendorf
 


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.

Thanks,

Brian

On 5/7/19 12:43 PM, VIPIN BHARATHAN wrote:
Hello Zhangjiong Xuan,
Sounds great. A faster version of consensus in the form of a VRF implementation. There may be some challenges with the structure and functions of nodes in HLF. I am sure you will overcome those. Ever since VRF was opensourced at the end of 2018 I had expected a group like yours to take on the challenge.
Best,
Vipin

 

From: tsc@... on behalf of via Lists.Hyperledger.Org <xzj19922010=gmail.com@...>
Sent: Tuesday, May 7, 2019 8:14 AM
To: tsc@...
Cc: tsc@...
Subject: [Hyperledger TSC] Add VRF(Verifiable Random Functions) Into Ordering Service to Support Large-scale COnsensus NetWork
 

My name is Zhangjiong Xuan. I come from Hangzhou Qulian Technology Co., Ltd. We have a team to research Algorand and VRF Algorithm. Now we have implement the VRF Algorithm in the Golang. And we think there is a good scenario in the Hyperledger Fabric. So we want to ask the communitty if it’s a good Idea to use VRF Algorithm into Ordering Service, to do a feature in the Ordering Service. I hope TSC group can have a discussion whether will receive this proposal. If both of you think it's a good idea .Maybe we can have a try to do this job .And make a more detailed design in the google docs.

Thanks.


Jira:

Google doc:


-- 
Brian Behlendorf
Executive Director, Hyperledger
bbehlendorf@...
Twitter: @brianbehlendorf


VIPIN BHARATHAN
 

Hello all,

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. "


Best,
Vipin

dlt.nyc
Vipin Bharathan
Enterprise Blockchain Consultant
vip@...


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@...; 宣章炯
Cc: 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.

Thanks,

Brian

On 5/7/19 12:43 PM, VIPIN BHARATHAN wrote:
Hello Zhangjiong Xuan,
Sounds great. A faster version of consensus in the form of a VRF implementation. There may be some challenges with the structure and functions of nodes in HLF. I am sure you will overcome those. Ever since VRF was opensourced at the end of 2018 I had expected a group like yours to take on the challenge.
Best,
Vipin

 

From: tsc@... on behalf of via Lists.Hyperledger.Org <xzj19922010=gmail.com@...>
Sent: Tuesday, May 7, 2019 8:14 AM
To: tsc@...
Cc: tsc@...
Subject: [Hyperledger TSC] Add VRF(Verifiable Random Functions) Into Ordering Service to Support Large-scale COnsensus NetWork
 

My name is Zhangjiong Xuan. I come from Hangzhou Qulian Technology Co., Ltd. We have a team to research Algorand and VRF Algorithm. Now we have implement the VRF Algorithm in the Golang. And we think there is a good scenario in the Hyperledger Fabric. So we want to ask the communitty if it’s a good Idea to use VRF Algorithm into Ordering Service, to do a feature in the Ordering Service. I hope TSC group can have a discussion whether will receive this proposal. If both of you think it's a good idea .Maybe we can have a try to do this job .And make a more detailed design in the google docs.

Thanks.


Jira:

Google doc:


-- 
Brian Behlendorf
Executive Director, Hyperledger
bbehlendorf@...
Twitter: @brianbehlendorf