shorena
Copper Member
Legendary
Offline
Activity: 1484
Merit: 1278
No I dont escrow anymore.


August 02, 2016, 10:24:30 AM 

Nothing is checked, not with online wallets, not with services (e.g. blockchain.info), not offline, no where. A collision is not prevented, its just so unlikely that it can be considered impossible. Some GPU system create over 60Million keys per second, thats not possible when a check would be needed. What would the check even accomplish? I could still spend your funds.
How unlikely is this? I mean if it is today considered unlikely, what will happen tomorrow when, say, some system could create not just 60M keys per second but 60MM keys per second (and check realtime against existing addresses at that)? Wouldn't this render Bitcoin useless and worthless immediately? To me, it is always fishy when something is considered impossible, since it has a tendency to actually happen one day... "640K ought to be enough for anybody" I assume with 60MM you mean 60Terrakeys/sec (6*10 ^{13}). Lets assume this is what a tomorrow ^{TM} GPU can do and that there are a billion (10 ^{9}) people brute forcing keys. They somehow manage to never generate the same keys among them. How long would they need to create half of all possible version 1 bitcoin addresses? Well there are 2 ^{160} possible addresses and the attackers can check 6*10 ^{13+9} per second. They would reach half after 2 ^{159}/6*10 ^{22} ~ 1.21791*10 ^{25} seconds or ~ 3.8619 *10 ^{17} (386,199,274,197,452,360) years. calculation: https://www.wolframalpha.com/input/?i=(2%5E159%2F(6*10%5E22))%2F(60*60*24*365) (the link breaks due to the brackets, copy pasta)









♣ 100% New Software PC, Mac, Android, & HTML5 Clients ♣ Krill Rakeback Low Rake ♣ Bitcoin Poker 3.0 Bad Beat Jackpot SwC Poker Relaunch PLAY NOW



Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.




LoyceV
Legendary
Offline
Activity: 1330
Merit: 2383
Selfmade Legendary!


August 02, 2016, 10:31:25 AM 

How unlikely is this? I mean if it is today considered highly unlikely, what will happen tomorrow when, say, some system could create not just 60M keys per second but 60MM keys per second (and check in realtime against existing addresses at that)? Wouldn't this render Bitcoin useless and worthless immediately? To me, it is always fishy when something is considered impossible, since impossible things have a tendency to actually happen one day... It's hard to comprehend the full impact of statistics: it's not something you can "feel" being right. Rough estimate: it's less likely than a plane crashing on your head the moment you crash your car the day you won the lottery. And yet, people say: "but it is possible". "Very unlikely" just doesn't cut it This image is often used to illustrate how unlikely it is: Without checking the math, I'll quote this user: Given your example of 1 billion users at 10 addresses each:
There are 2^160 or about 1,460,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 possible addresses In your scenario, 1,000,000,000 people are using 10 addresses each for a total of 10,000,000,000 possible addresses 10,000,000,000 / 2^160 should yield the probability of a collision occurring 10,000,000,000 / 2^160 = 0.00000000000000000000000000000000000000684
So the chances of a collision occurring in your scenario are approximately 0.000000000000000000000000000000000000684%
See why we don't consider collisions an issue?
2^160 possible addresses Do I understand correctly that not all private keys have a valid public key? I ran this: ./vanitygen i 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 1g 1h 1i 1j 1k 1l 1m 1n 1o 1p 1q 1r 1s 1t 1u 1v 1w 1x 1y 1z o tempfile.txt q k for 11.345 seconds. It checks about 127 kkey/s, and found 5366 keys. That results in 473 keys/s being found, while 270 times more keys have been checked.




deisik
Legendary
Offline
Activity: 1764
Merit: 1058
English ⬄ Russian Translation Services


August 02, 2016, 10:47:40 AM 

So the chances of a collision occurring in your scenario are approximately 0.000000000000000000000000000000000000684%
See why we don't consider collisions an issue?
These chances are really high actually. If we write them in a more concise manner that would be 6.84 x 10^38. Just for comparison, the top supercomputer as of today is capable of making 9.3 x 10^16 floating point calculations per second (and they are now talking about reaching 10^18 flops by 2020). Yes, I know that generating an address requires many calculations but, on the other hand, someone could develop a highly specialized chip for doing just that. In fact, I expected the chances to be way lower than that, and way lower is actually an underestimation of being truly lower. Somehow, I thought the odds of a collision should be on the order of something like 10^1000. But even that I wouldn't consider as quite impossible on a long enough timeline... And don't forget about pure luck




