A system for verifiable secret sharing amongst a plurality of servers, the system comprising: a plurality of servers, including a dealer server and one or more recipient servers, each server having one or more processors and a memory, the memory being a non-transitory computer-readable medium having executable instructions encoded thereon, such that upon execution of the instructions and initiation of an asynchronous protocol for verifiable secret sharing, the plurality of servers perform operations of: constructing, by the dealer server, a bivariate polynomial that evaluates to a secret s at a given point; constructing, by the dealer server, a hash tree with the individual points on the bivariate polynomial as leaves; broadcasting, by the dealer server to one or more recipient servers, hash tree data, root of the hash tree and shares of the secret; checking, by each recipient server, that the hash tree data is correct and that the shares are leaves in the hash tree with the provided root, such that if a set of recipient servers confirm that the shares are leaves in the hash tree with the provided root, then broadcasting OK by the recipient servers; broadcasting, by the dealer server, an identification of the set of recipient servers to the plurality of servers; determining, by each server in the plurality of servers, if the server is a server in the broadcast set of recipient servers, such that: if yes, then transmitting the share to servers that are not in the broadcast set of recipient servers; or if no, then receiving shares until a threshold number of shares are received from the broadcast set of recipient servers and interpolating a univariate polynomial from the shares; evaluating, by each server in the plurality of servers, a univariate polynomial to identify a zero coefficient, the zero coefficient being a share of secret s; and reconstructing, by one or more servers in the plurality of servers, secret s. a plurality of servers, including a dealer server and one or more recipient servers, each server having one or more processors and a memory, the memory being a non-transitory computer-readable medium having executable instructions encoded thereon, such that upon execution of the instructions and initiation of an asynchronous protocol for verifiable secret sharing, the plurality of servers perform operations of: constructing, by the dealer server, a bivariate polynomial that evaluates to a secret s at a given point; constructing, by the dealer server, a hash tree with the individual points on the bivariate polynomial as leaves; broadcasting, by the dealer server to one or more recipient servers, hash tree data, root of the hash tree and shares of the secret; checking, by each recipient server, that the hash tree data is correct and that the shares are leaves in the hash tree with the provided root, such that if a set of recipient servers confirm that the shares are leaves in the hash tree with the provided root, then broadcasting OK by the recipient servers; broadcasting, by the dealer server, an identification of the set of recipient servers to the plurality of servers; determining, by each server in the plurality of servers, if the server is a server in the broadcast set of recipient servers, such that: if yes, then transmitting the share to servers that are not in the broadcast set of recipient servers; or if no, then receiving shares until a threshold number of shares are received from the broadcast set of recipient servers and interpolating a univariate polynomial from the shares; evaluating, by each server in the plurality of servers, a univariate polynomial to identify a zero coefficient, the zero coefficient being a share of secret s; and reconstructing, by one or more servers in the plurality of servers, secret s. constructing, by the dealer server, a bivariate polynomial that evaluates to a secret s at a given point; constructing, by the dealer server, a hash tree with the individual points on the bivariate polynomial as leaves; broadcasting, by the dealer server to one or more recipient servers, hash tree data, root of the hash tree and shares of the secret; checking, by each recipient server, that the hash tree data is correct and that the shares are leaves in the hash tree with the provided root, such that if a set of recipient servers confirm that the shares are leaves in the hash tree with the provided root, then broadcasting OK by the recipient servers; broadcasting, by the dealer server, an identification of the set of recipient servers to the plurality of servers; determining, by each server in the plurality of servers, if the server is a server in the broadcast set of recipient servers, such that: if yes, then transmitting the share to servers that are not in the broadcast set of recipient servers; or if no, then receiving shares until a threshold number of shares are received from the broadcast set of recipient servers and interpolating a univariate polynomial from the shares; if yes, then transmitting the share to servers that are not in the broadcast set of recipient servers; or if no, then receiving shares until a threshold number of shares are received from the broadcast set of recipient servers and interpolating a univariate polynomial from the shares; evaluating, by each server in the plurality of servers, a univariate polynomial to identify a zero coefficient, the zero coefficient being a share of secret s; and reconstructing, by one or more servers in the plurality of servers, secret s.