Манай нууц тоо (seed)
Сугалаа борлуулалтад гарахад үүсгэж, зөвхөн хурууны хээг (hash) нь нийтэлнэ. Тоог дараа нь сольвол хурууны хээ өөрчлөгдөх тул солих боломжгүй.
Борлуулалт эхлэхэд нийтлэгдэнэ
Сугалаа бүрийн ялагчийг гурван зүйл нийлж тодруулна. Гурвуулаа нийтэд ил тул бидэнд итгэх шаардлагагүй — ялагчийг өөрөө дахин тооцоолж болно.
Сугалаа борлуулалтад гарахад үүсгэж, зөвхөн хурууны хээг (hash) нь нийтэлнэ. Тоог дараа нь сольвол хурууны хээ өөрчлөгдөх тул солих боломжгүй.
Борлуулалт эхлэхэд нийтлэгдэнэ
Зарагдсан бүх дугаарыг түгжиж, жагсаалтын hash-ийг нийтэлнэ. Үүнээс хойш тасалбар нэмэх, хасах боломжгүй. Жагсаалтыг (зөвхөн дугаартай) хэн ч татаж болно.
Борлуулалт хаагдахад түгжигдэнэ
drand-ын нийтийн санамсаргүй тоо. Аль round-ыг ашиглахыг урьдчилж зарлана — гэхдээ тэр тоог гарахаас нь өмнө хэн ч мэдэхгүй.
Ёслолын мөчид гарна
Гол санаа: жагсаалт түгжигдэх мөчид drand-ын тоо хараахан байхгүй. Тиймээс тэр мөчид хэн хожихыг хэн ч мэдэхгүй, дараа нь хэн ч өөрчилж чадахгүй.
drand бол Cloudflare, Швейцарийн EPFL их сургууль, Protocol Labs, Kudelski Security, Чилийн их сургууль зэрэг дэлхийн арав гаруй байгууллагын хамтран ажиллуулдаг нийтийн санамсаргүй тооны үйлчилгээ. 2020 оноос хойш 30 секунд тутам дугаартай нэг санамсаргүй тоо гаргадаг бөгөөд хэн ч үнэгүй ашиглаж болно.
Олон түлхүүртэй сейф гэж бод: нэг нууц түлхүүрийг байгууллагуудад хувааж өгсөн бөгөөд ихэнх нь хамтдаа гарын үсэг зурж байж л тоо гарна.
drand яг одоо
…
30 секунд тутам шинэ тоо — таны хөтөч drand-аас шууд татаж байна.
drand.love дээр харахҮгүй. drand-ын тоо жагсаалт түгжигдсэний дараа л гардаг бөгөөд түүнийг урьдчилж хэн ч мэдэхгүй. Жагсаалт түгжигдсэний дараа тасалбар нэмэх, хасах, цуцлах, хойшлуулахыг систем өөрөө хаадаг.
Давхар хамгаалалт. drand-ын бүх байгууллага нийлж хуйвалдсан ч манай нууц тоог мэдэхгүй тул ялагчийг урьдчилж мэдэхгүй. Манай тоо борлуулалт эхлэхэд түгжигдсэн тул бид ч үүнийг ашиглаж чадахгүй.
Зарласан round-ын утга урьдаас тогтсон. Сүлжээ сэргэмэгц яг тэр утга гарна — ёслол түүнийг хүлээнэ, өөр тоо руу хэзээ ч шилжихгүй.
Үгүй. Ажилтны данс тасалбар авахыг систем хориглодог.
winner = tickets[ unbiased( HMAC-SHA256( seed, "shosha-lottery-v1:" + lotteryId + ":" + R + ":" + drand + ":" + listHash ), N ) ]
тасалбарууд — түгжих үеийн зарагдсан дугаарууд, өсөхөөр эрэмбэлсэн (N ширхэг); listHash = жагсаалтын sha256. unbiased — digest-ийн 32 битийн хэсгүүд дээрх rejection sampling тул тасалбар бүрийн магадлал яг 1/N; хайрцгийн roll-той ижил арга.
drand mainnet (chained BLS12-381), 30 секунд тутам нэг round; R нь ёслолын цагт эсвэл түүнээс хойш гарах эхний round.