Тёмный

Blockchain tutorial 11: Elliptic Curve key pair generation 

Mobilefish.com
Подписаться 29 тыс.
Просмотров 58 тыс.
50% 1

This is part 11 of the Blockchain tutorial explaining how the generate a public private key using Elliptic Curve.
In this video series different topics will be explained which will help you to understand blockchain.
Bitcoin released as open source software in 2009 is a cryptocurrency invented by Satoshi Nakamoto (unidentified person or group of persons).
After the introduction of Bitcoin many Bitcoin alternatives were created. These alternate cryptocurrencies are called Altcoins (Litecoin, Dodgecoin etc).
Bitcoin's underlying technology is called Blockchain.
The Blockchain is a distributed decentralized incorruptible database (ledger) that records blocks of digital information. Each block contains a timestamp and a link to a previous block.
Soon people realises that there many other use cases where the Blockchain technology can be applied and not just as a cryptocurrency application.
New Blockchain platforms were created based on the Blockchain technology, one of which is called Ethereum.
Ethereum focuses on running programming code, called smart contracts, on any decentralized application.
Using the new Blockchain platforms, Blockchain technology can be used in supply chain management, healthcare, real estate, identity management, voting, internet of things, etcetera, just to name a few.
Today there is a growing interest in Blockchain not only in the financial sector but also in other sectors.
Explaining how Blockchain works is not easy and for many the Blockchain technology remains an elusive concept.
This video series tries to explain Blockchain to a large audience but from the bottom up.
Keywords often used in Blockchain conversation will be explained.
Each Blockchain video is short and to the point.
It is recommended to watch each video sequentially as I may refer to certain Blockchain topics explained earlier.
Check out all my other Blockchain tutorial videos
goo.gl/aMTFHU
Subscribe to my RU-vid channel
goo.gl/61NFzK
The presentation used in this video tutorial can be found at:
www.mobilefish.com/developer/b...
The presentation used in this video tutorial can be found at:
www.mobilefish.com/developer/b...
The python script used in the video:
www.mobilefish.com/download/c...
Cryptocurrency address generator and validator:
www.mobilefish.com/services/c...
Desmos graph:
www.desmos.com/calculator/kkj...
James D'Angelo, Bitcoin 101 Elliptic Curve Cryptography Part 4:
• Bitcoin 101 - Elliptic...
#mobilefish #blockchain #bitcoin #cryptocurrency #ethereum

Хобби

Опубликовано:

 