shorena
Copper Member
Legendary
Offline
Activity: 1484
Merit: 1278
No I dont escrow anymore.


August 02, 2016, 11:20:56 AM 

snip 2^160 possible addresses Do I understand correctly that not all private keys have a valid public key? I ran this: ./vanitygen i 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 1g 1h 1i 1j 1k 1l 1m 1n 1o 1p 1q 1r 1s 1t 1u 1v 1w 1x 1y 1z o tempfile.txt q k for 11.345 seconds. It checks about 127 kkey/s, and found 5366 keys. That results in 473 keys/s being found, while 270 times more keys have been checked. Well for one you didnt check for all possible two symbol prefixes (missed capital letters), but the actual reason why there are only 2 ^{160} different possible address is different. There are 2 ^{256} private keys. The public key to each private key gets hashed with RIPEMD160 among another algorithm (SHA256) which has a 160 bit output. Thus the can never be more than 2 ^{160} addresses. It is assumed that each address has 2 ^{96} private keys that allow spending coins from them. This might not be true for all keys as its unclear whether the distribution is uniform. Its possible that some addresses have 2 ^{96}+X keys while others have 2 ^{96}X keys, where X is not zero.
So the chances of a collision occurring in your scenario are approximately 0.000000000000000000000000000000000000684%
See why we don't consider collisions an issue?
These chances are really high actually. If we write them in a more concise manner that would be 6.84 x 10^38. Just for comparison, the top supercomputer as of today is capable of making 9.3 x 10^16 floating point calculations per second (and they are now talking about reaching 10^18 flops by 2020). Yes, I know that generating an address requires many calculations but, on the other hand, someone could develop a highly specialized chip for doing just that. In fact, I expected the chances to be way lower than that, and way lower is actually an underestimation of being truly lower. Somehow, I thought the odds of a collision should be on the order of something like 10^1000. But even that I wouldn't consider as quite impossible on a long enough timeline... And don't forget about pure luck See the picture above? Its about the physical(!) limitations of counting(!) to 2 ^{256}. Thus its somewhat wrong as we only need to check 2 ^{160} (which is faster) and we are not counting (ECDSA math and hashes are slower than counting). The ballpark is still correct though. In my example above I even assumed 10 ^{22} attacks per second. BruteForce is not possible. The only way to attack bitcoin is to find a flaw. In terms of math you need a shortcut. Its easy to calculate A+5=C for any A. If you know the result C you can easily reverse the input from that. This is currently not possible for private key > public key calculations. Currently we can only select a random private key, calculate the public key and check the result. These shortcuts will be found and when that day comes bitcoin will need to adapt. They will however not be found over night (see e.g. RSA and factorisation), but there will be gradual improvement from 2 ^{256} steps to maybe 2 ^{192} and enough time to adapt to a different algorihm[1]. [1] a sidenote: SegWit actually make this super easy.




HCP
Legendary
Offline
Activity: 812
Merit: 1004
<insert witty quote here>


August 02, 2016, 11:23:54 AM 

These chances are really high actually. If we write them in a more concise manner that would be 6.84 x 10^38. Just for comparison, the top supercomputer as of today is capable of making 9.3 x 10^16 floating point calculations per second (and they are now talking about reaching 10^18 flops by 2020).
You're comparing apples with rainbows there... The values are not even remotely related to one another... how many floating point calcs you can do in a second, is not a number you can directly compare to the chances of 1billion users (who each have 10 addresses) having an address collision!!?! Bear in mind... people aren't saying it isn't possible... as the odds are >0... they're just soooooooooooooooooooooo very tiny... that if it does happen, well... that's just "Bad Luck™"




shorena
Copper Member
Legendary
Offline
Activity: 1484
Merit: 1278
No I dont escrow anymore.


August 02, 2016, 11:31:04 AM 

