BitShares Forum

Main => 中文 (Chinese) => Topic started by: kinglaw0577 on January 20, 2015, 06:27:18 am

Title: bitshares内置的随机数生成器
Post by: kinglaw0577 on January 20, 2015, 06:27:18 am
随机数的生成是一个由来已久的问题。一个广泛的原则是:随机性的生成 最好不被任何个体所控制。因此譬如从比特币的未来某区块的数据来获取随机性的方式是不能使人信服 的,因为这些随机性最终实际上是由某个个体决定的,无法证明这个相关人没有作恶。
BTS块链中采用的是一种分布式的随机数生成算法,使用了DPOS结构中的受托人来提供随机性。受托人事先生 成私密的种子数据,然后生成区块时公布该种子数据的哈希值,在下一次生成区块时再公布该种子数据 。最终外部过程所使用的随机数由连续的多个种子数据来确定。这样只要有一位受托人是诚实的并将他们的信息保密,那么其他人就无法预测结果。那么我们可以很放心地假设 受托人中至少其中有一个是诚实的。这样产生的随机数可信程度是非常高的。

bts每块都有一个随机数种子:random_seed,
可以在控制台中通过blockchain_get_block 查询,如:查询第100块的随机数=>
>> blockchain_get_block  1000000

{
  "previous": "e9302cdac98a957b738adc7a5844a246f99b6907",
  "block_num": 1000000,
  "timestamp": "2014-11-13T16:33:10",
  "transaction_digest": "c8cf12fe3180ed901a58a0697a522f1217de72d04529bd255627a4ad6164f0f0",
  "next_secret_hash": "98e1f662286bb51067169b37d57e26d4c1a184c1",
  "previous_secret": "ae365cfb435b8460dadbf9c81663e8880e0ec982",
  "delegate_signature": "2095a89c64029014b5e11e11a974aaeec67acd79d747595a7e3c870992dd834c0b0b5b0291bea3db837f4578f426a049d7e9644fc5c7c1b936e38c6e4b5afaa125",
  "user_transaction_ids": [],
  "block_size": 166,
  "latency": 5758292000000,
  "signee_shares_issued": 150000,
  "signee_fees_collected": 0,
  "signee_fees_destroyed": 0,
  "random_seed": "c68620f29b33fc6f77c6d0929520712786cf6a2f",<=这个就是随机数种子了
  "processing_time": 0
}

随机数有很多的应用场景,如彩票、竞猜等、随机选择等,BTS的101每轮受托人顺序就是利用BTS块链中随机数进行随机排列的。
比特股猜区块小游戏(http://btsgame.org ) 是 一个基于bts块链链工作的应用,利用了bts块链的中随机数进行开奖,开奖数字取值预先指定的区块随机数,所以开奖号码是无法预先知道的,庄家无法作弊。
Title: Re: bitshares内置的随机数生成器
Post by: acceptance on January 20, 2015, 08:02:34 am
random_seed真的是随机的吗,受托人是否能控制随机数的生成?据我了解下一个受托人是已定的,而且受托人是有办法控制随机种子的生成,控制首位数更是简单。

你网站的BTS,BITCNY的投注蛮新颖的。赞!

[新增代理竞猜,点此进入]点进去没反应,怎么回事?
Title: Re: bitshares内置的随机数生成器
Post by: Musewhale on January 20, 2015, 09:43:26 am
PLAY上面代购双色球吧 :P :P :P
Title: Re: bitshares内置的随机数生成器
Post by: Snail on January 20, 2015, 03:16:29 pm
楼主请看 http://www.bts.hk/zzzn.html (http://www.bts.hk/zzzn.html)
Title: Re: bitshares内置的随机数生成器
Post by: logxing on January 20, 2015, 03:29:09 pm
这第一段是PLAY的非技术白皮书节选啊。
要多个受托人的随机数综合构成一个随机数才可信。
Title: Re: bitshares内置的随机数生成器
Post by: xiahui135 on January 20, 2015, 04:08:21 pm

PLAY上面代购双色球吧 :P :P :P
Play上发行的彩票返奖率可以高很多,因为成本低很多。
Title: Re: bitshares内置的随机数生成器
Post by: Snail on January 20, 2015, 05:06:43 pm
这第一段是PLAY的非技术白皮书节选啊。
要多个受托人的随机数综合构成一个随机数才可信。

我擦,,,,,,,,,,,,,,
Title: Re: bitshares内置的随机数生成器
Post by: callmeluc on January 20, 2015, 07:31:54 pm
这第一段是PLAY的非技术白皮书节选啊。
要多个受托人的随机数综合构成一个随机数才可信。

我擦,,,,,,,,,,,,,,

哈哈哈哈哈哈
Title: Re: bitshares内置的随机数生成器
Post by: freebit on February 24, 2015, 09:43:42 am
随机数的生成是一个由来已久的问题。一个广泛的原则是:随机性的生成 最好不被任何个体所控制。因此譬如从比特币的未来某区块的数据来获取随机性的方式是不能使人信服 的,因为这些随机性最终实际上是由某个个体决定的,无法证明这个相关人没有作恶。
BTS块链中采用的是一种分布式的随机数生成算法,使用了DPOS结构中的受托人来提供随机性。受托人事先生 成私密的种子数据,然后生成区块时公布该种子数据的哈希值,在下一次生成区块时再公布该种子数据 。最终外部过程所使用的随机数由连续的多个种子数据来确定。这样只要有一位受托人是诚实的并将他们的信息保密,那么其他人就无法预测结果。那么我们可以很放心地假设 受托人中至少其中有一个是诚实的。这样产生的随机数可信程度是非常高的。

bts每块都有一个随机数种子:random_seed,
可以在控制台中通过blockchain_get_block 查询,如:查询第100块的随机数=>
>> blockchain_get_block  1000000

{
  "previous": "e9302cdac98a957b738adc7a5844a246f99b6907",
  "block_num": 1000000,
  "timestamp": "2014-11-13T16:33:10",
  "transaction_digest": "c8cf12fe3180ed901a58a0697a522f1217de72d04529bd255627a4ad6164f0f0",
  "next_secret_hash": "98e1f662286bb51067169b37d57e26d4c1a184c1",
  "previous_secret": "ae365cfb435b8460dadbf9c81663e8880e0ec982",
  "delegate_signature": "2095a89c64029014b5e11e11a974aaeec67acd79d747595a7e3c870992dd834c0b0b5b0291bea3db837f4578f426a049d7e9644fc5c7c1b936e38c6e4b5afaa125",
  "user_transaction_ids": [],
  "block_size": 166,
  "latency": 5758292000000,
  "signee_shares_issued": 150000,
  "signee_fees_collected": 0,
  "signee_fees_destroyed": 0,
  "random_seed": "c68620f29b33fc6f77c6d0929520712786cf6a2f",<=这个就是随机数种子了
  "processing_time": 0
}

随机数有很多的应用场景,如彩票、竞猜等、随机选择等,BTS的101每轮受托人顺序就是利用BTS块链中随机数进行随机排列的。
比特股猜区块小游戏(http://btsgame.org ) 是 一个基于bts块链链工作的应用,利用了bts块链的中随机数进行开奖,开奖数字取值预先指定的区块随机数,所以开奖号码是无法预先知道的,庄家无法作弊。

有了随机数种子,如何获得指定范围的随机数呢?