TLS: Clarification on trust in the certificate trust chain

Suppose I have the following trust chain in my trust store:

ROOT_CERT | |---INTERMEDIATE_CERT_1      |      |---INTERMEDIATE_CERT_2 

I know that any certificate that is signed by INTERMEDIATE_CERT_2 will be trusted – but are the following statements also true:

a) Any certificate directly signed by ROOT_CERT is trusted?

b) Any certificate directly signed by INTERMEDIATE_CERT_1 is trusted?

When a function space with compact-open topology has countable chain condition?

As in title,when a function space with compact-open topology has countable chain condition? Are there some sufficient and necessary conditions? Who give some references about this topic?

McCoy and Ntantu [Topological Properties of Spaces of Continuous Functions, Page 68] pointed out that Vidossich had prove that $ C_k(X)$ has ccc if $ X$ is submetrizable. Who can give a proof of this statement?

Thank you in advance.

Why do we need to chain the blocks (creating blockchain) in a permissioned blockchain?

The main question is:

What does “chaining block” mean in a permissioned blockchain? OR in any blockchain network in which creating a new block does NOT need consuming resources/energy ? (even in the case of proof-of-stake)

Does “chaining blocks” (creating blockchain) WITHOUT consuming resources (in the case of PoW, this resource is electricity) make sense? where, re-calculating all hash values does NOT have any considerable cost and it takes few seconds.

In other words, Why do we need to chain the blocks (creating blockchain) in a permissioned blockchain network (such as Hyperledger whose consensus mechanism is PBFT)?

What does really mean chaining blocks without consuming resource/energy? where re-calculating all hash values and as a result replacing all blocks can be done EASILY and RAPIDLY.

The thing can make transactions history immutable in Bitcoin, is a PoW with enough difficulty and not only using blockchain data structure. Otherwise, only chaining blocks based on ex. a PBFT consensus (or even based on proof-of-stake) can be interpreted as a fallacy.

What is the role of blockchain (chained blocks) in a permissioned network? where if one is able to change one block, then he could change the whole of chain as well, by re-calculating all previous hash values, since there is NO difficulty to calculate hashes.

Note: I tried to bring up my question in several different forms to be more clear. In the case, you think some additional explanation is need, please let me know.

Growing a chain of unit-area triangles: Fills the plane?

Define a process to start with a unit-area equilateral triangle, and at each step glue on another unit-area triangle.


          n50
          $ 50$ triangles.


Above, the red dot marks the starting triangle $ T_0$ . Then on one edge $ e$ of $ T_0$ , a point $ p$ is chosen to form a unit-area triangle $ T_1$ . Now there are two edges of $ T_1$ for possible growth. One edge is chosen randomly, and another unit-area triangle $ T_2$ is erected on that edge. Then $ T_3$ is built on an edge of $ T_2$ . And so on.

The point $ p$ at each step is chosen according to a normal distribution $ \cal N(0,1)$ centered on the midpoint normal vector to $ e$ , as illustrated below:


          Tri_Normal
          The location of $ p$ follows a normal distribution.


My question is:

Q. Does this process fill the plane in the limit?

I think Yes but am not certain.

Here are two more examples (using different random seeds):


          n500
          $ 500$ triangles.


          n1000
          $ 1000$ triangles.


MY BTC at Block chain is non spendable

how can i recover back my btc at blockchain, it has the status non-spendable and i do not have private key, i had logged at the blackchain and been verified suddenly blockchain logged me out and try to login and failed , when i request the password or id recovery seems like no user of such kind has been created before. when i tried to register again it went through and logged in as new user no funds was there, i decided to import those address and found is non spendable,

any suggestion please

On chain cost of Segwit version 1 versus version 0

How do total blockchain cost for Segwit version 0 compare to version 1 which is being proposed? I’m specifically interested in a single user transactions – both paying to public key (or pk hash) and script (mostly asking about scripts without branching as I understand there are savings in more complex scripts with more branches). By total blockchain cost, I mean the number of bytes, vbytes and weight in both the outputs as well as the inputs that are spending these outputs. In other words, I’m asking if there will be any savings in version 1 scripts compared to the transactions that can be done on version 0.

51% attack – apparently very easy? refering to CZ’s “rollback btc chain” – How to make sure such corruptible scenario can never happen so easily?

I was shocked to see binance CZ comment to literally “roll back” the bitcoin chain by just “calling” in some favors from “friendly” Asian miners .

This ONE person could effectively do it??? I mean are we all in a bubble, in some kind of utopia then, to think that the chain’s decentralization makes it “bulletproof” and resistant to collusion by miners?

(1) This is fundamental question: How are our highly regarded and brilliant Devs of bitcoin explaining such situation where only a handful of persons´ interests could essentially be enough to do a majority 51% attack?

(2) And secondly, are there active debates about how to mitigate such situation in the future, what technical aspects implemented in the btc chain (or to be implemented) could be helpful?

This huge mining farms are essentially very disturbing. it is like in proof of stake , where the “richest” has most power. And in the PoW mining case , its similiar just that the “biggest hardware” has most power.

we have to try somehow to eliminate such easily corruptible scenarios, right?

in todays digital world, there are plenty of collusion examples of even more than 1000 different persons involved.

Handful of colluding majority miners would be a piece of cake, right?

Thank you for explaining to me this issue . I hope sincerely that this is taken up by our awesome dev community, or maybe I am just misunderstanding everything.

Replacing function with linear approximation inside proof of chain rule

So, here’s a an attempted proof of the chain rule. I end up with the right formula at the end of the day, but I’m curious what the right way is to substitute a function with a best linear approximation to it inside limits like these when you’re trying to find an explicit form for a derivative involving unknown functions.