These chances are really high actually. If we write them in a more concise manner that would be 6.84 x 10^38. Just for comparison, the top supercomputer as of today is capable of making 9.3 x 10^16 floating point calculations per second (and they are now talking about reaching 10^18 flops by 2020).
You're comparing apples with rainbows there... The values are not even remotely related to one another... how many floating point calcs you can do in a second, is not a number you can directly compare to the chances of 1billion users (who each have 10 addresses) having an address collision!!?! Bear in mind... people aren't saying it isn't possible... as the odds are >0... they're just soooooooooooooooooooooo very tiny... that if it does happen, well... that's just "Bad Luck™" If people are afraid of this they should just never reuse addresses. This greatly limits the chances they lose a large amount of coins. The chance that it happens once is so tiny, what are the odds that you "guess" 100, 500 or 1000 addresses?




LoyceV
Legendary
Offline
Activity: 1330
Merit: 2383
Selfmade Legendary!


August 02, 2016, 11:58:49 AM 

Well for one you didnt check for all possible two symbol prefixes (missed capital letters) I did "i": case insensitive. but the actual reason why there are only 2^{160} different possible address is different. There are 2^{256} private keys. The public key to each private key gets hashed with RIPEMD160 among another algorithm (SHA256) which has a 160 bit output. Thus the can never be more than 2^{160} addresses. It is assumed that each address has 2^{96} private keys that allow spending coins from them. This might not be true for all keys as its unclear whether the distribution is uniform. Its possible that some addresses have 2^{96}+X keys while others have 2^{96}X keys, where X is not zero. This doesn't explain why I don't find 1 public key for every private key. This is the other way around: 1 public key has a lot of (unknown!) private keys, but each private key should have 1 public key, right? If I run vanitygen for 1 second searching for all possible prefixes at 127 kkeys/s, why don't I get 127,000 keys? Somehow, I thought the odds of a collision should be on the order of something like 10^1000. But even that I wouldn't consider as quite impossible on a long enough timeline...
And don't forget about pure luck
This is the reason I said it's hard to comprehend very small chances (and very large numbers). If you're that lucky, why don't you guess the winning lotto numbers every time? One more example to try to put it into perspective: even though there are billions of stars in billions of galaxies, each weighing billions of tonnes, each containing billions and billions of atoms, the visible universe is estimated to contain between 10 ^{78} and 10 ^{80} atoms. Only 10 ^{80} tiny particles, such a small number.




forumaster


August 02, 2016, 01:10:54 PM 

Hi, i don't know why but oclvanitygen don't work with my gpu, i have Windows 7 Home Premium with a Nvidia Geforce GT540M here is the log: C:\Users\Acer>C:\Users\Acer\Downloads\vanitygen0.22win\oclvanitygen.exe o boat.txt 1Boat Difficulty: 4476342 Error loading kernel file 'calc_addrs.cl': No such file or directory Available OpenCL platforms: 0: [NVIDIA Corporation] NVIDIA CUDA 0: [NVIDIA Corporation] GeForce GT 540M but there is the calc_addrs.cl file! indeed vanitygen64 works well... is NVIDIA SM2.1 supported? if not, it could explain this error... I updated everything with Nvidia GeForce Experience but nothing...




deisik
Legendary
Offline
Activity: 1764
Merit: 1058
English ⬄ Russian Translation Services


August 02, 2016, 01:26:06 PM 

These chances are really high actually. If we write them in a more concise manner that would be 6.84 x 10^38. Just for comparison, the top supercomputer as of today is capable of making 9.3 x 10^16 floating point calculations per second (and they are now talking about reaching 10^18 flops by 2020).
You're comparing apples with rainbows there... The values are not even remotely related to one another... how many floating point calcs you can do in a second, is not a number you can directly compare to the chances of 1billion users (who each have 10 addresses) having an address collision!!?! It wasn't me who brought forth the example of 1 billion users (with 10 addresses each) having an address collision, so I couldn't possibly relate them to each other. Thereby you are blaming the wrong person here... My point was totally different




deisik
Legendary
Offline
Activity: 1764
Merit: 1058
English ⬄ Russian Translation Services


August 02, 2016, 01:36:49 PM 

One more example to try to put it into perspective: even though there are billions of stars in billions of galaxies, each weighing billions of tonnes, each containing billions and billions of atoms, the visible universe is estimated to contain between 10^{78} and 10^{80} atoms. Only 10^{80} tiny particles, such a small number.
"You're comparing apples with rainbows" I specifically made reference to the capacity of the top supercomputers reachable today. I assume that we can consider it as an established fact that the time required to find a collision (which is in inverse proportion to the odds of finding this collision) and available computing power are negatively correlated... That is, the more computing power you have, the faster you will find a collision