9 апр 2017

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 68   
@kynnjones8284
@kynnjones8284 3 года назад
This series is phenomenal! It not only teaches about blockchains, but also teaches, by its example, how to make a RU-vid tutorial. You have all my respect and gratitude.
@MrJDOaktown
@MrJDOaktown 3 года назад
by far the best explanation of EC I've ever seen. Thank you.
@lywong86
@lywong86 2 года назад
Thank you for your whole series. You have opened my eyes to the world of crypto.
@attamahcelestine4263
@attamahcelestine4263 Год назад
This tutorial has saved me from a lot of headaches.
@mikehavekin3394
@mikehavekin3394 Год назад
Thank you so much to have someone with this level of expertise, who gives up their time to presnt this, is phenomenal . I think a true expert can present extremely difficut concepts in a simple manner, you did this excellently. thanks again
@18Maxic
@18Maxic 6 лет назад
thanks for this videos, i understand the concept with your fast but well explained ideas
@ndabenhlemhlongo7231
@ndabenhlemhlongo7231 3 года назад
Dude you are a king with James D’angelo thank you so much for the value tools 🛠 🙇🏽
@doobaloobymusic9843
@doobaloobymusic9843 5 лет назад
Thankyou for the great videos!
@jvaoki
@jvaoki 2 года назад
Excellent video. Thank you.
@DPortal17
@DPortal17 4 года назад
Great video to explain ECC
@codewithIsuru
@codewithIsuru 3 года назад
The best. Thank you.
@Autonova
@Autonova 4 года назад
Great explanation, thanks
@RaulSouza12w
@RaulSouza12w 5 месяцев назад
Thank you! very well explained! ✅
@lherfel
@lherfel Год назад
Awesome. thanks. great depth on the curve explanation, point or dot addition has nothing to do with regular addition as people would conceive of it. so much in science appears to be needless obfuscation. But I guess people cannot understand what the doctor is saying either, and the doctor cannot understand per se, that they cannot understand per se. Nice job pointing all this out. EC "doubling" is just a name for a process, not actually doubling EC "addition" just a name for a process, not actually addition.
@1112sravani
@1112sravani 4 года назад
Thank u so much.. You r awesome👏✊👍
@muqadarali4871
@muqadarali4871 6 лет назад
very attractive videos
@khaledpac7797
@khaledpac7797 4 года назад
Great explanation...but i didnt understand the binary representation of public Key, it's based on IEEE 754 format or here you use only integer values ?
@CodingJesus
@CodingJesus 3 года назад
Great!
@HM-wl1nu
@HM-wl1nu 3 года назад
If P and Q make vertical line, the line intersects the curve at infinity... what? no, the line will never intersect with the curve.
@irrealesdisruptrealestatew9532
@irrealesdisruptrealestatew9532 4 года назад
Bitcoin : "Don't trust verify". Also Bitcoin : Trust the Generator and the parameters given by NIST
@bauxite13
@bauxite13 2 года назад
Question about the python code example: you use range (1, len(ScalarBin), but it seems this skips over the first bit in the private key. Is this intentional?
@ivannovotny7511
@ivannovotny7511 5 лет назад
I think that only bitcoin geeks can understand this. You are talking about prefixes, RSA etc. Normal people get jam at eliptic curve shape - why like that (some table with values), why to infinity etc. But for geeks it is great.
@kctheservant
@kctheservant 6 лет назад
Hi, understanding that this code is originally from James back to 2014, I have a question on line 42: why is it from 1 to 256? I have run this code and found that the iteration in fact only applies on bit 1 to 255 of private key, and therefore the first bit of private key is omitted. Is this the design purpose?
@Mobilefish
@Mobilefish 6 лет назад
Very good question and to be honest I do not know myself. I wondered myself a few years ago why this was (..these little nagging questions floating in my head..) So if anyone know the answer, please let me know, so I can sleep better at night ;-)
@doobaloobymusic9843
@doobaloobymusic9843 5 лет назад
Hi, I am also wondering the same thing. The first bit certainly is being skipped, yet the public key provided by the code is correct. I would also like to know if this is by design.
@nguyenuno
@nguyenuno Год назад
Thank you for your clarification. I surfed a bunch of websites and video but can not understand this algorithm.
@davidteixemolins1527
@davidteixemolins1527 6 лет назад
There is (at least) one point that doesen't intersect the curve, that is when y = 0
@maximilianocorrea3705
@maximilianocorrea3705 5 лет назад
Hi. The public key is generated using ECDSA, but is the private key also generated using ECDSA or generated randomly with another algorithm?
@utuber1752
@utuber1752 3 года назад
It's just a 256 bit cryptography strong random number.
@Scripterrific
@Scripterrific 5 лет назад
Why does the algorithm double on every bit in the scalar and only adds the original generator point to Q on every bit that equals 1? From what other ECC explanations have said, the scalar is the number of times the generator point is added to itself (doubled). What it looks like is that the algorithm presented is taking a shortcut to doing this. Can someone explain how that shortcut works?
@JoseyWales93
@JoseyWales93 3 года назад
Classic stuff, when computing nP you do not perform n-1 additions, you use the binary representation of n, when the bit is one you perform an addition and when the bit is 0 you perform a doubling. This is the way we do modular exponentiation i.e. a^b mod (p). You have to do it that way because if n is huge, say around 2^256, it would take billions of years to compute nP by performing n-1 additions. Ex1.: 9P is not computed as P+P+P+P+P+P+P+P+P; Since 9 = 2^3+1 = 1001(2) you do 3 doubling and one addition: 2(2(2P)) + P Ex2.: 524289P is not computed as P+...+P (524288 additions); Since 524289 = 2^19+1 = 10000000000000000001(2) you perform 19 doubling and one addition 524289P = 2(2(2(2(2(2(2(2(2(2(2(2(2(2(2(2(2(2(2P)))))))))))))))))) + P Following link may be useful (scroll down to right-to-left binary method) en.wikipedia.org/wiki/Modular_exponentiation
@kebman
@kebman 6 лет назад
Given 𝔽_p {0,…p-1} where p=ℤ modulo 2²⁵⁶-2³²-977, would the curve y² = x³ + 7 even look like the one you showed?
@Mobilefish
@Mobilefish 6 лет назад
Not sure what your question is: www.desmos.com/calculator/kkj2efqk5x
@taylor7264
@taylor7264 3 года назад
a tangent line at the intersection of the curve and the x axis would not intersect the curve again no?
@PhrontDoor
@PhrontDoor 6 лет назад
Wouldn't YsubG = (XsubG^3 + 7) ^ 1/2 at the bottom of the slide at 4:55? You have YsubG = (XsubG + 7) ^ 1/2 But the SecP256k1 has y^2 = x^3 + 7, right?
@Mobilefish
@Mobilefish 6 лет назад
Yes, you are right. I have made an error in my presentation. My presentation is based on my web application (where the formula is correct) but I copied the data wrongly. www.mobilefish.com/services/cryptocurrency/cryptocurrency.html I will update my presentation. However I will not update my video (too much hassle): www.mobilefish.com/developer/blockchain/blockchain_quickguide_tutorial.html
@PhrontDoor
@PhrontDoor 6 лет назад
No prob.. just wanted to point it out.. surprised nobody else mentioned it. Thanks for the lecture. :)
@BinaryZeroTV
@BinaryZeroTV 3 года назад
i try to calculate it but it wont work, where is my error? i use python: x = int("0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", 16) y = float.hex((x ** 3 + 7) ** 0.5) and y is not the uncompressed point, but i wont see my misstake pls help, i also tried y = float.hex((x ** 3 + 7) ** 0.5) % p with p = 115792089237316195423570985008687907853269984665640564039457584007908834671663 wont work too -.-
@JoseyWales93
@JoseyWales93 3 года назад
​@@BinaryZeroTV The square root is meant as a square root in Z/pZ i.e. the square root of a mod p is the x such that x^2 = a mod p. One has to define that more precisely because x^2 = a mod p does not always have a solution and if it has a solution, the solution is not (necessarily) unique. Example: p = 7, x^2=5 has no solution in Z/7Z, x^2 = 2 has solutions 3 and 4 in Z/7Z. The following may help you: www.geeksforgeeks.org/find-square-root-modulo-p-set-2-shanks-tonelli-algorithm/
@dineshlee2821
@dineshlee2821 5 лет назад
Can you teach me how to convert some kind of bit hash to ripmd160 using a paper and pen
@michaelmironov3589
@michaelmironov3589 2 года назад
For some reason this code doesnt show the same result in python 3.7 when i swithced bacck to 2.7 i got same results as the author. Why do u think this might happen?
@harshahc1
@harshahc1 2 года назад
How was the private key generated , was it a random value ? Referring to program example at the end
@Mobilefish
@Mobilefish 2 года назад
The private key is random generated, see: www.mobilefish.com/services/cryptocurrency/cryptocurrency.html
@hashcr
@hashcr 2 года назад
i understand how the public key is calcualted, but how was the Private Key generated in the first place?
@Mobilefish
@Mobilefish 2 года назад
It is random generated, see: www.mobilefish.com/services/cryptocurrency/cryptocurrency.html
@irlnathan3019
@irlnathan3019 6 лет назад
Is a link available to your desmos example?
@Mobilefish
@Mobilefish 6 лет назад
www.mobilefish.com/services/cryptocurrency/cryptocurrency.html If you all the presentations, see: www.mobilefish.com/developer/blockchain/blockchain_quickguide_tutorial.html
@irlnathan3019
@irlnathan3019 6 лет назад
First thank you for the great videos and material! I didn't find any links to the desmos instance. I realize you've provided all of the supporting math to compute what you did, but I'm not familiar with desmos "the tool" in order to take your material and enter it via it's interface. However I wanted to see the visual relationship between the points that you showed in the video. If it's not possible to share a link to the actual desmos instance I completely understand.
@Mobilefish
@Mobilefish 6 лет назад
I have updated the description: The python script used in the video: www.mobilefish.com/download/cryptocurrency/bitcoin_ec_key_generation.py.txt Cryptocurrency address generator and validator: www.mobilefish.com/services/cryptocurrency/cryptocurrency.html Desmos graph: www.desmos.com/calculator/kkj2efqk5x James D'Angelo, Bitcoin 101 Elliptic Curve Cryptography Part 4: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-iB3HcPgm_FI.html
@irlnathan3019
@irlnathan3019 6 лет назад
Thanks so much!!!
@utubextensor
@utubextensor 6 лет назад
Hello, when I execute the algorithm using secp256k1 with the given parameters, the result I got is PublicKey[0] = 0.0 and PublicKey[1] = 0.0 and an error on the number format: "TypeError: %x format: an integer is required, not float". I'm currently using PyCharm Community Edition to writePython code. Am I missing something? Can you please advise? Thank you.
@Mobilefish
@Mobilefish 6 лет назад
Sorry, I do not know "PyCharm Community Edition ". The python script works on a Mac using Python 2.7.10
@maheshbabuundru9070
@maheshbabuundru9070 4 года назад
Good tutorial, but I don't understand from where you got that private key
@Mobilefish
@Mobilefish 4 года назад
Look at this online tool: www.mobilefish.com/services/cryptocurrency/cryptocurrency.html
@HM-wl1nu
@HM-wl1nu 3 года назад
if Y^2 = X^3 + 7, then Y = Sqrt(X^3 + 7) ... so how is YG = ( XG + 7 )^0.5. ????
@scp3178
@scp3178 2 года назад
You are wright. He just forgot to write the exponent "3" of X
@franzscheerer
@franzscheerer 3 года назад
Transactions Challenge. To set a new record, they used their own software [39] based on the Pollard Kangaroo on 256x NVIDIA Tesla V100
@BinaryZeroTV
@BinaryZeroTV 3 года назад
How is the private key generated?
@Mobilefish
@Mobilefish 3 года назад
See: www.mobilefish.com/services/cryptocurrency/cryptocurrency.html
@JohnSmith-bx4gf
@JohnSmith-bx4gf 6 лет назад
Very different from the typical eliptic curve tutorials. But still seems overwhelming to comprehend. Although your english are not so good it was helpful. But why uncompressed 04 equals 0x in Python?
@kebman
@kebman 6 лет назад
No, 0x simply denotes a hexadecimal in most languages, like say 0x436174, which is the hexadecimal representation of the word Cat, using the ASCII code. A hexadecimal number padded by 04 would thus start like this: 0x04…
@omarshanti8409
@omarshanti8409 5 лет назад
Speak for yourself. His English is great. In all his videos in this series, he is very clear and unambiguous.
@dhawk4235
@dhawk4235 5 лет назад
Omar Shanti correct. His English is excellent and his videos are excellent.
@dhawk4235
@dhawk4235 5 лет назад
His English is excellent.
@azzteke
@azzteke 2 года назад
Terrible Dutch accent.
Далее
Blockchain tutorial 12: ASCII
1:41
Просмотров 6 тыс.
БАТЯ И СОСЕД😂#shorts
00:59
Просмотров 1,7 млн
Help Barry And Barry Woman Scan Prisoners
00:23
Просмотров 2,8 млн
Elliptic Curves - Computerphile
8:42
Просмотров 543 тыс.
Secret Key Exchange (Diffie-Hellman) - Computerphile
8:40
SHA: Secure Hashing Algorithm - Computerphile
10:21
Просмотров 1,2 млн
Elliptic curves
58:06
Просмотров 130 тыс.
Public Key Cryptography: RSA Encryption Algorithm
16:31
Curves which make Bitcoin possible.
7:45
Просмотров 12 тыс.
Головоломка от дедушки🔥
0:31