Биткойн създаде много шум в интернет. Той беше осмиван, беше нападнат и най-накрая беше приет и стана част от живота ни. Въпреки това, Биткойн не си сам. По това време има повече от 700 AltCoin приложения, които използват подобни принципи на CryptoCurrency .
И така, какво ви трябва, за да създадете нещо като биткойн?
Без да се опитваме да разберем вашата лична мотивация за създаване на децентрализирана и анонимна система за обмен на пари / информация (но все пак да се надяваме, че тя е в сферата на моралните и юридически дейности), нека първо анализираме основните изисквания за новата ни платежна система:
Изпълнението на първите две изисквания от нашия списък, премахването на централен орган за обмен на информация чрез Интернет, вече е възможно. Това, от което се нуждаете, е мрежа peer-to-peer (P2P) .
Споделянето на информация в P2P мрежите е подобно на споделянето на информация между приятели и семейство. Ако споделите информация с поне един член на мрежата, в крайна сметка тази информация ще достигне до всички останали членове на мрежата. Единствената разлика е, че в цифровите мрежи тази информация няма да бъде променена по никакъв начин.
Вероятно сте чували за BitTorrent, една от най-популярните P2P (доставка на съдържание) системи за споделяне на файлове. Друго популярно приложение за споделяне на P2P е Skype, както и други системи за чат.
Най-просто казано, възможно е да внедрите или използвате един от съществуващите P2P протоколи с отворен код, за да поддържате новата си крипто конверсия, която ние ще наречем Topcoin .
За да разберем цифровите идентичности, трябва да разберем как 'Крипто хеширане' . Хеширането е процес на картографиране на цифрови данни с произволен размер на данни с фиксиран размер. С по-прости думи, хеширането е процес на вземане на определена информация, която се чете, и извършване на нещо, което изобщо няма смисъл.
Можете да сравните хеш, за да получите отговори от политиците. Информацията, която им предоставяте, е ясна и разбираема, докато изходът, който те предоставят, наподобява случаен поток от думи.
Има някои изисквания, от които се нуждае един добър хеширащ алгоритъм:
Ако погледнете простата статистика, ще имаме ограничен (но огромен) брой възможни стойности на HASH, просто защото нашата дължина на HASH е ограничена. Нашият алгоритъм за хеширане (който се нарича Politician256) трябва да бъде достатъчно надежден, че да генерира само дублирани хеш стойности за различни входове толкова често, колкото маймуна в зоопарка успява да напише правилно Хамлет на пишеща машина!
Ако смятате, че Хамлет е само име или дума, моля, спрете да четете сега или четете за това. Теорема за безкрайната маймуна (или теоремата за безкрайната маймуна) .
Когато подписвате документ, всичко, което трябва да направите, е да прикачите подписа си към текста на документ. Цифровият подпис е подобен: просто трябва да прикачите личните си данни към документа, който подписвате.
Ако разбирате, че алгоритъмът за хеширане се придържа към правилото къде дори и най-малката промяна във входните данни трябва да доведе до значителна разлика в изхода. , тогава е очевидно, че стойността на HASH, създадена за оригиналния документ, ще се различава от стойността на HASH, създадена за документа с прикачения подпис.
Комбинация от оригиналния документ и стойността на HASH, получена за документа, с приложените ви лични данни е a документ с цифров подпис .
И така стигаме до нея виртуална идентичност , което се дефинира като данните, които сте добавили към документа, преди да създадете тази HASH стойност.
След това трябва да се уверите, че подписът ви не може да бъде копиран и никой не може да извърши транзакция от ваше име. Най-добрият начин да се уверите, че вашият подпис е сигурен е да го поддържате сами и да предоставите различен метод за някой друг да валидира подписания документ. За пореден път можем да се обърнем към технологиите и алгоритмите, които са лесно достъпни. Това, което трябва да използваме, е криптография с публичен ключ също известен като асиметрична криптография .
За да работи това, трябва да създадете частен ключ и едно публичен ключ . Тези два ключа ще бъдат в някаква математическа корелация и ще зависят един от друг. Алгоритъмът, който ще използвате за създаване на тези ключове, ще гарантира, че всеки частен ключ ще има различен публичен ключ. Както подсказват имената им, частният ключ е информацията, която той ще запази само за вас, докато публичният ключ е информацията, която ще споделите.
Ако използвате личния си ключ (вашата самоличност) и оригиналния документ като входни стойности за алгоритъм за подпис За да създадете стойност на HASH, ако приемете, че сте запазили ключа си в тайна, можете да сте сигурни, че никой друг не може да създаде същата стойност на HASH за този документ.
Ако някой трябва да потвърди вашия подпис, той или тя ще използва оригиналния документ, стойността на HASH, която е произвел, и вашия публичен ключ като входни данни за алгоритъм за проверка на подпис за да проверите дали тези стойности съвпадат.
Ако приемем, че сте внедрили P2P комуникация, механизми за създаване на цифрови самоличности (частни и публични ключове) и предоставили начини за потребителите да подписват документи, използвайки техните лични ключове, вие сте готови да започнете да изпращате информация на своите връстници.
Тъй като нямаме централен орган, който да проверява колко пари имате, системата ще трябва да ви пита за това всеки път и след това да проверява дали сте излъгали или не. Следователно вашият регистър на транзакциите може да съдържа следната информация:
Единственото, което остава да направите, е да подпишете цифрово дневника на транзакциите с личния си ключ и да предадете дневника на транзакциите на своите връстници в мрежата. В този момент всеки ще получи информацията, че някой (вашата виртуална самоличност) изпраща пари на друг (виртуалната самоличност на вашия фармацевт).
Вашата работа е свършена. Въпреки това, вашето лекарство няма да бъде платено, докато цялата мрежа не приеме, че действително сте имали 100 монети и следователно може да изпълните тази транзакция. Едва след като транзакцията Ви бъде потвърдена, Вашият фармацевт ще получи средствата и ще Ви изпрати лекарството.
Известно е, че миньорите са трудолюбиви хора, които според мен са много зле платени. В дигиталния свят на криптовалутата миньорите играят много подобна роля, с изключение на този случай, те извършват интензивна изчислителна работа, вместо да копаят купчини мръсотия. За разлика от истинските миньори, някои майнери на криптовалута направиха малко състояние през последните пет години, но много други загубиха състояние в това рисковано начинание.
Майньорите са централният компонент на системата и основната им цел е да потвърдят валидността на всяка транзакция, поискана от потребителите.
За да потвърдят валидността на вашата транзакция (или комбинация от няколко транзакции, поискани от някои други потребители), майньорите ще направят две неща.
Първо, те ще се основават на факта, че „всеки знае всичко“, което означава, че всяка транзакция, изпълнена в системата, се копира и е достъпна за всеки връстник в мрежата. Те ще изследват историята на транзакциите ви, за да проверят дали всъщност сте имали 100 монети, за да започнете. След като салдото по сметката ви бъде потвърдено, те ще генерират конкретна HASH стойност. Тази хеш стойност трябва да бъде в определен формат; трябва да започне с определен брой нули .
Има два входа за изчисляване на тази HASH стойност:
Като се вземе предвид това дори и най-малката промяна във входните данни трябва да доведе до значителна разлика в изходната стойност на HASH , миньорите имат много трудна задача. Те трябва да намерят конкретна стойност за променлива работен тест който произвежда HASH, който започва с нули. Ако вашата система изисква минимум 40 нули във всяка валидирана транзакция, миньорът ще трябва да изчисли приблизително 2 ^ 40 различни стойности на HASH, за да намери работен тест правилно.
След като миньор намери подходящата стойност за доказателство за работа, той или тя има право на такса за транзакция (единната валута, която са готови да платят), която може да бъде добавена като част от валидираната транзакция. Всяка потвърдена транзакция се излъчва на връстници в мрежата и се съхранява в определен формат на базата данни, известен като Блокчейн .
Но какво ще стане, ако броят на миньорите се увеличи и вашият хардуер стане много по-ефективен? Биткойн се добиваше в процесори, графични процесори и FPGA, но в крайна сметка майньорите започнаха да проектират свои собствени ASIC чипове, които бяха много по-мощни от тези ранни решения. С увеличаване на скоростта на хеширане нараства и трудността при добива, като по този начин се гарантира баланс. Когато в мрежата се въведе повече мощност за хеширане, трудността се увеличава и обратно; Ако много миньори решат да извадят щепсела, това е така, защото тяхната работа вече не е печеливша, трудността се пренастройва, за да съответства на новата скорост на хеш.
Блокчейнът съдържа историята на всички транзакции, извършени в системата. Всяка потвърдена транзакция или партида от транзакции се превръща в друг пръстен във веригата.
Следователно блокчейнът на Биткойн е по същество публична книга, където транзакциите са изброени в хронологичен ред.
Първият пръстен на блокчейн Bitcoin се нарича Genesis Block
За да прочетете повече за това как работи блокчейнът, предлагам да прочетете Обяснена технология на блокчейн: Захранване на биткойн от Нермин Хайдарбегович.
Няма ограничение за това колко майнери могат да бъдат активни във вашата система. Това означава, че е възможно двама или повече миньори да валидират една и съща транзакция. Ако това се случи, системата ще провери общите усилия, които всеки майнер е инвестирал за валидиране на транзакцията, просто като брои нули. Миньорът, който положи най-много усилия (намери най-много водещи нули), ще надделее и неговият блок ще бъде приет.
Първото правило на биткойн системата е, че могат да бъдат генерирани максимум 21 000 000 биткойни. Този брой все още не е постигнат и въз основа на настоящите тенденции се смята, че този брой е достигнат през 2140 година.
Това може да ви накара да поставите под въпрос полезността на такава система, защото 21 милиона единици не звучат много. Системата Bitcoin обаче поддържа дробни стойности до осем знака след десетичната запетая (0,00000001). Нарича се тази най-малка единица биткойн Сатоши , в чест на Сатоши Накамото, анонимния разработчик зад протокола Bitcoin.
Новите монети се създават като награда за миньорите за валидиране на транзакции. Тази награда не таксата за транзакция които сте посочили, когато сте създали запис на транзакция, но той се определя от системата. Сумата на наградата намалява с времето и в крайна сметка ще се нулира, след като бъде достигнат общият брой издадени монети (21m). Когато това се случи, таксите за транзакции ще играят много по-голяма роля, тъй като майнерите могат да изберат да приоритизират по-ценните транзакции за валидиране.
Освен че определя горната граница на максималния брой монети, системата на Биткойн използва и интересен начин за ограничаване на ежедневното производство на нови монети. Чрез калибриране на минималния брой водещи нули, необходими за изчисляване на доказателство за работа, времето, необходимо за потвърждаване на транзакцията и получаване на ново възнаграждение за монети, винаги се определя на приблизително 10 минути. Ако времето между добавянето на нови блокове към блокчейна намалее, системата може да изисква доказателство за работа, за да генерира 45 или 50 водещи нули.
как да пиша автоматизирани тестови скриптове в java
Следователно, като ограничава скоростта и броя на новите монети, които могат да бъдат генерирани, системата на Биткойн ефективно контролира паричното предлагане.
Както можете да видите, създаването на собствена версия на биткойн не е толкова трудно. Използвайки съществуваща технология, внедрена по иновативен начин, имате всичко необходимо за криптовалута.
Последното нещо, което си струва да се спомене, е, че в основата си криптографията е начин за прехвърляне на анонимна информация / стойност от един потребител на друг в разпределена равнопоставена мрежа .
Помислете дали да не замените монети във вашия регистър на транзакциите с произволни данни, които дори биха могли да бъдат криптирани с помощта на асинхронна криптография, така че само подателят и получателят да могат да я дешифрират. Сега помислете дали да не го приложите към нещо като Интернет на нещата !
Системата за криптовалута може да бъде интересен начин за комуникация между нашата печка и тостер. TweetРедица технически тежести вече проучват използването на блокчейн технологията на IoT платформи, но това не е единственото потенциално приложение на тази сравнително нова технология.
Ако не виждате причина да създадете собствена алтернативна валута (различна от шега), можете да опитате да използвате същия или подобен подход за нещо друго, като разпределено удостоверяване, създаване на виртуални валути, използвани в игри, социални медии, и други приложения, или Можете да продължите да създавате нова програма за лоялност за вашия бизнес за електронна търговия, която ще възнаграждава редовните клиенти с виртуални токени, които могат да бъдат осребрени по-късно.