deisik
Legendary
Offline
Activity: 1764
Merit: 1058
English ⬄ Russian Translation Services


August 02, 2016, 01:51:36 PM 

See the picture above? Its about the physical(!) limitations of counting(!) to 2^{256}. Thus its somewhat wrong as we only need to check 2^{160} (which is faster) and we are not counting (ECDSA math and hashes are slower than counting). The ballpark is still correct though. In my example above I even assumed 10^{22} attacks per second.
I don't understand what that picture should tell me. By the way, what is it? Some virus or a star? Further, I don't quite understand how real are these physical limitations of counting, and what do they have to do with finding a collision? If there are 10 billion Bitcoin addresses, the chances of finding just one collision are multiplied by the number of already created addresses, right? In other words, if all possible addresses were created, then any address you generated would be a collision... Let's assume for simplicity that a search in the database of existing addresses doesn't take time at all




altcointalk14


August 02, 2016, 07:17:30 PM 

I am having a problem trying to get oclvanitygen to work with one GPU card. R9270x Any suggestions, please installed a fresh copy of ubuntu 15.10 server AMDAPPSDKlinuxv2.9 ADL_SDK8 did the fgrlxupdates /vanitygenmaster# aticonfig listadapters * 0. 02:00.0 AMD Radeon (TM) R9 200 Series *  Default adapter I installed all the oclvanitygen requirements sudo aptget install libssldev libpcre3 libpcre3dev but I have an error with the compile: make oclvanitygen cc ggdb O3 Wall c o oclengine.o oclengine.c oclengine.c: In function ‘vg_ocl_prefix_check’: oclengine.c:1553:18: warning: variable ‘tablesize’ set but not used [Wunusedbutsetvariable] int orig_delta, tablesize; ^ cc oclvanitygen.o oclengine.o pattern.o util.o o oclvanitygen ggdb O3 Wall lpcre lcrypto lm lpthread lOpenCL So, I tried to run with this command /vanitygenmaster# ./oclvanitygen i 1address Difficulty: 13419245680 Killed Any ideas? I also tried compiling with the oclengine.c line 459 change but had the exact same error. Thanks for any help!

Join the ICO now  ┆   █████ ██████████ ██████████████ ██████████████████ ██████████████████████ ██████████████████████████ ██████████████████████████████ ████████████████████████████ ██ ███████████████████████████ ████████ ████████████████████████ ██████████████ ███████████████████ ████████████████████ ██ ████████████ ████████████████████████ ████ ████████ ███████████████████████████████ ██████ ████ ████████████████████████████████████ ████████ ██████████████████████████████████████ ████ ████ █████████████████████████████████ ██ ████████████ ████████████████████████████ ████████████████ ██████████████████████ ██████████████████████ █████████████████ ██████████████████████████ █████████ ████████████████████████████ ██ ██████████████████████████████ ███████████████████████████ ███████████████████████ ███████████████████ ███████████████ ███████████ █████   ┆  Join our BOUNTY




altcointalk14


August 02, 2016, 07:30:28 PM 

I guess, it did not like riser card,
but,
When it asked which device to use, it looks like it had TWO zeros?? Available OpenCL platforms: 0: [Advanced Micro Devices, Inc.] AMD Accelerated Parallel Processing 0: [Advanced Micro Devices, Inc.] Pitcairn 1: [GenuineIntel] Intel(R) Pentium(R) CPU G3220 @ 3.00GHz
Onboard AMD GPU. Pitcairn
Also, 17.6Mkeys/sec is that expected for R9 270x?

Join the ICO now  ┆   █████ ██████████ ██████████████ ██████████████████ ██████████████████████ ██████████████████████████ ██████████████████████████████ ████████████████████████████ ██ ███████████████████████████ ████████ ████████████████████████ ██████████████ ███████████████████ ████████████████████ ██ ████████████ ████████████████████████ ████ ████████ ███████████████████████████████ ██████ ████ ████████████████████████████████████ ████████ ██████████████████████████████████████ ████ ████ █████████████████████████████████ ██ ████████████ ████████████████████████████ ████████████████ ██████████████████████ ██████████████████████ █████████████████ ██████████████████████████ █████████ ████████████████████████████ ██ ██████████████████████████████ ███████████████████████████ ███████████████████████ ███████████████████ ███████████████ ███████████ █████   ┆  Join our BOUNTY