$ f$ and $ g$ in the attempted proof below are called/evaluated twice, but with arguments that are very close to each other. Based on that, I replaced $ f(x)$ and $ g(x)$ with linear approximations centered around one of their arguments.

Is there a way to perform a substitution like this rigorously?


Using a slightly modified form of the definition of the derivative.

$ $ x \cdot D(f \circ g) = \lim_{h \to 1}\frac{f(g(hx)) – f(g(x))}{h-1} $ $

next, I use the following linear approximations to $ f$ and $ g$ at strategically chosen points. $ $ f(g(x) + \varepsilon) \approx c\varepsilon + d $ $

$ $ g(x + \varepsilon) \approx a\varepsilon + b $ $

$ $ \lim_{h \to 1} \frac{f(ahx + b) – f(ax+b)}{h-1} $ $

$ $ \lim_{h \to 1} \frac{achx + cb + d – cax – cb – d}{h – 1} $ $

$ $ \lim_{h \to 1} \frac{ca(h-1)x}{h-1} $ $

$ $ \lim_{h \to 1} cax $ $

And thus:

$ $ x \cdot D(f \circ g) = cax = (Df)(g(x)) \cdot (Dg)(x) \cdot x $ $

$ $ D(f \circ g) = (Df)(g(x)) \cdot (Dg)(x) $ $

Longest carbon chain

My Code measures the longest path, not allowing cycles. For the example input below, the longest chain would be 4

Please can you review my code?

import numpy as np inputgrid = np.array([['.','.','.','.','.'],                       ['C','-','C','-','C'],                       ['.','.','|','.','.'],                       ['.','.','C','.','.'],                       ['.','.','|','.','.'],                       ['.','.','C','.','.'],                       ['.','.','.','.','.']])# This Is Input   inputgrid = np.where(inputgrid=='.', 0, inputgrid) inputgrid = np.where(inputgrid=='C', 1, inputgrid) inputgrid = np.where(inputgrid=='-', 9, inputgrid) inputgrid = np.where(inputgrid=='|', 9, inputgrid)  np.array(inputgrid).tolist()  grid = [[int(item) for item in row] for row in inputgrid]  def display(grid):     for row in grid:       print(row)  display(grid)   lst = [] for rows, row in enumerate(grid):     for cols, col in enumerate(row):         if grid[rows][cols] in [1]:             lst.append((rows, cols))  bondlst = []             for rows, row in enumerate(grid):     for cols, col in enumerate(row):         if grid[rows][cols] in [9]:             bondlst.append((rows, cols))          print(lst) print(bondlst)  bondx = [] bondy = []  for item in bondlst:     (bondx).append(item[0])     (bondy).append(item[1])  print(bondx) print(bondy)   adjacencylist = []  def adjacentnode(nodea ,nodeb):     if nodea[0] == nodeb[0] and nodea[1] == nodeb[1]+2:         adjacent = True     elif nodea[0] == nodeb[0] and nodea[1] == nodeb[1]-2:         adjacent = True     elif nodea[1] == nodeb[1] and nodea[0] == nodeb[0]+2:         adjacent = True     elif nodea[1] == nodeb[1] and nodea[0] == nodeb[0]-2:         adjacent = True     else:         adjacent = False     return adjacent  print (adjacentnode((1,0),(1,2)))  count = 0   tempgraph = {} for node in range(len(lst)):     print (node)     adjacencylist.append((lst[node] ,[]))     for neighbour in range(len(lst)):         adjacentnodes = (adjacentnode(lst[node] ,lst[neighbour]))         print(adjacentnodes)         if adjacentnodes == True:             count = count +1             adjacencylist[node][1].append(lst[neighbour])             # adjacencylist.append((lst[node],[]))             # adjacencylist.append(lst[node])             # adjacencylist.append(lst[neighbour])  print (count)             print (adjacencylist)  for item in adjacencylist:     tempgraph[str(item[0])] = (item[(1)])    carbongraph = {} for i in tempgraph:     carbongraph[i] = [str(k) for k in tempgraph[i]]  print(carbongraph)  #print(adjacencylist)  #print (carbongraph) ''' carbongraph = {'(0, 1)' :['(0, 2)'], '(0, 2)' :['(0, 1)' ,'(0, 3)' ,'(1, 2)'],                '(0, 3)' :['(0, 2)'], '(1, 2)' :['(0, 2)', '(2, 2)'], '(2, 2)': ['(1, 2)']}  WEIGHTS = 1 ''' def shortestpath(graph, start, end, path=[]):     path = path + [start]     if start == end:         return path     if start not in graph:         return None     for node in graph[start]:         if node not in path:             newpath = shortestpath(graph, node, end, path)             if newpath:                 return newpath     return None  LeafArray = [] for leaf in carbongraph:     degree = (len(carbongraph[leaf]))     if degree == 1:         LeafArray.append(leaf)    print(LeafArray)  chainlist = [] for node in LeafArray:     for neighbour in LeafArray:         currentpath = (shortestpath(carbongraph, node, neighbour))         carbonchain = len(currentpath)         print(currentpath)         chainlist.append(carbonchain)  longestchain = max(chainlist) print(longestchain)   def Prfix():     global prefix     if longestchain == 4:         prefix = "But"     elif longestchain == 5:         prefix = "Pent"     elif longestchain == 6:         prefix = "Hex"     elif longestchain == 7:         prefix = "Hept"     elif longestchain == 8:         prefix = "Oct"     return prefix  print(Prfix()) ```