Blockchain 有可能创建我们自己的Solidity库吗?

Blockchain 有可能创建我们自己的Solidity库吗?,blockchain,ethereum,solidity,Blockchain,Ethereum,Solidity,我现在正在基于以太坊构建一个彩票D-App。 在创建智能合约时,我发现Solidity没有生成随机数的方法。 坚固性不能产生随机数。 因此,我创建了自己的方法,使用时间戳生成随机数 是否可以将此方法作为库,以便每个人都可以通过简单的导入命令使用我的方法? 如果可能的话,许多开发人员都可以节省时间。我相信您可以部署您的PRNG合同,并允许其他调用方使用它,或者在某些公共存储库(例如github)上发布其代码,允许开发人员直接将其添加到代码中(使用导入命令) 请注意,使用块时间戳作为随机性源被认为是

我现在正在基于以太坊构建一个彩票D-App。 在创建智能合约时,我发现Solidity没有生成随机数的方法。 坚固性不能产生随机数。 因此,我创建了自己的方法,使用时间戳生成随机数

是否可以将此方法作为库,以便每个人都可以通过简单的导入命令使用我的方法?


如果可能的话,许多开发人员都可以节省时间。

我相信您可以部署您的PRNG合同,并允许其他调用方使用它,或者在某些公共存储库(例如github)上发布其代码,允许开发人员直接将其添加到代码中(使用导入命令)

请注意,使用块时间戳作为随机性源被认为是不安全的:

这篇文章建议使用外部oracle(需要信任oracle操作符)或某种提交-揭示方案(例如,几个参与者发送随机种子散列-这就是承诺,然后他们都会揭示前映像。该种子被定义为前映像的某种混合,例如它们的XOR)。
另一种方法是使用VDF(可验证延迟函数)。下面是StarkWare实施VDF的一个示例,其中包括如何使用VDF在以太坊上提供安全随机性的详细信息。

我有一个问题。开发人员如何知道已部署的PRNG合同?他们不知道它是否已部署,应该以某种方式发布。部署合约就像部署服务,如果不以某种方式发布,没有人会知道它。您可以尝试将其发布在网站上,如,Medium,Twitter等。请注意,与标准服务相比,网络中的任何人都会注意到已部署了合同,但有兴趣跟踪此情况的人可能不是应用程序的标准用户。