shorena
Copper Member
Legendary
Offline
Activity: 1484
Merit: 1278
No I dont escrow anymore.


August 02, 2016, 07:37:55 PM 

Well for one you didnt check for all possible two symbol prefixes (missed capital letters) I did "i": case insensitive. Missed that :C but the actual reason why there are only 2^{160} different possible address is different. There are 2^{256} private keys. The public key to each private key gets hashed with RIPEMD160 among another algorithm (SHA256) which has a 160 bit output. Thus the can never be more than 2^{160} addresses. It is assumed that each address has 2^{96} private keys that allow spending coins from them. This might not be true for all keys as its unclear whether the distribution is uniform. Its possible that some addresses have 2^{96}+X keys while others have 2^{96}X keys, where X is not zero. This doesn't explain why I don't find 1 public key for every private key. This is the other way around: 1 public key has a lot of (unknown!) private keys, but each private key should have 1 public key, right? If I run vanitygen for 1 second searching for all possible prefixes at 127 kkeys/s, why don't I get 127,000 keys? It should. Not sure, I dont get any numbers when I run it with k 1, but its not 300k per second. Might be the output slowing it down.
See the picture above? Its about the physical(!) limitations of counting(!) to 2^{256}. Thus its somewhat wrong as we only need to check 2^{160} (which is faster) and we are not counting (ECDSA math and hashes are slower than counting). The ballpark is still correct though. In my example above I even assumed 10^{22} attacks per second.
I don't understand what that picture should tell me. Thats impossible to use the entire energy our sun has left fueling the best possible computer and let it count to 2 ^{256} By the way, what is it? Some virus or a star? Further, I don't quite understand how real are these physical limitations of counting, and what do they have to do with finding a collision? If there are 10 billion Bitcoin addresses, the chances of finding just one collision are multiplied by the number of already created addresses, right? In other words, if all possible addresses were created, then any address you generated would be a collision...
Let's assume for simplicity that a search in the database of existing addresses doesn't take time at all
IIRC its a dyson sphere around our sun. Its a theoretical concept of a civilization so advanced that it can build a sphere around a sun to harvest 100% (or very close to) of its energy output. The physical limitations assumed in the picture are the following. Take the thing that requires the least amount of energy to represent a bit in either a 0 or a 1 state. IIRC its the spin of some particle. This lowest possible amount of energy is defined by the law of thermodynamics. Now take a good estimate of what the sun can output in terms of energy and calculate how many bit flips you can fuel with that energy. The result is that you cant do enough bit flips to count to 2 ^{256}. Keep in mind that this is physics and my understanding of these things is limited. I personally think I understand the pictures point, but I dont like it. Mainly because 2 ^{256} does not matter anyway and its not a good explanation without a deep knowledge of physics. Its essentially a "because physics says so" which is useless if you cant follow the argument. Anyway, trailing off. I assumed no lookup time and no other constrains. I also took half of all possible addresses and not all of them, because of the birthday paradox[1] which essentially means that you have a almost 100% chance of finding a collision after checking half of all possible hashes. [1] https://en.wikipedia.org/wiki/Birthday_problem




altcointalk14


August 02, 2016, 07:49:01 PM 

Has anyone had luck running with a GPU thru a riser connected to PCIe x 1 slot ?
I can mine with a GPU on the PCIe x 1 slot. (with a riser)

Join the ICO now  ┆   █████ ██████████ ██████████████ ██████████████████ ██████████████████████ ██████████████████████████ ██████████████████████████████ ████████████████████████████ ██ ███████████████████████████ ████████ ████████████████████████ ██████████████ ███████████████████ ████████████████████ ██ ████████████ ████████████████████████ ████ ████████ ███████████████████████████████ ██████ ████ ████████████████████████████████████ ████████ ██████████████████████████████████████ ████ ████ █████████████████████████████████ ██ ████████████ ████████████████████████████ ████████████████ ██████████████████████ ██████████████████████ █████████████████ ██████████████████████████ █████████ ████████████████████████████ ██ ██████████████████████████████ ███████████████████████████ ███████████████████████ ███████████████████ ███████████████ ███████████ █████   ┆  Join our BOUNTY




