public double computeConfidenceScore(  ) {

		double confidenceScore = 0;
		
		// Generate an iterator. Start at end of list
		ListIterator li = chain.listIterator(chain.size());
		
		// now create a tally system for all the identities in the system
		HashSet<WeightedIdentity> IDTally = new HashSet<WeightedIdentity>();
		
		// Iterate all blocks in reverse.
		while(li.hasPrevious()) {
			
		  double blockScore = 0;
			
		  SignedBlock b = (SignedBlock)li.previous();
		  
		  // for each block, tally the identity
		  // this assumes the block was signed by a weighted identity
		  // if not will throw an exception
		  IDTally.add((WeightedIdentity)b.signature);
		  
		  // now simply add all the compounded weights of the identities in the tally
		  Iterator IdIter = IDTally.iterator();
		  while (IdIter.hasNext()) {
			WeightedIdentity id = (WeightedIdentity) IdIter.next();
			blockScore += id.weight;
		  }
		  
		  // for debug pursposes
		  //System.out.println("blockscore: "+blockScore);
		  
		  confidenceScore += blockScore;
		  
		}
		
		return confidenceScore;
		
	}