deisik
Legendary
Offline
Activity: 1764
Merit: 1058
English ⬄ Russian Translation Services


August 02, 2016, 09:14:37 PM 

I don't understand what that picture should tell me.
Thats impossible to use the entire energy our sun has left fueling the best possible computer and let it count to 2 256I got that, but I'm not sure whether this claim is actually true. If I ain't missing something, counting to 2^256 means incrementing by one, from zero right up to that value? So how big is that number in decimal notation? I guess it should be something like 10^77. The Sun emits around 3.8 x 10^26 joules of energy per second. If we take one year as a reasonable term for counting to 2^256, we will have 1.2 x 10^34 joules to do that, or approximately 10^33 joules per increment. The smallest transistor (which could be considered as a simplest increment device) has been made from just 1 atom, while graphene nanoscale transistors have been clocked up to 1,000 GHz (which gives 10^12 increments per second).... So we need to know how much power an atomic scale transistor consumes to (in)validate that claim in practice




aarons6
Legendary
Offline
Activity: 1498
Merit: 1004


August 02, 2016, 10:18:24 PM 

i think the main thing that people arent factoring in is, not just the possibility of a collision.. but you also have to factor in the luck in colliding with a used address.
this will significantly lower your chances..




deisik
Legendary
Offline
Activity: 1764
Merit: 1058
English ⬄ Russian Translation Services


August 02, 2016, 10:19:10 PM 

The physical limitations assumed in the picture are the following. Take the thing that requires the least amount of energy to represent a bit in either a 0 or a 1 state. IIRC its the spin of some particle. This lowest possible amount of energy is defined by the law of thermodynamics
Actually no, the lowest possible amount of energy is defined by quantum mechanics and can be calculated using Planck's constant (which equals 6.63*10^34 jouleseconds) by multiplying it by minimal frequency, i.e. E(min) = h x f(min). The minimal possible frequency is determined by the age of the Universe (4.4*10^17 seconds). So we get the minimal possible energy that an object can possess equal to 6.63*10^34 x 1 / 4.4*10^17 = 1.5*10^51 joules. In this way, we only need to make such an object oscillate between the two lowest levels of energy given by Planck's constant (this may require only a tiny amount of energy, thereby making a Dyson sphere totally excessive)... Provided we find such an object in the first place (some low frequency photon whose wavelength is equal to the diameter of the Universe)




deisik
Legendary
Offline
Activity: 1764
Merit: 1058
English ⬄ Russian Translation Services


August 02, 2016, 10:30:37 PM 

i think the main thing that people arent factoring in is, not just the possibility of a collision.. but you also have to factor in the luck in colliding with a used address.
this will significantly lower your chances..
I think the chances actually increase. Why? If we have fully used the address space (i.e. all possible addresses have been found and used), then the probability of collision will be equal to 1, that is, any address you may find will necessarily lead to a collision. If only half of the address space is taken, the probability diminishes to 0.5... In this way, by filling up the address space, we increase the probability of collision (that was precisely my point)




altcointalk14


August 03, 2016, 01:46:15 AM 

Regarding oclvanitygen
Does anyone know how many keys are searched before generating a new random key?
and
Is there anyway to change this setting? (If it generates a random key every million keys, is there any way to change to a billion or a thousand keys before generating a new random key?)

Join the ICO now  ┆   █████ ██████████ ██████████████ ██████████████████ ██████████████████████ ██████████████████████████ ██████████████████████████████ ████████████████████████████ ██ ███████████████████████████ ████████ ████████████████████████ ██████████████ ███████████████████ ████████████████████ ██ ████████████ ████████████████████████ ████ ████████ ███████████████████████████████ ██████ ████ ████████████████████████████████████ ████████ ██████████████████████████████████████ ████ ████ █████████████████████████████████ ██ ████████████ ████████████████████████████ ████████████████ ██████████████████████ ██████████████████████ █████████████████ ██████████████████████████ █████████ ████████████████████████████ ██ ██████████████████████████████ ███████████████████████████ ███████████████████████ ███████████████████ ███████████████ ███████████ █████   ┆  Join our BOUNTY




